OpenGL VBO가 대형 지오메트리 배열에만 사용되는지 아니면 작은 배열에도 사용할지 여부를 알고 싶었습니다. 다른 지오메트리와 관련하여 다양한 지오메트리를 배치하는 코드가 있지만 "리프"지오메트리 객체 중 일부는 매우 작고 10x10 크기의 구형 등 (각각 200 개의 삼각형)입니다. 나는이 작은 잎 개체가 매우 많을 수 있습니다. 이 작은 잎 개체 각각에 대해 다른 변형 행렬을 가질 수 있기를 원합니다. 두 가지 옵션이있는 것 같습니다 :많은 수의 작은 VBO를 사용하는 성능
각 리프 개체에 별도의 VBO를 사용하십시오. 나는 다수의 VBO로 끝날지 모른다.
하나의 VBO에 여러 개체의 데이터를 저장할 수 있으며 지정된 리프 개체의 데이터를 변경할 때 적절한 변환을 직접 적용 할 수 있습니다. 이것은 OpenGL의 요점 중 하나는 하드웨어에서 많은 수의 행렬 연산을 효율적으로 수행하기 때문에 이상하게 보입니다. 나는 OpenGL이 하드웨어에서 아주 잘하도록 설계된 소프트웨어를하고있을 것이다.
많은 VBO가 비효율적입니까? 아니면 그냥 옵션 1을 선택해야합니까? 작은 물건을 많이 가지고있는 상황을 다루는 더 좋은 방법이 있습니까? 대신에 버텍스 배열 같은 것을 사용해야할까요? http://www.opengl.org/wiki/Vertex_Specification_Best_Practices
내가 한 메쉬 당 200 개 삼각형이 너무 적은 수의 그 각각에 대한 VBO와 아마 성능이 훨씬 줄어들지 않습니다 메쉬가 아니라고 생각 :
인스 턴싱이란 무엇입니까? – Gravity
여기에 몇 가지 정보가 있습니다. http://sol.gfxile.net/instancing.html하지만 기본적으로 동일한 객체를 여러 번 렌더링하는 최적화 된 방법입니다 (그러나 다른 변형과 재료를 사용합니다) – fen