问题标签 [floatbuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
140 浏览

java - 在 LWJGL 3.0 中给 GL15.glBufferData() 一个浮点数组或一个 FloatBuffer 有什么区别吗?

我最近在看一个关于使用 LWJGL 用 Ja​​va 编写 OpenGL 游戏的教程。在其中,叙述者/作者首先将浮点数组从转换float[]为 a FloatBuffer,然后再将其转换为GL15.glBufferData(). 最初我并没有想太多,但我不小心GL15.glBufferData()直接给出了 float 数组而不是将其转换为 a FloatBuffer,并且代码最终还是可以工作。我查阅了文档,它只说“Array version of: BufferData”作为评论,这仍然让我不确定。

这让我想知道,假设在使用 Java 15 的 LWJGL 3.0 中调用时,是否需要努力转换float[]为 a ,假设通过 using 赋予其值并因此包含相同的数据?FloatBufferGL15.glBufferData()FloatBufferFloatBuffer::put()

0 投票
0 回答
24 浏览

opengl-es - 来自字节缓冲区的 glTexImage2d

我想创建一个带有字节缓冲区的单通道 2d 纹理,其中包含每个像素的每个浮点数(假设它是一个 alpha 值),以便在着色器中进一步使用

顺便说一句,我试过这个

tex.a在着色器中一样访问 alpha 值它只能在某些设备上正常工作,并且正如您可以从doc中看到的那样,它会INVALID_OPERATION在其他设备上发生这种情况,但在我之前提到的某些设备上不会发生这种情况。

所以问题是我如何才能做到这一点?

我也试过这个

我认为它应该做同样的事情,但将值放在红色通道中,但似乎每个像素上的值都是 rgba (0, 0, 0, 1)。

另一个问题是那些工作的设备发生了什么?

PS。我想做的就是将该缓冲区用作纹理的 alpha 值,因此如果可以将其直接发送到纹理,请告诉我。