【问题标题】:Creating a Library to Draw 3D Objects using JOGL使用 JOGL 创建库以绘制 3D 对象
【发布时间】:2012-10-10 04:20:14
【问题描述】:

所以我遇到了一些麻烦。我正在编写一个使用 JOGL 的库,以在 GLCanvas 上显示 3D 模型(以及因此,2D 模型)。好吧,直到我决定将 Strixa3DElement 的各个多边形的绘制方法调用到一个线程中以加快速度之前,一切都运行得很顺利。以前,一切都完美地绘制在屏幕上,但非常缓慢。现在,就速度而言,它再好不过了。但它没有画任何东西。除了draw方法处理的内容之外,忽略所有内容,是否有任何理由

https://github.com/NicholasRoge/StrixaGL/blob/master/src/com/strixa/gl/Strixa3DElement.java

不应该工作吗?

编辑:另外,为了避免线程中的并发问题,假设任何给定元素的多边形不超过 100000 个。

【问题讨论】:

    标签: java jogl


    【解决方案1】:

    现在最好将渲染任务留在 gl 线程中。

    • 您甚至不使用显示列表。当然,它会很慢。
    • 即使在此之后,渲染也不是速度问题:您可以准备数据以在另一个线程中渲染,从而使渲染循环干净而快速。 (移出 this._performGameLogic 等)
    • 您可以使用 VBO、着色器(将数据和渲染逻辑从 CPU 移动到 GPU)、屏幕外缓冲区等来提高性能。

    如果你要继续,你应该

    • 在编写代码时检查 GLArrayDataServer 类是否与 VBO、单元测试和演示一起使用。
    • 不将 GL2 作为参数传递:GLContext.getCurrentGL().getGL2();
    • 应该尝试 GL2ES2:固定功能已弃用,允许在移动平台上使用。
    • 加入jabber会议

    关于JOGL&threads的一些答案:Resources: Parallelism in Java for OpenGL realtime applications

    【讨论】:

    • 好的,我会调查的。我现在不在我的开发计算机旁,所以我不知道什么时候可以尝试。不过,这听起来像是非常可靠的建议,谢谢。
    • 检查 youtube.com/watch?v=oTqFgYR3Fvs 以获取显示列表和 vbo 示例
    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多