Instancing을 추가하고 싶었다.
그래서 Instancing Model과 그냥 Model을 나누려고 했는데,
OpenGL 명세를 읽어보니 glDrawElementsInstanced는
for문으로 glDrawElementsOneInstance를 실행한 것과 같고.
glDrawElements는 glDrawElementsOneInstance를 한 번만 실행하는 것과 같다고 했다.
그래서, 나는 현재 그냥 Model Class에 있는 이것을
glDrawElements(GL_TRIANGLES, m_indices.size(), GL_UNSIGNED_INT, 0);
다음으로
glDrawElementsInstanced(GL_TRIANGLES, m_indices.size(), GL_UNSIGNED_INT, 0, 1);
바꾸었다.
그래서, 실행해보니, 문제가 없었다.
따라서 굳이 나눌 필요가 없게 되었다.
그냥 bool flag를 넣어서 instance라면, instance amount만 명시해주면 되는 것이다.
그러면 Instancing을 구현할 수 있을 것이다.
Instancing에 따라서, Model picking을 또 따로 구현해야 할텐데 지금 시간이 없으니
일단 Instancing만 구현하자.
댓글 없음:
댓글 쓰기