123456789101112131415161718192021222324252627282930 |
- export default /* glsl */`
- #ifdef USE_TRANSMISSION
- float transmissionFactor = transmission;
- float thicknessFactor = thickness;
- #ifdef USE_TRANSMISSIONMAP
- transmissionFactor *= texture2D( transmissionMap, vUv ).r;
- #endif
- #ifdef USE_THICKNESSMAP
- thicknessFactor *= texture2D( thicknessMap, vUv ).g;
- #endif
- vec3 pos = vWorldPosition;
- vec3 v = normalize( cameraPosition - pos );
- vec3 n = inverseTransformDirection( normal, viewMatrix );
- vec3 transmission = getIBLVolumeRefraction(
- n, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,
- attenuationTint, attenuationDistance );
- totalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );
- #endif
- `;
|