時間はかかりますglGetUniformLocation
か?glGetAttribLocation
どちらが良いですか?
- 電話する
glGetAttribLocation
かglGetUniformLocation
、必要になるたびに? - 場所を変数に保存し、必要に応じて使用しますか?
時間はかかりますglGetUniformLocation
か?glGetAttribLocation
どちらが良いですか?
glGetAttribLocation
かglGetUniformLocation
、必要になるたびに?どちらが良いですか?
考えてみてください。どんなに速くglGetUniformLocation
てglGetAttribLocation
も、変数をフェッチするよりも速くすることはできません。したがって、パフォーマンスが心配な場合は、常に高速な方法を使用してください。
glDrawElements
私のテストによると、そのような場所の取得には、1回の呼び出しにかかる時間の約100〜200倍の時間がかかりました。これはに基づく見積もりにすぎませんSystem.nanoTime()
が、初期化時に変数に格納する価値があると言っても過言ではありません。
AndroidでもiPhoneでも、openglサーフェスの場合、 onSurfaceCreatedやonSurfaceChangedのようなメソッドがあり、これら2つのメソッドでユニフォームと属性をフェッチする習慣を身に付けます。
レンダリングを高速化できる唯一の方法(コードが1000行のコードを超えるとすぐに優先されます)は、 onDrawFrameメソッド内にgluseprogram、glbindbuffer、texture binds、およびその他のバインドのみを持ち、常にonSurfaceCreatedおよびonSurfaceChanged内に変数をキャッシュすることです。