【问题标题】:Three.js: Weird render resultThree.js:奇怪的渲染结果
【发布时间】:2015-11-27 14:18:05
【问题描述】:

如何修复循环周围的反射?

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

Three.js 结果

预期结果

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。

【问题讨论】:

  • 有关准确、近距离反射的示例,请参阅threejs.org/examples/webgl_mirror.html
  • 我会实现这个。谢谢。
  • 看起来你的立方体贴图没有随着动画的播放而更新。立方体贴图必须小心放置,并且必须随着动画移动以保持准确。在这种情况下,使用立方体相机并不是最佳选择。

标签: javascript three.js blender


【解决方案1】:

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

您可以尝试获得更好反映的事情:

  • 减少多边形的数量,因为您的多边形似乎比需要的多。
  • 尝试使用四边形和最小化 tris 的更简洁的拓扑。
  • 设置平滑组

一个简单的解决方法是使用一个形状正确的简单平面,并切出孔,因为看起来侧面似乎并不真正可见。 (我这里专门说的是大平板)。我建议这样做是因为我发现使用 MeshPhongMaterial 时的反射通常不会受到使用 ngons 和 tris 的不利影响,当所有顶点都是平坦的并且在同一个平滑组中时。

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2020-08-16
    • 2015-09-05
    相关资源
    最近更新 更多