2012-11-09 3 views
0

지난 며칠 동안 OpenGL 3D 프로그래밍에 대한 경험을 시작했습니다. Java 용 LWJGL을 사용하고 있습니다. 나는 fps-movement로 3D 카메라 클래스를 만들었습니다. 또한 VBO로 큐브를 만들었습니다. 나는 문제없이 이것을 표현할 수있다.OpenGL - 여러 위치에 VBO 그리기

이제 어떻게이 동일한 VBO를 다른 위치에 그릴 수 있습니까? 이제 내 큐브가 켜져 있고 (0, 0, 0), (5, 5, 5)로 이동합니다. 같은 큐브를 (10, 10, 10)에서 (15, 15, 15)로 그려야한다면 어떨까요?

감사합니다.

답변

0

큐브의 위치 벡터를 uniform vec3 변수로 버텍스 쉐이더에 전달하십시오. 거기에서 각 꼭지점의 위치에 추가하십시오.

수백 개를 그리려면 인스턴스를 사용하여 성능을 절약 할 수 있습니다. 정점 위치에 대해 하나의 정점 속성을 설정하고 각 인스턴스의 변환에 대해 인스턴스 당 하나의 속성 (glVertexAttribDivisor = 1)을 설정하십시오. 자세한 내용은 this wiki entry을 참조하십시오.