頂点に私の(静的な)VBOにGL_UNSIGNED_SHORTまたはGL_FLOATを使うべきかどうかを決定する必要があります。ショーツはメモリを2倍少なく使いますが、レンダリング速度も低下します(GPUで浮動小数点に変換する必要があるため)。テクスチャ座標の場合と同じことですが、小さいテクスチャの場合はGL_UNSIGNED_BYTEを使用し、大きいテクスチャの場合はGL_UNSIGNED_SHORTを使用します(テクスチャマトリックスを使用して0-1にマップします)。しかし、レンダリングの速度が低下する可能性があります。OpenGL VBO:ショートまたはフロート?
1
A
答えて
3
最新のハードウェア(DX10対応以上)では、属性の読み取りパフォーマンスは、整数から浮動小数点への変換ではなく、常にメモリアクセスによって支配されると考えることができます。本質的にそれは無料です。
これはほとんどの場合、DX9クラスのハードウェアにも当てはまりますが、一部のハードウェアではうまく機能しない特定の頂点フォーマットがあります。
つまり、テクスチャ座標に符号なしバイトを使用できるかどうかはわかりません。ほとんどのモデルでは、テクスチャ座標のテクセルあたりの精度よりも高い精度が必要です。符号なしのショートは通常は問題ありませんが、バイト単位の精度では機能しません。
2
shortをfloatに変換するのはかなり安い操作です。私はと思うでしょうメモリ帯域幅の節約は余分な処理コストを上回ると思います。
実際にテストすることなく、これは野生の推測だけにとどまります。
関連する問題
- 1. OpenGL VBOの色は?
- 2. OpenGLテクスチャVBO
- 3. OpenGL VBOのバッチベストプラクティス
- 4. OpenGL vboのアドバイス
- 5. OpenGL VBOペイントオーダー
- 6. OpenGL VBOの設定
- 7. OpenGL VBOフォントデータのロード
- 8. OpenGL VAOとVBOオブジェクト
- 9. VBOを使ったOpenGLの複数テクスチャ
- 10. OpenGLのVBO DMA配列
- 11. OpenGLでのvbo管理
- 12. SDL2 OpenGLはC++がVBOとFBO
- 13. OpenGL:最初のVBOを駄目にする2番目のVBO
- 14. コードアシスト、OpenGL VAO/VBOクラス描画なし
- 15. OpenGL 2.1:VBOのサブ領域を再バッファリング
- 16. OpenGLテクスチャを透明にするVBO
- 17. OpenGL ES 2.0と頂点バッファオブジェクト(VBO)
- 18. Android OpenGL ES 2. 0 VBOレンダリングしない
- 19. CUDAを使用したOpenGLの高さマップペイントVBO
- 20. Android OpenGL ES2 1つのVBOのための多くのテクスチャ
- 21. レンダリング時にOpenGL VBOのみがGPUにアップロードされます
- 22. OpenGlはVBOを使用して三角形を表示しません
- 23. ショート
- 24. ショート
- 25. ショート
- 26. OpenGLまたはOpenGL ES
- 27. OpenGL VBOで何千ものポリゴンを描画する
- 28. OpenGL C++:VBOの構造ラッパーがメンバーを初期化しない
- 29. OpenGLの基本的なIBO/VBOが動作しない
- 30. OpenGL VBOが正しく更新されない
私の目的では、符号なしバイトは最大128x128のテクスチャで正常に動作しますが、特定の頂点フォーマットはうまく動作しません。 (私はOpenGL 2.0をターゲットにしています) – Jonathan