我在从 Blender 获取一些 3D 对象以正确渲染到 Three.js 中时遇到一些问题。
这是 Blender 中的对象: (我认为这些物体看起来相当不错)
这是 Three.js 中的对象(使用 THREE.SceneLoader() 加载):
(注意孔周围的奇怪表面)。
此外,当放大时,我可以看到正面对着相机的正面后面的部分物体。
有人可以告诉我一个好的工作流程,可以让 blender 中的对象在 Three.js 中正确渲染吗?
这是因为着色器还是网格导入/导出问题?
我正在使用示例中的场景(地面、天空、阴影),并使用从 Blender 导出的 JSON 文件中的 sceneLoader 加载网格物体。
如果我导出与 .obj 相同的对象并使用 OBJLoader 将其加载到 Three.js 中,那么它看起来就很好。
问题是我需要创建一个更复杂的场景,并且我需要对象是交互式/可点击的。如果我将场景另存为 .OBJ 可以吗?
最佳答案
使用 Flat-Shading ,例如material.shading = THREE.FlatShading; 有关 Material 属性,请参阅此示例: http://mrdoob.github.io/three.js/examples/webgl_materials.html 您正在寻找一个多面球体。它在 Three.js 中看起来很难看,因为它正在平滑顶点/面法线。
关于你的第二点。检查导入对象的大小和场景大小。如果您的物体在放大时被“切割”,您必须将相机近平面更改为较小的值。与缩小时物体消失一样,您必须将相机远平面更改为更远(增加值)。 希望这有帮助,祝你好运:)
关于3d - Blender - Three.js - 导出/导入网格看起来很丑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530039/