您可以使用 JOGL 创建 3D 组件吗?

Posted

技术标签:

【中文标题】您可以使用 JOGL 创建 3D 组件吗?【英文标题】:can you create a 3D component using JOGL? 【发布时间】:2011-05-24 03:46:09 【问题描述】:

(系统标记这是主观的,但我不明白怎么做,有人解释吗?)

无论如何,正如我的标题所问,你能用 JOGL 创建一个 3D 组件吗? 我想做的是,想象一个空圆筒。您将圆柱体切成两半,然后您正在查看其中的一半。 在里面我想贴上图片……还不完全确定这将起到什么作用,但我正在玩 JOGL,通过 NEHE 教程和其他教程,这个想法来自我在我的应用程序上看到的电话。

我不确定这将如何工作,但我的第一个想法是它可能需要成为 JPanel 或 JFrame 的子类,以便能够轻松添加普通组件,但我不确定.. .

我知道我需要更加熟悉 JOGL,但这是我的小圣诞任务,但我很感激任何关于我如何(最终)做到这一点的建议,或者我是否应该把它作为一个想法继续玩使用 API。

【问题讨论】:

我在问题中看到的唯一主观性是问“你能不能”与“能不能”。一个已经被时间遗忘的正确语法问题,真的...... @Ricket 感谢您的解释,但如果您不正确,那是什么? “你能”吗? “Can one”,如“Can one create a 3D component using JOGL?”因为您没有直接问 me 我是否可以使用 JOGL 创建 3D 组件(答案是“还没有”,呵呵),但您问的是是否有一些一个 i> 可以。或者更好的是,它可以改写为“可以使用 JOGL 创建 3D 组件吗?”但是,是的,@Kos,两者都是正确的,“一个”更合适,如果您正在与某人交谈,可以减少混淆。 【参考方案1】:

JOGL 的本质是您创建一个Java 组件并将GL 调用呈现给它。这需要是 GLDrawable 的实现者(如果您正在使用 Swing,通常是 GLJPanel,如果不是,则为 GLCanvas)。然后,您可以使用 JOGL 调用在其中绘制您想要的任何 3D 场景,它的行为类似于适当类型的 Java 组件(有一些限制)。

您可以做的另一件事是将屏幕外的 3D 场景绘制到 GLP 缓冲区,然后将生成的位图作为组件的一部分绘制到屏幕上。

【讨论】:

虽然不严格我是怎么做到的,但你的描述。很相似。最后用 QT 库迁移到 C++,完成了一个相当不错的“3D 窗口”。【参考方案2】:

好吧,首先你需要设置 Eclipse 并创建 JOGL 库:

转到顶部菜单栏,单击窗口 -> 首选项,然后单击新建并输入库的名称,例如 jogl-2.0。取消选中系统库(添加到引导类路径)复选框,然后单击确定。

返回用户库面板,您应该会看到您的库出现并单击添加 JAR.. 并导航到您提取 JOGL 库的位置,然后打开“lib”目录,其中包含所有各种JOGL 的 JAR 文件和本机库。选择以下 JAR:gluegen-rt.jar、jogl.all.jar、nativewindow.all.jar、newt.all.jar 并单击确定将这四个 JAR 添加到您的用户库中。您现在应该会看到它们列在 jogl-2.0 下。

单击本地库位置,然后在右侧进行编辑并选择外部文件夹.. 并导航到 JOGL 的所有 JAR 文件所在的同一目录。这应该是您提取位置内的“lib”目录JOGL 文件,然后单击确定。

现在您只需告诉您的项目使用您的 JOGL 用户库,右键单击项目文件夹并选择属性,选择 Java 构建路径并单击顶部的 -> 库选项卡 -> 添加库 -> 选择用户库并单击下一步,然后在 JOGL-2.0 旁边打勾并单击完成。

我希望你想做一些自己创造而不是复制的东西:)

现在,把代码放在这里看看你有什么,如果有问题。

【讨论】:

您解释了如何使用 JOGL 和 Eclipse 创建项目。我认为问题是关于如何使用 JOGL 创建组件,该组件可以以使用 Swing、SWT 和 AWT 组件的方式使用。你知道,一个可重复使用的圆柱体组件,它具有属性,即放入圆柱体的图像。我错了吗? (真正的问题,而不是反问) 感谢您的解释,但不幸的是 Rekin 是对的。我已经在 eclipse 和 netbeans 中设置了 JOGL。是的,我正在尝试实验和创造我自己的东西......如果我不是,我根本不会学到很多东西......你对如何实现它有任何想法吗?即 Rekin 恰当地描述了“具有属性的可重复使用的圆柱体组件?”

以上是关于您可以使用 JOGL 创建 3D 组件吗?的主要内容,如果未能解决你的问题,请参考以下文章

全网首发:j3d/jogl多个崩溃分析总结

1.4 Unity3D中的eventSystem

Jogl,仅创建红色通道 u16 但得到“纹理类型和格式组合无效”

使用 OpenGL (JOGL) 的良好 3D 爆炸和粒子效果?

可以递归使用组件吗?

创建反应组件的pdf