3d - Blender - Three.js - 导出/导入网格看起来很丑

标签 3d three.js blender

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

这是 Blender 中的对象: enter image description here (我认为这些物体看起来相当不错)

这是 Three.js 中的对象(使用 THREE.SceneLoader() 加载): enter image description here

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

此外,当放大时,我可以看到正面对着相机的正面后面的部分物体。 enter image description here

有人可以告诉我一个好的工作流程,可以让 blender 中的对象在 Three.js 中正确渲染吗?

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

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

如果我导出与 .obj 相同的对象并使用 OBJLoader 将其加载到 Three.js 中,那么它看起来就很好。 enter image description here

问题是我需要创建一个更复杂的场景,并且我需要对象是交互式/可点击的。如果我将场景另存为 .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/

相关文章:

python - 使用 np.outer 生成圆柱面

3d - 为什么透明 Material 会导致遮挡?

javascript - 对矩阵应用变换并在 Three.js 上重置值

javascript - 通过 coords x, y Fabric js 发出点击事件

three.js - Blender2.8 gltf 导出带有凹凸贴图、法线贴图或粗糙度贴图的 Three.js?

java - 使用OpenGL和3D建模软件之间的区别

numpy - 如何使用python执行坐标仿射变换?第 2 部分

iphone - iPhone上角色动画的常见做法?

c++ - 将外部支撑物生成网格以进行3D打印

c++ - 跟踪过程直到完成