2

我在从 Blender 获取一些 3D 对象以正确渲染到 Three.js 时遇到一些问题。

这是 Blender 中的对象:( 在此处输入图像描述 我认为对象看起来不错)

这是 Three.js 中的对象(使用 THREE.SceneLoader() 加载): 在此处输入图像描述

(注意孔周围的奇怪表面)。

此外,放大时,我可以看到正面后面的部分物体面向相机。 在此处输入图像描述

有人可以让我知道一个很好的工作流程,以从 Blender 中正确渲染 Three.js 中的对象吗?

这是因为着色器还是网格导入/导出问题?

我正在使用样本中的场景(地面、天空、阴影)并使用从 Blender 导出的 JSON 文件中的 sceneLoader 加载我的网格。

如果我导出与 .obj 相同的对象并使用 OBJLoader 将其加载到 Three.js 中,它看起来就很好。 在此处输入图像描述

问题是我需要创建一个更复杂的场景,并且我需要对象是交互式/可点击的。如果我将场景保存为 .OBJ,这可能吗?

4

1 回答 1

2

使用 Flat-Shading ,例如 material.shading = THREE.FlatShading; 有关材料属性,请参见此示例:http://mrdoob.github.io/three.js/examples/webgl_materials.html 正在寻找多面球体。它在three.js 中看起来很丑,因为它正在平滑顶点/面法线。

关于你的第二点。检查导入对象的大小和场景大小。如果您的对象在放大时被“切割”,您必须将相机附近的平面更改为较小的值。与缩小时对象消失的情况相同,您必须将相机远平面更改为更远(增加值)。希望这有帮助,祝你好运 :)

于 2013-08-30T14:29:29.440 回答