2012-06-21 4 views
1

glDrawElements를 호출 할 때 인덱스 버퍼를 사용하여 어떤 순서로 그릴지를 결정합니다. 내 질문은 그 색인이 텍스처, 일반 및 색상 속성에 적용되는 방법입니다. 각 정점에 대해 사용되는 텍스처 좌표와 법선에 대해 다른 인덱스 배열을 설정할 수 있습니까? 또는 정상 및 텍스처 좌표 버퍼를 만들어서 그려지는 꼭지점과 정렬되도록해야합니까?인덱스 데이터는 glDrawElements에서 어떻게 처리됩니까?

+0

가능한 복제본 [단일 VAO에서 둘 이상의 색인 목록 사용] (http://stackoverflow.com/questions/8206144/using-more-than-one-index-list-in-a-single-vao)) –

답변

5

각 정점에 대해 사용되는 텍스처 좌표와 법선에 대해 다른 인덱스 배열을 설정할 수 있습니까? 좋은 이유

번호 :

아니면이 정상을 만들고 그들이 정점이 그려지과 일치하도록 텍스처 버퍼를 조정해야합니까?

꼭지점, 보통, 텍스처 좌표 등을 정점 (배치)에 지정된 다른 벡터로 보지 마십시오. 정점은 실제로 모든 속성을 포함하는 복합 벡터입니다. 이전 용어는 고정 기능 파이프 라인에 있습니다. 최신 OpenGL은 일반적인 정점 속성 만 알고 있습니다.

모든 색인은 정확하게 하나의 특정 정점 벡터를 나타냅니다. 속성에 차이가있는 경우 다른 꼭지점이므로 다른 색인을 부여해야합니다.

+1

그래서 인덱스가 특정 벡터를 참조하기 위해 정점에 사용되는 경우 활성화 된 색상 버퍼, 일반 버퍼 또는 질감 버퍼가있는 경우 색인은 정점 버퍼에서와 같은 버퍼에서 동일한 위치를 참조합니까? – dagronlund

+0

@ dagronlund : 예. 모든 다른 버퍼에는 큰 벡터의 요소 만 포함되어 있기 때문입니다. 'Vertex_i = (pos_i, normal_i, texccords [] _i, attribs [] _i)'를 생각해보십시오. – datenwolf