자바와 LWJGL로 GLSL을 배우려는 것을 배우고 있습니다 만, 현재 기본 버텍스 쉐이더에 문제가 있습니다.OpenGL 버텍스 쉐이더가 작동하지 않습니다.
버텍스 쉐이더 :
#version 120
void main() {
gl_Position = gl_Vertex * 0.5;
}
조각 쉐이더 :
#version 120
void main() {
gl_FragColor = vec4(1.0, 0.4, 0.4, 1.0);
}
렌더링 코드 :
public void draw() {
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glVertexPointer(3, GL_FLOAT, 0, 0L);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawElements(GL_TRIANGLES, size, GL_UNSIGNED_INT, 0);
glDisableClientState(GL_VERTEX_ARRAY);
}
컴파일은 오류를 얻을 수없고, 조각 쉐이더는 간단한 삼각형을 염색 잘 작동 내가 그려. 유일한 문제는 예상대로 삼각형 축소 (0.5 팩터)를 보지 못한다는 것입니다. 꼭지점은 변경되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
프로그램이 바운드되어 있고 활성화되어 있습니까? –
예, Fragment Shader가 작동 중입니다. – Thiago
'gl_Position = gl_Vertex * 0.5'는 w 성분을 포함한 전체 4 차원 벡터를 수정합니다. 'gl_Position = vec4 (gl_Vertex.xyz * 0.5, 1.0)'와 같은 것을하십시오. –