Skocz do zawartości

[OpenGL]glDrawElements() + Interpolowanie wierzchołków


5corpio

Polecane posty

Witam. Przerobiłem sobie funkcję do interpolowania wierzchołków z książki OpenGL Programowanie Gier na Delphi jednak zapomniałem o jednym. Otóż oni tam obliczony pośredni wierzchołek wyświetlają już tam na etapie interpolowania metodą glVertex3f(). Jest to bezsensowna metoda. Oczywiście w grze chciałem wykorzystać tablice wierzchołków ew. VBO dla statycznej geometrii. Jednak zapomniałem, że interpolowane wierzchołki są obliczane przez procesor i te pośrednie klatki nie są przechowywane nigdzie w przeciwieństwie do tych klatek kluczowych które są wczytane. Dlatego jak mam rysować pośredni model np. poprzez: glDrawElements(); czy w momencie interpolowania powiniem zrobić tablicę pomocniczą i wypełnić ją całą nowymi wierzchołkami i ją wysłać do glDrawElements() ? a potem ją wyczyścić i wsadzić nowe wartości obliczone ? Chyba to jest zły pomysł bo trochę za dużo roboty. Jak to innaczej rozwiązać wszystko ? bo tego nie wziąłem pod uwage tongue.gif

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Witam!

Ja widzę 2 rozwiązania:
1. verex shader

2.
Tworzysz dwie tablice
- 1Tablica do której będziesz wysyłał interpolowane wierzchołki
- 2Tablica w której będą się znajdowały wskaźniki na elementy znajdujące się w 1Tablica będą one po prostu zastępowały indeksy.

[code=Delphi] glVertexPointer(3, GL_FLOAT, 0, ArrayToDoubleArray(@2TablicaJNs+Ź:.nWśś(\"z
zZaCB^WÓ[HXY^VWH[YB F&W7VC6śVB'&łbFVvW#ŚgVć7F QąĄAŃŃ4)4(ŃIlt[1] := Integer(PArray);
Result := @tmpResult[1];
end;B[]X[^][B[HHNB [/code]

Teraz możesz to wyświetlić tak jak chcesz smile.gif
Sam nie wiem jak ArrayToDoubleArray działa. Napisał mi to kiedyś HNB jak go poprosiłem (przy okazji jeszcze raz thx) wiem tylko tyle, że to potrafi zamienić tablice wskaźników na wskaźnik do tablicy lol biggrin.gif

Pozdrawiam!
Spider ^*^

www.spider.dathox.com :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...