probs mit triangle strips
-
tach folks
hab nen kleines problem mit triangle strips und einem terrain, ich render das wie folgt...
[code]
glBegin(GL_TRIANGLE_STRIP);
for(zeile=0;zeile<surface_zeilen-1;zeile++)
{
for(spalte=0;spalte<surface_spalten-1;spalte++)
{
glVertex3f( surface[zeile+1][spalte+1][0], surface[zeile+1][spalte+1][1], surface[zeile+1][spalte+1][2] );
glVertex3f( surface[zeile+1][spalte][0], surface[zeile+1][spalte][1], surface[zeile+1][spalte][2] );
glVertex3f( surface[zeile][spalte+1][0], surface[zeile][spalte+1][1], surface[zeile][spalte+1][2] );
glVertex3f( surface[zeile][spalte][0], surface[zeile][spalte][1], surface[zeile][spalte][2]);}
}
[...]als ergebnis bekomm ich was total hässliches
es scheint als ob alle punkte noch mal miteinander verbunden wären...auch die äußeren (sprich linke und rechte seite noch mal mit getrennten linien) ich hab keine ahnung was ich falsch haben könnte...naja vielleicht hat von euch jmd ne idee
bye there
tt
-
Selten waren Code tags so wertvoll.
Das Problem liegt wohl daran, das du den Strip von links nach rechts nicht unterbrichst (mit deformierten Dreiecken). Benutzt du sowas wie Indexbuffer?
-
macht er nicht, sind nur vertexpositionen die er durchschiebt...
schaut auch aus als ob du für jedes quad 4 positionen angibst, also 4pos für je 2 triangles, eigentlich sollte man pro triangle nur eine pos angeben.
for(zeile=0;zeile<surface_zeilen-1;zeile++) { glBegin(GL_TRIANGLE_STRIP); for(spalte=0;spalte<surface_spalten;spalte++) { glVertex3f( surface[zeile][spalte+1][0], surface[zeile][spalte+1][1], surface[zeile][spalte+1][2] ); glVertex3f( surface[zeile][spalte][0], surface[zeile][spalte][1], surface[zeile][spalte][2]); } glEnd(); }
so vielleicht
rapso->greets();
-
jo is mir dann auch klar geworden
ich mache ein initial dreieck und gebe dann immer nur einen weiteren punkt an
ich hab noch mal langsam in meinem buch nachgelesen
bye
tt
-
Also wie gesagt, du musst deformierte Dreiecke einbauen, und das geht am einfachsten mit IB's, dazu gibts sicher im Netz Beispiele.