【问题标题】:3d modelling loading , updating and rendering in javajava中的3d建模加载、更新和渲染
【发布时间】:2013-02-13 14:55:17
【问题描述】:

我是 java 3d 的新手。我遇到过这样的情况,我想在我的 java 程序中加载在 3d studio max 或 Maya 等 3d 建模软件中开发的任何对象的现成开发的 3d 模型[例如鞋],然后更新其纹理或颜色属性等渲染它,然后将更新后的模型显示给最终用户。

所以我问所有 3d 专家我应该如何继续实现我的目标? 我应该将哪个输入加载到我的程序中? 如何更新加载的模型、渲染它并将更新的模型显示给最终用户?

简单来说,我想让我的用户能够通过他们的交互来修改 3d 模型, 他们提供了鞋子的 3d 模型,例如默认颜色和纹理以及鞋底颜色等一些字段,如果他们选择红色,则加载的 3d 模型的鞋底为红色(即更新),然后用红色橡胶鞋底鞋显示给最终用户而不是默认颜色的鞋子。

请建议我完成我的目标。

【问题讨论】:

  • 你做了什么?您是否已经加载并显示了模型?你试过什么?你如何加载模型?
  • 不是编程问题——没有显示源代码
  • @TheBlastOne 你仔细阅读我的问题了吗?我已经清楚地写下了我的意图。
  • 您尝试过哪些 3D 模型格式?也许您尝试过的那些没有存储纹理信息,或者它们被错误地导出,或者您没有将纹理放在与 3D 模型文件相同的位置。还可以考虑看一本关于 Java 3D 的书,我知道那里至少有几本书,也许你当地的图书馆或书店会有一本。
  • 作为警告,不要使用 cmets 来请人回答您的问题。这非常烦人,我已经删除了你留下的所有内容。

标签: java jogl java-3d


【解决方案1】:

好的,首先,复杂的对象通常是使用一些 3D 编辑软件创建的,例如 Blender 或 Art of Illusion。这些程序可以将对象输出为几种不同的文件格式,最常见的是 .obj 文件格式:

另一种常见的格式是 .3ds,根据我的经验,这比它的价值要多得多。他们确实为 Java3D 制作了一个 .3ds 文件加载器,该页面可以在这里找到:

我给你的建议是只使用 .obj 文件格式,它更容易使用。您也可以为它制作自己的解析器,这并不像听起来那么难。这样您就可以准确地知道您的对象是如何加载到环境中的。 Java 确实带有它自己的解析器,有关如何使用它的说明在这里:

不幸的是,在使用这种文件格式时,我在使用 Blender 导出的文件时遇到了很多麻烦,他们现在可能已经解决了这个问题,但我不确定。当我以前做更多的 3D 东西时,我只是使用 Art of Illusion,甚至知道 Blender 更强大。 Blender 可以在 Mac 上运行,但在正确设置的 Windows 上运行更加流畅。祝你好运!如果您需要一些示例代码,请告诉我,我很乐意为您发布一些示例代码。

幻觉艺术:

搅拌机:

我不确定您希望用户如何更改对象。如果您希望他们能够更改颜色,或鞋子的类型或诸如此类的东西,那并不是什么大不了的事。如果您希望用户能够更改花边长度或更改实际对象结构的东西,则需要深入了解 3D 结构。如果你想改变颜色,只需改变材料。如果您希望能够更改鞋子的类型,只需加载不同的鞋子对象即可。我希望这对您有所帮助。

在 cmets 中,您还谈到了纹理映射,根据我的经验,在 Blender 中比在 Art of Illusion 中更容易做到这一点。我可能会使用搅拌机来完成这个:

约翰

【讨论】:

  • 感谢您的宝贵意见,让我研究一下,我会尽快回复您。
  • 你知道jMonkeyEngine吗?
  • 我知道但我不使用它。我听说它很容易使用,而且比 Java3D 先进很多
  • 现在我有一个具体的问题要问你。我希望你能帮助我。
【解决方案2】:

我假设您只是希望用户选择不同的纹理/颜色,对吧?

然后看看那里的 Java3D 教程,例如这个:http://www.java3d.org/tutorial.html

我进一步猜测你的鞋子实际上是一个两部分的模型,即只有鞋底应该有另一种颜色,而其余的可能会有不同的纹理,对吧?

在这种情况下,您需要 2 个模型/形状,每个模型/形状都有自己的外观。然后,例如,根据需要更改鞋底外观,例如通过分配不同的材质或更改材质的颜色。

【讨论】:

  • 是的,我想作为用户,首先您将获得默认的 3d 鞋模型,例如白色纹理的白色、黑色鞋底、白色鞋带、白色孔眼,您可以选择更改默认值颜色,因此,如果您为鞋带选择黄色,为孔眼选择红色,为纹理选择黑色,然后按预览,默认模型的外观将更新,结果显示为它们在以前意义上选择各种选项时提供的结果。
  • @Mihir 虽然可能为时已晚,只是想知道您是否找到了这方面的方向。如果是,请分享您使用什么技术来渲染、更新和再现 3D 模型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2012-08-23
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
相关资源
最近更新 更多