为啥我不能让这个 3D 模型 (.obj) 显示在屏幕上?

Posted

技术标签:

【中文标题】为啥我不能让这个 3D 模型 (.obj) 显示在屏幕上?【英文标题】:Why can't I get this 3D model (.obj) to display on screen?为什么我不能让这个 3D 模型 (.obj) 显示在屏幕上? 【发布时间】:2014-05-19 11:34:17 【问题描述】:

我正在尝试使用 Three.js 显示来自 BodyParts3D 的 3D 模型。例如,this 3D model of the human stomach(选中该框并单击下载)。但是我尽力了,我做不到。

我首先尝试了用“.obj”文件替换three.js obj-loader example 中的文件的“幼稚”方法。没有错误消息。该对象只是没有显示在任何地方。我玩弄了相机的配置、照明和物体。没有运气。 this question 的任何提示都没有帮助到我。

我对 3D 非常缺乏经验,所以我可能遗漏了一些简单的东西。我将不胜感激。

我应该指出,我可以使用ArtOfIllusion 加载模型,所以它们肯定“工作”。

【问题讨论】:

控制台有错误吗? @Shiva:不,我没有收到任何错误。 您确定对象的边界在相机范围内吗? (obj文件中定义的边界为(-28.951600,-194.370000,1039.880000)-(105.524000,-81.479900,1156.890000)) 【参考方案1】:

我不确定我是否下载了与您下载相同的对象,但胃拉链中的对象不是以 (0,0,0) 为中心。事实上,物体的中心在 (38.2862, -137.925, 1098.39)。因此,在渲染对象之前,您需要将其转换为接近零或将您的相机移动到那里。

【讨论】:

确实如此。我相信 BodyParts3D 模型以正确的解剖位置布置,相对于彼此。但我已经尝试(不成功)纠正这一点。我现在想知道是否可能是一些与纹理相关的问题,使对象不可见? --- 无论如何,如果你已经设法用 three.js 显示这个特定的对象,那么查看你的代码会对我有很大帮助。 我认为如果您发布一些代码并尝试修复它会更好。 不需要。我终于弄明白了。 :-) 我认为“真实”对象中心会反映在object.position 中。当然,这不是真的,所以我从来没有对此进行适当的纠正。我现在从几何中得到真正的中心。谢谢!

以上是关于为啥我不能让这个 3D 模型 (.obj) 显示在屏幕上?的主要内容,如果未能解决你的问题,请参考以下文章

ELMENT 3D的材质为啥安装以后在插件里找不到

如何在颤动中显示 3D 模型? [关闭]

如何在 Qt 中创建 3D 对象模型的 2D 切片?

Cesium学习笔记:导入3D模型(obj转gltf)

【Three.js】请问如何显示带纹理的三维模型?

3D几何物体——三角网格的表示与显示(obj)