嗨,我正在尝试使用threejs做看似简单的着色。我正在使用O'reilly撰写的《跑步与跑步》一书。

一切正常,直到我尝试这样做:

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

            uniforms["tNormal"].texture = normalMap;
            uniforms["tDiffuse"].texture = surfaceMap;
            uniforms["tSpecular"].texture = specularMap;

这总是抛出此错误:

TypeError:uniforms.normal未定义
[中断此错误]

Uniforms [“normal”]。texture = normalMap;

我已经在线浏览了一段时间,但不确定要解决此问题需要更改哪种语法。

任何帮助表示赞赏。

最佳答案

我认为应该像这样:

uniforms["tNormal"] = {
    texture: normalMap
};

tDiffusetSpecular相同。

10-06 15:15