2014-05-23 3 views
0

OpenGL을 사용하여 3D 응용 프로그램을 개발 중입니다. OpenGL VAO best practices'배치'라는 용어는 3D 컴퓨터 과학 (3D 엔진)에서 정확히 무엇을 의미합니까?

나는이 게시물에 용어 '배치'의 의미에 대한 확실하지 않다 :

나는 다음과 같은 게시물의 일부에 대한 오해가있다.

씬의 각 오브젝트를 의미합니까? 장면의 여러 개체 또는 여러 개체에 대해 VAO를 만드는 것이 좋습니다. 배치는 동일한 재질, 변형 및 음영을 공유하는 여러 객체를 나타 냅니까?

답변

1

일괄 처리는 단일 호출을 통해 그려지는 프리미티브, 즉 점, 선 또는 삼각형의 "배치"(= 묶음) 일뿐입니다. 이것 뒤에는 더 깊은 마술이 없습니다.

씬의 각 개체를 의미합니까?

아니요. OpenGL은 "모델"이 무엇인지 알지 못합니다. 이 개념은 OpenGL이하는 것 이상입니다. OpenGL은 점, 선 또는 삼각형을 화면에 그리기 만하면됩니다.

장면의 여러 개체 또는 여러 개체에 대해 VAO를 만드는 것이 좋습니다. glDraw… 통화 최소한의에로 그릴 수 (점 | | 라인 = 삼각형)

는 아니, 당신이 프리미티브의 최대 수를 병합 할 수있는, 그런 방법으로 VAOs 및 VBOs를 만들 것을 제안 단일 VAO/VBO

예를 들어, 각 상자의 모양이 약간 다른 골판지 상자로 된 창고를 렌더링한다고 가정 해 보겠습니다. (이케아 매장의 셀프 서비스 섹션을 생각해보십시오. 전세계의 모든 상점에서) : 모양이 다르긴하지만 박스의 공통점은 색상, 질감 등입니다. 따라서 모든 상자를 하나의 VAO/VBO에 넣고 모두 함께 그립니다 glDraw…이 단일 또는 수작업으로 동일한 텍스처 및 쉐이더를 사용합니다.

+0

좋아요. 그렇다면 일괄 처리는 동일한 텍스처 (재질), 변형 및 음영 정보를 공유하는 장면의 모든 지오메트리 (메쉬)로 정의됩니다. 따라서 내 장면이 특정 질감의 집과 그 주위에 다른 질감이있는 나무가 있지만 다른 음영이있는 집으로 구성된 경우 2 배치가됩니다. 사실입니까? – user1364743

+3

@ user1364743 : 특정 방식으로 일괄 처리가 정의되어 있지 않습니다. 배치는 단순히 'glDraw ...'라는 단일 호출로 그려지는 모든 지오메트리입니다. 그것을 지나치게 생각하지 마십시오. 기하학적 또는 장면과 관련된 정의가 없습니다. 배치 란 'glDraw ...'에 대한 특정 호출에 의해 처리되는 세트로 들어가는 모든 것입니다. 당신이 목표로하는 것은'glDraw ...'호출의 수를 최소화하는 방식으로 그러한 배치에 데이터를 수집하는 것입니다. – datenwolf

+0

확인. 모든 답변을 주셔서 감사합니다. – user1364743