gpt4 book ai didi

java - LWJGL3 : Overloaded glBufferData methods

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:27 25 4
gpt4 key购买 nike

我正在使用 LWJGL 调用 OpenGL 函数。

方法org.lwjgl.opengl.GL15#glBufferData()调用等效的 OpenGL method .它在 LWJGL 中有几个重载变体,我见过最常用的是 FloatBuffer,就像一个简单的三角形(省略其他不相关的 OpenGL 调用):

float[] triangle = new float[]{
0.0f, 0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f
};

FloatBuffer buf = BufferUtils.createFloatBuffer(triangle.length);
buf.put(triangle).flip();

int vbo = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, buf, GL_STATIC_DRAW);

但也有直接采用数组的变体,例如float[] 作为数据。由于我从未在任何在线代码示例中看到它的使用,我想知道是否出于任何原因不鼓励这样做?

最佳答案

方法的使用。使用数组而不是 *Buffer 并不不鼓励。您可能无法在线找到它们的用法示例,因为最近才添加它们。

AFAIK 使用这些方法没有错,execpt 它们可能比使用 *Buffer 的方法慢一小部分,因为数组(及其数据)位于头部。这是否是一个实际的性能问题是有争议的,只能通过分析具体情况来确定。

所以只要使用让感到舒服的东西即可。

关于java - LWJGL3 : Overloaded glBufferData methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37930330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com