我正在开发OpenGL程序,我必须计算一个边界框.我编写了代码来做到这一点,但是我无法从顶点缓冲区获得顶点协调.有人可以向我解释一种从顶点缓冲区获取数据的简单方法吗?
我正在将Java用于android和OpenGL es
解决方法:
如果使用OpenGL ES 3.0或更高版本,则可以使用glMapBufferRange()直接访问缓冲区数据.有关功能的详细信息,请参见man page;有关Android中的Java绑定的详细信息,请参见GLES30 documentation.
我认为ES 2.0中没有任何合理的方法可以做到这一点.我可以想到绝对糟糕的方法,但要引导您朝那个方向走,我会感到很不好.好吧,出于完整性考虑,但是请不要这样做:您可以渲染最终将顶点数据保留在渲染目标中的内容,并使用glReadPixels()将其读回.
如果您需要经常访问自己代码中的顶点数据,则保留它的副本很可能会更好地工作.调用glBufferData()时,您已经有了数据.如果当前在glBufferData()调用之后将其丢弃,则只需保留它,并在需要访问顶点数据时使用它即可.