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;\
}";
따라서 그 색상과 동일한 색상으로 각 객체입니다. 아무도 어떻게 색을 다르게 표현할 수 있습니까? 모든 객체의 색상으로 구성된 2D 배열을 준비했습니다. 조각 쉐이더로 전달하는 방법이나 조각 쉐이더 및 버텍스 쉐이더 코드를 변경하는 방법을 알아낼 수 없습니까?
버텍스 쉐이더 및 프래그먼트 쉐이더 코드는 어떻게 바뀌는가? 셰이더 코드를 모두 작성하여 설명 할 수 있습니까? 또한, 어떻게 내 주요 기능에서 색상을 전달할 것인가? – Hellboy
다음과 같이 행렬을 전달했습니다. int i32Location = glGetUniformLocation (m_uiProgramObject, "myPMVMatrix"); glUniformMatrix4fv (i32Location, 1, GL_FALSE, PMVMatrix.ptr()); 그러나이 행렬을 버텍스 쉐이더로 전달하지 않습니까? 버텍스 쉐이더에서도 변수 myColor를 사용해야하지 않습니까? – Hellboy
당신은 다음을 할 필요가 없습니다. glGetUniformLocation은 조각 쉐이더에서 변수의 위치를 찾을 수 있습니다. 방금 glGetUniformLocation (m_uiProgramObject, "myColor"); glUniform3fv (...) 이것은 변수를 올바른 셰이더에 보내야합니다. – WhitAngl