Three.js:奇怪的渲染结果

时间:2015-11-26 22:47:48

标签: javascript three.js blender

如何修复周期周围的反射?

我的对象得到了一些奇怪的结果。我希望图片显示问题。

Three.js结果

enter image description here enter image description here

预期结果

enter image description here

enter image description here

loader.load( "model.js", function(geometry){
    geometry.computeVertexNormals();

    var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( {
      color: 0xffffff,
      specular: 0xffffff,
      shininess: 65,
      metal: true,
      envMap: cubeCamera.renderTarget
    }));
    scene.add(mesh);
    });

我使用blender中的three.js json导出器导出了模型。该模型具有顶点,面和UV。

1 个答案:

答案 0 :(得分:2)

嗯,这很难解释,但基本上是因为你使用的是三角形多边形而且你的拓扑结构并不好。 它通常被称为"捏"如果我没记错的话。
在为Three.js建模时,它基本上是为游戏引擎建模的,并且需要遵循所有相同的规则。

你可以尝试更好地反思的事情:

  • 减少多边形的数量,因为您似乎拥有的多边形多于所需多边形。
  • 尝试使用四边形进行更清晰的拓扑并最小化tris。
  • 设置平滑组

一个简单的解决方法是使用一个正确形状的简单平面,并切出一些孔,因为看起来两边都不是真正可见的。 (我在这里特别谈论大块扁平件)。我建议这是因为我发现使用MeshPhongMaterial时的反射通常不会因使用ngons和tris而受到不利影响,因为当所有顶点都是平坦的并且在相同的平滑组中时。