gpt4 book ai didi

java - glBufferData ARB 还是 glBufferSubData ARB?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:39 25 4
gpt4 key购买 nike

我正在开发一款基于图 block 的物理游戏,例如 Falling Sand Game。我目前正在为顶点使用静态 VBO,为与每种 block 类型关联的颜色使用动态 VBO。对于这种类型的游戏,颜色 VBO 中的数据变化非常频繁。 (永远改变 block )目前我正在为每个 block 更改调用 glBufferSubDataARB。我发现它可以工作,但它不能很好地扩展分辨率。 (每次增加分辨率都会慢得多)我希望我能得到目前可玩分辨率的两倍。 (256x256)

我应该非常频繁地调用 BufferSubData 还是每帧调用一次 BufferData?我应该放弃 VBO 并使用顶点数组吗?

如何处理不支持 VBO 的显卡?

(注意:每个 block 大于一个像素)

最佳答案

首先,您应该停止使用这两个功能。自 2002 年左右以来,缓冲区对象一直是 OpenGL 的核心功能;没有理由使用它们的扩展形式。您应该使用 glBufferData 和 glBufferSubData,而不是 ARB 版本。

其次,如果你想要高性能的缓冲对象流,tips can be found on the OpenGL wiki .但一般来说,在同一内存上每帧多次调用 glBufferSubData 是没有帮助的。映射缓冲区并直接修改它可能会更好。

对于你的最后一个问题,我会这样说:你为什么要关心?如前所述,缓冲区对象。这就像问你应该为只支持 D3D 5.0 的硬件做什么。

忽略它;没有人会关心。

关于java - glBufferData ARB 还是 glBufferSubData ARB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895328/

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