0
我想渲染一个“风景”,with three.js。现在我将飞机的素材从MeshBasicMaterial
更改为MeshLambertMaterial
或MeshPhongMaterial
,然后等待呈现一些灯光效果。 奇怪的是,我看不到任何渲染比平坦。Three.js忽略片段底纹
有人可以告诉我,我在做什么错误或碎片渲染的实际要求是什么?
我想渲染一个“风景”,with three.js。现在我将飞机的素材从MeshBasicMaterial
更改为MeshLambertMaterial
或MeshPhongMaterial
,然后等待呈现一些灯光效果。 奇怪的是,我看不到任何渲染比平坦。Three.js忽略片段底纹
有人可以告诉我,我在做什么错误或碎片渲染的实际要求是什么?
看起来像我失踪plane.computeFaceNormals();
。
我:
plane.computeBoundingSphere();
plane.computeVertexNormals();
之前和期待computeVertexNormals
调用computeFaceNormals
含蓄。似乎并非如此。 改为:
plane.computeBoundingSphere();
plane.computeFaceNormals();
plane.computeVertexNormals();
照明工程。是否有任何文档需要调用compute*
函数? 什么是computeVertexNormals
在没有脸部法线生成时呢?
是的,只要您手动创建几何图形或修改几何图形。 – mrdoob
当我改变顶点坐标时,似乎足以设置'verticesNeedUpdate'和'normalsNeedUpdate'。 – abergmeier
如果你改变顶点,你也应该调用'computeFaceNormals()'/'computeVertexNormals()'。取决于你是否使用'THREE.FlatShading'或'THREE.SmoothShading'。 – mrdoob