2017-04-24 13 views
0

OpenGL 3.3에서 첫 3D 프로그램을 작성하고 있으며 다른 오브젝트에 대해 다른 재질을 설정하는 데 문제가 있음을 알고 있습니다. 저는 3 개의 구 (하나의 VAO에 정점이 저장되고 변환되고 그려 짐)를 그리고 유니폼을 사용하여 정점 셰이더에서 모양을 변경했습니다. 이제 문제는 구체가 다른 재질을 가져야한다는 것입니다. 그러나 각 구체에 대해 다른 유니폼을 설정하는 방법을 알 수는 없습니다. 그렇게하는 가장 좋은 방법은 무엇입니까?오브젝트 소재 당 OpenGL

+0

자료는 쉐이더 프로그램과 다소 동일합니다. 다른 텍스처와 유니폼을 바인딩 할 수 있으며 객체를 렌더링 할 때 간단히 GlUseProgram() 할 수 있습니다. 그래서 각 구를 렌더링하기 전에 프로그램을 묶고 재료 속성을 균일하게하십시오 (예 : 텍스처 등) – mutex36

답변

0

gl_VertexID를 사용할 수 있습니다. 그러나이 경우 최고는 내가 생각하는 독립형 vbo입니다.

https://rocketgit.com/user/bowler17/gl/source/tree/branch/wrench/blob/t.c

+0

독립 실행 형 vbo의 의미는 무엇입니까? 각 영역마다 하나의 vbo를 사용해야한다고 제안 하시겠습니까? 그리고 나서 그 자료를 vbo에 저장해야합니까? – RobiNoob

+0

없음 하나의 꼭지점을위한 하나의 매트 –

+0

매트 계수가있는 vec4와 같은 똑같은 매트. vbo처럼 법선을 가진 –