頂点属性が頂点シェーダー内から有効になっているかどうかを確認する方法があるかどうか疑問に思っていましたか? 頂点属性が無効になっている場合、すべての値が 0.0 として扱われることがわかっているので、次のようなテストを実行できます。
if (attribute == 0)
{
// Do something different to normal.
}
else
{
// Use the attribute.
}
しかし、これには、属性が有効で値が 0 に設定されている場合 (無効であるかのように扱われる) の明らかな問題があります!
もう1つの解決策は、属性を使用するかどうかを示す一様な変数を使用することですが、それを行うGLSLに組み込まれたものがあるかどうか疑問に思いましたか?