javascript - THREE.meshphongmaterial 不工作 - 呈现黑色

标签 javascript three.js

我正在尝试使用本教程中的 THREE.meshphongmaterial:http://solutiondesign.com/webgl-and-three-js-texture-mapping/

但它不工作并给出黑色。这是它的 jsfiddle:http://jsfiddle.net/8hrk7mu6/12/

问题在第 32 行:

var material = new THREE.MeshPhongMaterial( { ambient: 0x050505, color: 0x0033ff, specular: 0x555555, shininess: 30 } );

为什么它不起作用?如果我使用 THREE.MeshNormalMaterial,那么它就可以工作。

var material = new THREE.MeshNormalMaterial();

稍后,我想在我的代码中使用图像中的纹理。那也行不通。只有 THREE.MeshNormalMaterial 有效。为什么?

最佳答案

原来有必要加光。没有光,meshphongmaterial 呈现黑色。

所以我不得不添加这样的东西:

var light = new THREE.DirectionalLight( 0xffffff );
light.position.set( 0, 1, 1 ).normalize();
scene.add(light);

从这个链接得到它:https://github.com/mrdoob/three.js/issues/2766

关于javascript - THREE.meshphongmaterial 不工作 - 呈现黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26937966/

相关文章:

javascript - 未定义的“addEventListener”

three.js - ShaderMaterial 雾参数不起作用

javascript - 即使平移时,OrbitControls 仍然在模型原点上旋转吗?

javascript - 如何在THREE.JS中 'Fade'正常 Material

javascript - 如何使按钮宽度跟随基于文本的最大宽度按钮?

javascript - 加载类中的所有图像

javascript - 这些嵌套的 'if typeof(bla) else' 语句可以做得更短吗?

javascript - IE 不会切换元素

three.js - Blender 导出到 Three.js。所有 Material 均具有相同的灰色

javascript - Three.js - 从点缩放圆柱体