0
我在場景中有很多對象,我想用不同顏色爲每個對象着色。現在,我的片段着色器包括:着色3D對象
void main (void)\
{\
gl_FragColor = vec4(0.82, 0.41, 0.12 ,1.0);\
}";
和頂點着色器包括:
attribute highp vec4 myVertex;\
uniform mediump mat4 myPMVMatrix;\
void main(void)\
{\
gl_Position = myPMVMatrix * myVertex;\
}";
,因此它的色彩搭配同色系的每個對象。任何人都可以告訴我如何着色不同?我準備了一個由所有對象的顏色組成的二維數組。我不知道如何將它們傳遞給片段着色器,或者如何更改片段着色器和頂點着色器代碼?
頂點着色器和片段着色器代碼將如何更改。你可以通過編寫着色器的代碼來解釋嗎?另外,我將如何從我的主要功能中傳遞顏色? – Hellboy
我通過矩陣: int i32Location = glGetUniformLocation(m_uiProgramObject,「myPMVMatrix」); glUniformMatrix4fv(i32Location,1,GL_FALSE,PMVMatrix.ptr()); 但是,這不會將矩陣傳遞給頂點着色器嗎?我不需要在頂點着色器中使用變量myColor嗎?您不需要: – Hellboy
:glGetUniformLocation也可以在片段着色器中找到變量的位置。如果你只是做一個glGetUniformLocation(m_uiProgramObject,「myColor」);和glUniform3fv(...)這應該發送你的變量到正確的着色器。 – WhitAngl