【问题标题】:Java LWJGL VBO using base vertex buffer and height array使用基本顶点缓冲区和高度数组的 Java LWJGL VBO
【发布时间】:2014-08-02 17:23:27
【问题描述】:

我遇到了一个简单的问题,希望能够解决。我有多个块(64x64),其中包含所有顶点高度的 1d 数组。由于我同时渲染了大约 100 个,我想知道是否可以使用基本顶点浮动缓冲区并将所有高度作为数组动态应用。在动态我的意思是openGL在绘制每个顶点时会改变所有的高度(y)值。还是有比覆盖每个块的所有 Buffer 值更优化的方法来做到这一点? 提前谢谢你!

【问题讨论】:

    标签: java opengl rendering vbo


    【解决方案1】:

    对于每个块,您可以创建一个 VBO,因为每个块都与其他块不同(通常),渲染 vbo 的值并更深入地查看着色器管道。一个 VBo 通常持有一个网格。您可以更改 VBO 的值,但这非常昂贵。如果您创建一个 VBO 并更改每个块的值,这将非常慢。更好地为每个块创建一个 VBO,进行平截头体剔除,使您只渲染对相机可见的块(并应用一些其他改进)。

    关于操纵顶点高度的问题:查看 openGL VertexShader。

    我假设您尝试使用体素渲染某些东西,所以您可以看看这个 tut:https://sites.google.com/site/letsmakeavoxelengine/

    它还没有完成,但想法很好。

    【讨论】:

    • 嗯,我在做普通地形而不是立方体,我有点怀疑 VertexShaders 但我没有经验。使用 GPU 处理,所以我希望有另一个解决方案。无论如何,谢谢你的建议。
    • 使用固定管道矩阵堆栈仍然是旧方法,但由于这是旧方法,我强烈建议使用可编程管道更深入地了解顶点和片段着色器。 VertexShader 并按您要渲染的 Vertex 和屏幕上每个像素的 Fragment Shader 执行。你处理每个顶点,最基本的操作就是将顶点与模型、视图和投影矩阵进行多重播放。
    • 已经看了一些视频,有了基本的想法。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多