0
現在、私は1つの色(赤色)を返す単純なフラグメントシェーダを持っています。私はCのコードから別のRGBAの色を変更したい場合は、どうすればいいのですか?OpenGLフラグメントシェーダ - 固定カラーの変更
フラグメントシェーダ内の属性をCから直接変更することはできますか?または、頂点シェーダのソリッドカラー属性を変更してから、そのカラーをフラグメントシェーダに渡す必要がありますか?私は単一の単色の四角形を描画しています - 何も特別なものはありません。
void main()
{
gl_FragColor = vec4(1.0, 0, 0, 1);"
}
ありがとうございます。残念ながら、私の長方形は常に黒です。 GLuint hColor = glGetUniformLocation(g_SolidProgram、 "vColor4"); フラグメントシェイダーにも同じ変更を加えましたが、シェーダーのコンパイルに失敗したため、1ではなく1.0を使用しなければなりませんでした。 GLfloat color [3] = {1.0、1.0、0.0}; glUniformMatrix3fv(hColor、1、GL_FALSE、color); – SparkyNZ
glUniformMatrix3fv(hColor、1、GL_FALSE、color); "glUniform3fv(hColor、1、color);"にする必要があります。注:_glUniformMatrix3fv_は行列の** ONLY **、_glUniform3fv_はベクトルのものです – Jas
優秀!私はあなたの答えを受け入れました。私を助けてくれてありがとう。 'マトリックス'のビットを見ていない:) – SparkyNZ