【发布时间】:2016-04-14 02:17:29
【问题描述】:
这个问题有解决办法吗?如果我将 materialdefinition 从 MeshPhone 更改为 MeshLambert,一切都会按预期工作,否则就不会(但仅在某些计算机上,我的开发机器工作正常)。
http://peppr-configurator.herokuapp.com/#/
“MaterialConfService”中的“loadDefaultMaterialForObject”函数是加载它的地方。
var threeMaterial = new THREE.MeshPhongMaterial({
specular: material.properties.specular,
emissive: material.properties.emissive,
shininess: material.properties.shininess,
});
将 'MeshPhongMaterial' 换成 'MeshLambertMaterial' 是可行的,但我需要 phong 来获得高光。
有人知道这里可能发生了什么吗?
【问题讨论】:
-
您希望我们如何调试缩小的代码?
-
我很抱歉。我已经上传了一个带有未缩小源代码的版本(确实将它们全部放在一个文件中)。在第 560 行的“MaterialConfService”中,它建立了材料。如果我将 'MeshPhongMaterial' 换成 'MeshLambertMaterial',一切都会按预期进行。现在,一切都变成黑色了。
-
它在呈现黑色的机器上是否有任何错误?
-
渲染循环出错,提示 Three.ShadowMapPlugin 的点光源设置有问题。我无法对其进行堆栈跟踪,因为打开调试器会使 chrome 崩溃;渲染循环在每一帧都遇到这个错误。相关地,看起来黑色的meshlambert 和meshphong 材料没有被灯光照亮。他们需要一个正常工作的灯来计算他们的视觉效果。某些浏览器可能无法像其他浏览器一样处理观察到的错误。我会切换到定向灯,看看问题是否仍然存在。小提琴也会有帮助。
标签: three.js