8

時間はかかりますglGetUniformLocationか?glGetAttribLocation

どちらが良いですか?

  1. 電話するglGetAttribLocationglGetUniformLocation、必要になるたびに?
  2. 場所を変数に保存し、必要に応じて使用しますか?
4

3 に答える 3

9

どちらが良いですか?

考えてみてください。どんなに速くglGetUniformLocationglGetAttribLocationも、変数をフェッチするよりも速くすることはできません。したがって、パフォーマンスが心配な場合は、常に高速な方法を使用してください。

于 2012-08-03T22:17:28.853 に答える
8

glDrawElements私のテストによると、そのような場所の取得には、1回の呼び出しにかかる時間の約100〜200倍の時間がかかりました。これはに基づく見積もりにすぎませんSystem.nanoTime()が、初期化時に変数に格納する価値があると言っても過言ではありません。

于 2015-09-26T07:57:59.650 に答える
5

AndroidでもiPhoneでも、openglサーフェスの場合、 onSurfaceCreatedやonSurfaceChangedのようなメソッドがあり、これら2つのメソッドでユニフォームと属性をフェッチする習慣を身に付けます。

レンダリングを高速化できる唯一の方法(コードが1000行のコードを超えるとすぐに優先されます)は、 onDrawFrameメソッド内にgluseprogram、glbindbuffer、texture binds、およびその他のバインドのみを持ち、常にonSurfaceCreatedおよびonSurfaceChanged内に変数をキャッシュすることです。

于 2012-08-05T15:19:13.107 に答える