用于着色的Three.js制服

dot*_*ury 3 javascript html5 webgl three.js

嗨,我正在尝试使用threejs进行简单的着色.我正在使用O'reilly的Up and Running书.

一切都很好,直到我试图这样做:

                var shader = THREE.ShaderLib["normal"];
            var uniforms = THREE.UniformsUtils.clone(shader.uniforms);

            uniforms["tNormal"].texture = normalMap;
            uniforms["tDiffuse"].texture = surfaceMap;
            uniforms["tSpecular"].texture = specularMap;
Run Code Online (Sandbox Code Playgroud)

这一直在抛出这个错误:

TypeError:uniforms.normal未定义[在此错误时出现错误]

制服["normal"].texture = normalMap;

我一直在网上寻找一段时间,我不确定需要改变哪种语法来解决这个问题.

任何帮助表示赞赏.

Ovi*_*lia 5

我想应该是这样的:

uniforms["tNormal"] = {
    texture: normalMap
};
Run Code Online (Sandbox Code Playgroud)

同样的tDiffuse,tSpecular.