添加点光源后,Three.js模型将消失

添加点光源后,Three.js模型将消失,three.js,shader,lighting,Three.js,Shader,Lighting,我正在处理一个项目,其中有多个着色器应用于一个对象。基本场景由平行光照亮,但当我向场景添加点光源或聚光灯时,对象将完全消失。我在场景中还有其他不会消失的对象,因此我只能假设它与应用的着色器和点光源有关。以下是我正在使用的着色器的摘录: var shader = THREE.ShaderSkin[ "skin" ]; var uniformsUV = THREE.UniformsUtils.clone( shader.uniforms ); va

我正在处理一个项目,其中有多个着色器应用于一个对象。基本场景由平行光照亮,但当我向场景添加点光源或聚光灯时,对象将完全消失。我在场景中还有其他不会消失的对象,因此我只能假设它与应用的着色器和点光源有关。以下是我正在使用的着色器的摘录:

var shader = THREE.ShaderSkin[ "skin" ];

            var uniformsUV = THREE.UniformsUtils.clone( shader.uniforms );

            var textureLoader = new THREE.TextureLoader();

            uniformsUV[ "tNormal" ].value = textureLoader.load( "obj/me/all_skin_hi1_normal.jpg" );
            uniformsUV[ "uNormalScale" ].value = -1.5;

            uniformsUV[ "tDiffuse" ].value = textureLoader.load( "obj/me/all_skin_hi1.jpg" );

            uniformsUV[ "passID" ].value = 0;

            uniformsUV[ "diffuse" ].value.setHex( diffuse );
            uniformsUV[ "specular" ].value.setHex( specular );

            uniformsUV[ "uRoughness" ].value = 0.185;
            uniformsUV[ "uSpecularBrightness" ].value = 0.7;


            var uniforms = THREE.UniformsUtils.clone( uniformsUV );
            uniforms[ "tDiffuse" ].value = uniformsUV[ "tDiffuse" ].value;
            uniforms[ "tNormal" ].value = uniformsUV[ "tNormal" ].value;
            uniforms[ "passID" ].value = 1;


            var parameters = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: uniforms, lights: true };
            var parametersUV = { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShaderUV, uniforms: uniformsUV, lights: true };

            var material = new THREE.ShaderMaterial( parameters );
            material.extensions.derivatives = true;

            var materialUV = new THREE.ShaderMaterial( parametersUV );
            materialUV.extensions.derivatives = true;

尝试更新到引擎的较新版本。这为我解决了问题。

尝试更新到新版本的引擎。这为我解决了问题。

您在控制台中收到任何警告/错误吗?您在控制台中收到任何警告/错误吗?