我不确定是否存在这样的插件。但是我的程序显示的数据很容易转换为VRML或X3D文件,所以如果我可以直接在窗口中显示这些文件渲染的图形会很方便程序。任何人都可以建议任何 Java 插件或任何自动化解决方案?
3 回答
如果您的程序生成或读取 3D 网格数据(三角形)并且能够创建包含定义明确的 X3D 文档的字符串对象,该文档表示这些 3D 对象,那么 Java 3D(TM) API 和 XModelImporter API 可能会为您提供解决方案。
XModelImporter 为“可扩展 3D (X3D)”文件提供 Java 3D 导入器。在这种情况下,“com.interactivemesh.j3d.interchange.ext3d.XModelReader”似乎是合适的导入器,或者“com.interactivemesh.j3d.interchange.ext3d.XModelLoader”。
XModelReader 通过接受不同的来源来导入 X3D 文件,例如外部数据的“java.io.File”和“java.net.URL”,但也应该适用于内部存储数据的“java.io.Reader”。
以下未经测试的场景可能有效:
- 将 X3D 文档写入 StringBuilder 对象
- 创建对应的字符串对象(StringBuilder.toString)
- 用这个 X3D 字符串创建一个 java.io.StringReader 实例
- 创建一个 XModelReader 实例并通过调用 XModelReader.read(java.io.Reader reader) 导入 X3D 数据
- 调用 XModelReader.getImport() 返回一个可以用 Java 3D 呈现的“javax.media.j3d.Node”数组
Java 3D https://java3d.java.net/binary-builds.html
XModelReader http://www.java.net/node/706300
我不知道有任何“当前支持的”准备好用于 Swing 或 JavaFX 的 VRML 或 X3D 播放器。与其在 VRML 或 X3D 之间转换网格,不如考虑为 Java 平台选择一种 3D API 并将数据直接转换为相关格式。
八月
Xj3D 可能是最简单的解决方案。请参阅http://www.xj3d.org/tutorials/xj3d_application.html或者更好的是http://www.xj3d.org/tutorials/general_sai.html。乍一看,Xj3D 似乎很难使用,但事实并非如此。如果您需要更多帮助,我可以向您发送一个小的 NetBeans 项目。在这个论坛上寻求更多帮助,我会尽力帮助你。
Xj3D 库的修订和维护版本可以在以下位置找到:
- Xj3D 的 NPS 分支 https://savage.nps.edu/Savage/developers.html#Xj3D