1

ここで説明されているトリプル バッファリングを実装しようとしていますhttp://developer.apple.com/library/ios/#documentation/3ddrawing/conceptual/opengles_programmingguide/OpenGLESApplicationDesign/OpenGLESApplicationDesign.html。これは、glBufferSubData が終了するのを待たないようにすることで、より高いフレーム レートを得ることを目的としています。

私の理解では、これはトリプルバッファを実装する方法です:

- make 3 buffers with glGenBuffers()
Current frame:
  - bind to buffer3
  - draw last frame
  - bind to buffer1
  - glBufferSubData for all the vertices, 
      keep track of their texture/vertex count,blend function, etc
Next frame:
  - bind to buffer 1
  - draw last frame (bind texture, blend func, glDrawArrays)
  - and so on

これと glBufferSubData を実行してからすぐに glDrawArrays を呼び出すことの間にパフォーマンスの向上はないようです。

トリプルバッファーがどのように機能するべきかを誤解していますか?

また、glBufferSubData がまだ終了していないために glDrawArrays がいつ停止するかを知る方法はありますか?

4

0 に答える 0