4
私の頂点属性のいくつかは、単一の符号なしバイトです.GLSLフラグメントシェーダでは、実際の計算ではなく、比較するために必要です。私はGLSLで符号なしバイトまたはバイトデータ型を見つけられなかったので、入力として使用する方法はありますか?そうでない場合(現時点ではそう思われる)、GL_UNSIGNED_BYTEの目的は何ですか?(符号なし)バイト
私の頂点属性のいくつかは、単一の符号なしバイトです.GLSLフラグメントシェーダでは、実際の計算ではなく、比較するために必要です。私はGLSLで符号なしバイトまたはバイトデータ型を見つけられなかったので、入力として使用する方法はありますか?そうでない場合(現時点ではそう思われる)、GL_UNSIGNED_BYTEの目的は何ですか?(符号なし)バイト
GLSLはサイズの大きい型を扱っていません。浮動小数点、浮動小数点数、倍精度、ブール値、およびそれらのベクトル/行列のみが符号付き/符号なしの整数です。整数の頂点属性として符号なしのバイトを頂点シェーダに渡すと、少なくとも32ビットのサイズのuint
型として読み取ることができます。積分属性を渡すには、glVertexAttribIPointer/IFormat
を使用する必要があります(「I」に注意してください)。
頂点シェーダは、この値をuint
タイプ(但し、補間修飾子flat
のみ)としてフラグメントシェーダに渡すことができます。もちろん、三角形のすべてのフラグメントは同じ値になります。