three
Version:
JavaScript 3D library
31 lines (20 loc) • 825 B
JavaScript
export default /* glsl */`
float transmissionFactor = transmission;
float thicknessFactor = thickness;
transmissionFactor *= texture2D( transmissionMap, vUv ).r;
thicknessFactor *= texture2D( thicknessMap, vUv ).g;
vec3 pos = vWorldPosition.xyz / vWorldPosition.w;
vec3 v = normalize( cameraPosition - pos );
float ior = ( 1.0 + 0.4 * reflectivity ) / ( 1.0 - 0.4 * reflectivity );
vec3 transmission = transmissionFactor * getIBLVolumeRefraction(
normal, v, roughnessFactor, material.diffuseColor, totalSpecular,
pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,
attenuationColor, attenuationDistance );
totalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );
`;