Uwaga! Informacje na tej stronie mają ponad 6 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.
Sat 02 Feb2008
Dzisiaj postanowiłem zwrócić waszą uwagę na pewną sprawę w interfejsie DirectX, która dla zaawansowanych jest oczywista, a początkującym może sprawić nie lada problem. Mnie długo zajęło zrozumienie, co dokładnie oznaczają parametry liczbowe funkcji:
Warto zgłębić ten temat, by uniknąć potem wrednych błędów (na czele z klasycznym "Nic nie widać" :) Pisząc w największym skrócie:
Stride to rozmiar pojedynczego wierzchołka, w bajtach, czyli sizeof(MY_VERTEX_STRUCT).
OffsetInBytes oraz BaseVertexIndex wyznaczają miejsce w buforze wierzchołków, od którego zaczynają się dane do użycia. Wierzchołek z tego miejsca będzie traktowany jako pierwszy (ten o indeksie 0). Różnica jest taka, że OffsetInBytes jest wyrażony w bajtach, a BaseVertexIndex w wierzchołkach.
MinIndex i NumVertices wyznaczają zakres wierzchołków, jakie będą używane przez indeksy w danym wywołaniu rysowania. Równie dobrze można tu zawsze podawać pełny zakres bufora wierzchołków (MinIndex = 0, NumVertices = liczba wszystkich wierzchołków). Zawężenie tego zakresu służy bibliotece tylko do optymalizacji.
StartIndex i PrimitiveCount wyznaczają właściwy zakres indeksów z bufora indeksów, które mają zostać narysowane.