-
-
Notifications
You must be signed in to change notification settings - Fork 36.2k
Closed
Labels
Description
Reposting #21000 (comment) so as to consolidate some remaining issues.
-
webgl_loader_gltf_transmissionhas thetransparentproperty of each sphere to set tofalse. Is that what the loader should be doing? What shouldtransparentbe set to whentransmissionis non-zero? -
After setting
transparenttotrue, only front-faces show the hot-spot. (This may be a known limitation, but @mrdoob just added support for properly rendering back-faces of double-sided meshes.) There should be two hot-spots.
FIXED: This is caused by issue 7. below.
FIXED Also, in Chrome and Firefox (not Safari)
THREE.WebGLProgram: gl.getProgramInfoLog() WARNING: Output of vertex shader 'vUv' not read by fragment shader
Transmission always sets the USE_UV flag.
FIXED: If performant, I think the dimensions of the "transmission render target" should match the dimensions of the "current render target".Doing so will prevent artifacts like the following:
FIXED In the following code snippet,transmissionFactoris applied togetIBLVolumeRefraction()twice. I expect that is a physical modeling error.
| vec3 transmission = transmissionFactor * getIBLVolumeRefraction( | |
| normal, v, roughnessFactor, material.diffuseColor, totalSpecular, | |
| pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor, | |
| attenuationColor, attenuationDistance ); | |
| totalDiffuse = mix( totalDiffuse, transmission, transmissionFactor ); |
FIXED Also in the above snippet,totalSpecularhas units of radiance, and therefore cannot be the correct argument because the function expects a unit-less quantity. A reasonable guess would bematerial.specularColor, instead.
- Device: Desktop
- OS: macOS 11.4
- Browser: Chrome, Firefox, Safari
- Three.js version: r130dev
/ping @takahirox @donmccurdy


