Zac*_*543 3 java opengl vbo lwjgl
我正在开发一种基于平铺的物理游戏,如Falling Sand Game.我目前正在使用静态VBO作为顶点,使用动态VBO作为与每种块类型相关联的颜色.对于这种类型的游戏,颜色VBO中的数据变化非常频繁.(永远阻止更改)目前我正在为每个块更改调用glBufferSubDataARB.我发现这个工作,但它不能很好地解决分辨率.(随着分辨率的每次提高,速度要慢得多)我希望我可以将当前可玩分辨率提高一倍.(256×256)
我应该非常频繁地调用BufferSubData还是每帧一次调用BufferData?我应该放弃VBO并使用顶点数组吗?
对于不支持VBO的视频卡可以做些什么?
(注意:每个块大于一个像素)
首先,您应该停止使用这两个功能.自2002年左右以来,缓冲对象一直是核心OpenGL功能; 没有理由使用它们的扩展形式.您应该使用glBufferData和glBufferSubData,而不是ARB版本.
其次,如果您想要高性能缓冲区对象流,可以在OpenGL维基上找到提示.但一般来说,在同一内存中每帧调用glBufferSubData很多次都没有用.映射缓冲区并直接修改它可能会更好.
对于你的上一个问题,我会这样说:你为什么要关心?如前所述,缓冲区对象是旧的.这就像问你应该为只支持D3D 5.0的硬件做什么.
忽略它; 没人会关心.