따라서 D3D와 OpenGL 모두 인덱스 버퍼에서 그릴 수 있습니다.3 개의 인덱스 버퍼
그러나 OBJ 파일 형식은 이상한 일을합니다. 이
vn 0.196004 0.558984 0.805680 vn -0.009523 0.210194 -0.977613 vn -0.147787 0.380832 -0.912757 vn 0.822108 0.567581 0.044617 vn 0.597037 0.057507 -0.800150 vn 0.809312 -0.045432 0.585619
그런 다음 그 다음을
vt 0.1225 0.5636 vt 0.6221 0.1111 vt 0.4865 0.8888 vt 0.2862 0.2586 vt 0.5865 0.2568 vt 0.1862 0.2166같은 텍스 좌표의 무리를 지정하는 등의 법선의 무리 ..를 지정 그런
v -21.499660 6.424470 4.069845 v -25.117170 6.418100 4.068025 v -21.663851 8.282170 4.069585 v -21.651890 6.420180 4.068675 v -25.128481 8.281520 4.069585
: 그것은 같은 정점의 무리를 지정합니다 다음과 같이 모델의 '면'을 지정합니다.
f 1/2/5 2/3/7 8/2/6 f 5/9/7 6/3/8 5/2/1
여기서 우리는 v/t/n입니다. 첫 번째 숫자는 정점 배열에 대한 인덱스이고, 두 번째 숫자는 텍셀 좌표 배열에 대한 인덱스이고, 세 번째 숫자는 법선 배열입니다. 이 때
그래서, 내가 glVertexPointer
, glNormalPointer
및 glTexCoordPointer
는 정점의 각 포인터를 설정하는 데 사용할 수있는, 버텍스 버퍼와 OpenGL을에서
을이 렌더링하려고에, 정상과 질감은 각각 배열을 조정 ..하지만 glDrawElements
으로 그리기까지, ONE 색인 세트, 즉 정점을 방문 할 때 사용해야하는 색인 만 지정할 수 있습니다.
그래, 그럼? 나는 여전히 개의 색인 집합을 가지고있다.
D3D에서의 거의 같은 - 나는 3 개 스트림을 설정할 수 있습니다 정점 하나, texcoords 하나, 법선 하나를, 그러나에 IDirect3DDevice9 :: DrawIndexedPrimitive를 사용하여 올 때, 나는 여전히 ONE를 지정할 수 있습니다 index 버퍼에 저장된다.
그래서, 그것은 (! D3D 나 OpenGL을이든) 정점, TEXCOORD의 각각에 대해 서로 다른 인덱스 배열을 사용하여 버텍스 버퍼에서 그릴 수 수 , 정상 버퍼, 또는 나는 방문 후 하나의 인터리브 배열을 생성해야합니다 그것?
가능한 중복 [여러 개의 인덱스를 사용하여 렌더링 메쉬] (0120-557-005) –