2010-12-03 2 views
3

OpenGL ES 2.0으로 Android 애플리케이션을 개발 중입니다.Wavefront OBJ 형식에서 '인덱스'로드 중

블렌더 2.49b로 만든 내보내기를 Wavefront OBJ 형식으로로드하려고합니다. 내가 정상적인 및 질감 verxtex 위치를 식별했습니다.

glDrawElements (GLenum 모드, GLsizei 개수, GLenum 유형, const GLvoid * 인덱스)를 사용하여 메시를 그려보고 싶지만 Wavefront OBJ 파일에서 마지막 매개 변수 인 인덱스를 얻는 방법을 모르겠습니다.

얼굴은 내가 찾고있는 '색인'입니까?

포럼에서 이것을 발견했습니다 : faces = indices from 1!

'1로 시작'이란 의미는 무엇입니까?

감사합니다.

답변

3

첫 번째 색인이 0 대신 1임을 의미합니다. Java/C 배열/컬렉션은 0을 기반으로하는 표시를 사용하고 첫 번째 요소는 0으로 시작합니다. Wavefront OBJ 형식 색인은 1부터 시작합니다.

얼굴은 색인 인 3 개의 값 v/vt/vn으로 구성됩니다. 색인은 파일 형식으로 직접 지정되지 않습니다. 대신 v, vt, vn 요소가 파일에서 발생하는 순서입니다. 따라서 파일을 파싱 할 때 발생하는 정점 수, 정점 텍스처 및 정점 법선의 수를 추적해야합니다.

형식에 대한 자세한 내용은 사양을 참조하십시오.

http://www.martinreddy.net/gfx/3d/OBJ.spec

관련 문제