Tak więc, zarówno w D3D, jak i OpenGL istnieje możliwość pobierania z bufora indeksów.3 bufory indeksów
Format pliku OBJ robi jednak coś dziwnego. Określa ona kilka wierzchołków takich jak:
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
Następnie określa kilka normalnych jak ..
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
Następnie określa grono coords tex lub podobna
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
potem określa "ściany" na modelu:
f 1/2/5 2/3/7 8/2/6 f 5/9/7 6/3/8 5/2/1
Gdzie jesteśmy v/t/n pierwsza liczba to indeks do tablicy wierzchołków, drugi to indeks do tablicy koordynatów tex, trzeci do tablicy normalnej.
Tak, starając się uczynić to z buforów wierzchołków,
w OpenGL mogę używać glVertexPointer
, glNormalPointer
i glTexCoordPointer
ustawić wskaźniki do każdego wierzchołka, normalna i tekstury koordynować macierze odpowiednio .. ale jeśli chodzi do rysowania z glDrawElements
, mogę określić tylko zestaw indeksów ONI, a mianowicie indeksy, których powinien używać podczas odwiedzania wierzchołków.
OK, a następnie co? Wciąż mam zestawy indeksów do odwiedzenia.
W D3D jej tak samo - można skonfigurować 3 strumienie: jeden dla wierzchołków, po jednym dla texcoords i jeden dla normalnych, ale gdy chodzi o użyciu IDirect3DDevice9 :: DrawIndexedPrimitive, mogę tylko jeszcze określić ONE bufor indeksu, który będzie indeksował do tablicy wierzchołków.
Tak, jest to możliwe wyciągnąć z buforów wierzchołków stosując różne tablice indeksu dla każdego wierzchołka, texcoord i normalne bufory (ZARÓWNO D3D lub OpenGL!), Czy muszę utworzyć jeden przepleciony tablicę, a następnie odwiedzić TO?
możliwy duplikat [siatki renderowania z wieloma indeksami] (http://stackoverflow.com/questions/11148567/rendering-meshes-with-multiple-indices) –