OpenGL에서 같은 메쉬의 많은 복사본을 렌더링하려고합니다. 색인 버퍼가있는 작은 정점 버퍼를 사용할 수 있지만 각 복사본에는 자체 변환 행렬이 있습니다. 각 행렬을 쉐이더에 전달하고 싶지만 같은 복사본에 속한 버텍스는 같은 행렬을 사용합니다. 따라서, 행렬 버퍼는 정점 버퍼보다 짧을 것이다.OpenGL에서 VBO가있는 렌더링 군중
메쉬는 4 개의 꼭지점을 가지고 있으므로 4 개의 꼭지점마다 새로운 행렬을 보내야합니다. 어떤 아이디어?
OpenGL에서 같은 메쉬의 많은 복사본을 렌더링하려고합니다. 색인 버퍼가있는 작은 정점 버퍼를 사용할 수 있지만 각 복사본에는 자체 변환 행렬이 있습니다. 각 행렬을 쉐이더에 전달하고 싶지만 같은 복사본에 속한 버텍스는 같은 행렬을 사용합니다. 따라서, 행렬 버퍼는 정점 버퍼보다 짧을 것이다.OpenGL에서 VBO가있는 렌더링 군중
메쉬는 4 개의 꼭지점을 가지고 있으므로 4 개의 꼭지점마다 새로운 행렬을 보내야합니다. 어떤 아이디어?
당신은 인스턴스 된 렌더링을 사용할 수 https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml
또는
https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
는 각 인덱스에 대한 모든 변환 행렬로 가득 VBO를 만들 수 있습니다.
네 개의 정점 후 매트릭스 변경이 전송되었습니다 가질 수 있도록 4 개의 제수를 설정합니다https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml
당신은 렌더링되고있는 예를 알아 내기 위해 버텍스 쉐이더에서 gl_instanceId을 사용할 수 있으며, 수 모든 변환 행렬을 쉐이더에 보내는 것이 아니라 그 방식으로 변환 행렬을 생성하십시오.
'glDrawElementsInstanced'는 내가 찾던 곳이었습니다. 감사합니다! –