頂点シェーダーでは、もちろん限られた量の均一なストレージが許可されており、コードのコンパイルに関して、異なるシステムがわずかに異なる方法で GLSL を実装する可能性があることを理解しています。頂点シェーダー コードでリテラルを書き出す代わりに、定数を使用することをお勧めします。
たとえば、次のコードは、使用可能な一様ストレージの削減につながる可能性があります。(やり方がよくわかりません。)
例 1: リテラルを使用
vec4 myVector = vec4(1.0, 0.0, 0.0, 1.0);
私の理解では、それぞれの使用1.0
または0.0
一定量の均一なストレージ スペースを占有する可能性があります。したがって、以前のコードを次のように変更することをお勧めします。
例 2: リテラルの代わりに定数を使用する
const float zero = 0.0;
const float one = 1.0;
vec4 myVector = vec4(one, zero, zero, one);
何が起こっているのかの背後にある議論を誰かが理解していますか? コードに問題はありません。将来問題が発生しないように、コードを適切に理解しようとしています。
私の正式な質問は次のとおりです。特にOpenGL ES 2.0を使用するiOSプラットフォームの場合、リテラル (例 1) または定数 (例 2) を使用して書き出すのがベスト プラクティスです。定数を毎回書き出すことに時間を費やすべきですか、それともリテラルを書き出して、頂点シェーダーが適切にコンパイルできない場合にのみ定数を使用するべきでしょうか?
ありがとう!