그러한 그리드를 만드는 몇 가지 방법이 있습니다.
가장 효율적인 방법은 인스 턴싱입니다. 이렇게하면 VBO에서 육각형을 한 번만 만들고이를 수백, 천 또는 백만 번 렌더링합니다. 포인트 1에서 언급 한 것처럼 유니폼이있는 셰이더를 사용하여 수동으로 수행 할 수 있지만 내장 된 OpenGL 기능도 있습니다. 이를 위해 glDrawElementsInstanced를 살펴 보십시오 .
인스턴스화 된 객체를 일정량 이상 그리는 경우 인스턴스화는 다른 방법보다 빠릅니다. 예를 들어 1 개의 큰 VBO를 사용하면 300을 그리는 것이 더 빠를 수 있지만 인스턴스 렌더링을 사용하면 2 백만을 그리는 것이 더 빠를 수 있습니다.
인스턴스 렌더링을 사용하는 경우 Attribute Divisors를 사용하여 객체 별 데이터를 보낼 수 있습니다 . 귀하의 경우 위치와 색상을 보내려고합니다.
인스턴스 렌더링에 대한 유용한 자습서 : click
실제로 가장 좋은 방법은 두 방법을 모두 시도하고 1 프레임을 그리는 데 걸리는 시간 (밀리 초)을 확인하는 것입니다. 이 방법으로 두 가지 방법을 모두 배울 수 있으며 항상 좋습니다.
또한 인스턴스 렌더링은 최신 OpenGL 기능이며이를 사용하려면 셰이더를 사용해야합니다. 그러나 처음부터 올바른 방법을 배우는 것이 가장 좋습니다.