Script klappt komischerweise wegen dem Vector nicht
-
Perfekt, danke! Jetzt muss ich nur noch die Faces und die Texturen laden...
Meine Frage noch: muss ich die Faces genauso zeichnen wie die Koordinaten oder muss ich sie irgendwie "speziell" behandeln?
-
mascerade schrieb:
muss ich die Faces genauso zeichnen wie die Koordinaten oder muss ich sie irgendwie "speziell" behandeln?
Du musst die faces nicht zeichnen
. Am Besten du schaust dir nochmal eben meine E-Mail an, da steht alles drin...
So renderst du die Vertices richtig: (Vorsicht, ungetestet und SPOILER!)
// Wie bereits gesagt, musst du das Alignement beachten, wie man das ausschaltet habe // ich dir auch schon geschrieben. Achja: Am Besten eindeutige Namen verwenden, nicht "OGL". #pragma pack( 1 ) struct OGL { int x; int y; int z; }; #pragma pop( ) #pragma pack( 1 ) struct faces { /* Besser ist es, wenn du einen Initialisierungswert festlegst. Dann kannst du später überprüfen, ob vielleicht etwas nicht eingelesen wurde oder sonst etwas */ faces() { vertexIndex[0] = vertexIndex[1] = vertexIndex[2] = 0xffffffff; } unsigned int vertexIndex[3]; }; #pragma pop( ) void Starten ( const char *filename ) { std::ifstream Datei; Datei.open(filename, std::ios::in); std::vector<OGL> Koordinaten; std::vector<faces> faceIndex; std::string Line; OGL vertic; // vertic? Gibt's nicht, höchstens vertices... while(!Datei.eof()) { const std::string s = getWord(Line, 0); getline(Datei,Line); if(Line.find('v') != std::string::npos) { for(int v = 0; v == vD; v++) { Koordinaten[v].x = convertToFloat(getWord(Line,1)); Koordinaten[v].y = convertToFloat(getWord(Line,2)); Koordinaten[v].z = convertToFloat(getWord(Line,3)); } } else if(Line.find('f') != std::string::npos) { face faces; faces.vertexIndex[0] = convertToInt( getWord( Line, 1 ) ); faces.vertexIndex[0] = convertToInt( getWord( Line, 2 ) ); faces.vertexIndex[0] = convertToInt( getWord( Line, 3 ) ); faceIndex.push_back( faces ); } else if(Line.find('vt') != std::string::npos) { } } // ... und verarbeiten. // als erstes die Koordinaten glBegin(GL_TRIANGLE_STRIP); for( std::vector<face>::iterator k = face.begin( ); k < face.end( ); ++k ) { glVertex3f( Koordinaten[k->vertexIndex[0]].x, Koordinaten[k->vertexIndex[1]].x, Koordinaten[k->vertexIndex[2]].x); } glEnd(); Datei.close(); };
Du solltest dir vielleicht nochmal die Standard STL-Container ansehen, so macht man das nämlich nicht mit den Koordinaten...
-
ok vielen Dank, werde mir deine E-Mail nochmal durchlesen!
Edit: bekomme 2 Errors, wegen dem .begin und dem .end (".begin/.end ist kein Element von face...")
Danke schonmal
-
Wie bereits gesagt, ist der Code ungetestet. Der Vector heisst "faceIndex", der muss natürlich anstelle von "face" dahin.
-
ich schick dir mal ne ´mail...
-
mascerade schrieb:
ich schick dir mal ne ´mail...
Das wird ne' lange Nacht
.
-
hast du meine E-Mail bekommen?
-
mascerade schrieb:
hast du meine E-Mail bekommen?
Ja, alle Beide. Konnte bisher aber immer nur kurzweilig reinschauen weil ich soviel zu tun habe. Aber wenn ich ehrlich bin: Der komplette Code ist ein wirrwarr. Wenn du es am laufen hast schreibst du deine nächste Implementierung und dann? Dann wirste ständig Probleme haben wenn du deinen Code nicht stark strukturierst und mal den Debugger anwirfst (;.
-
Völlig OT, aber nötig:
Es ist kein Script! Es ist ein Programm. C++ ist KEINE Skriptsprache, demnach hier KEIN Script.Nur so nebenher.
Ansonsten: Weitermachen!
-
Ja, alle Beide
Sorry wegen den 2 Mails, ich wusste nur nicht ob beide abgeschickt worden sind.
Dann wirste ständig Probleme haben wenn du deinen Code nicht stark strukturierst und mal den Debugger anwirfst (;.
jo, da hast du wohl recht! Ich werde mal meinen Code umstrukturieren und dann mit dem Debugger noch einmal überprüfen. Fals ich dann immer noch fragen haben sollte, kann ich mich ja hier melden
Völlig OT, aber nötig:
Es ist kein Script! Es ist ein Programm. C++ ist KEINE Skriptsprache, demnach hier KEIN Script.Ah Ok und schon bin ich ein bisschen klüger geworden^^
-
Dürfte ich mal so ganz nebenbei wissen, wie alt du bist? (Meinetwegen auch E-Mail)
-
Ich verstehe gerade nicht was mein Code mit meinem Alter zutun hat.
-
mascerade schrieb:
Ich verstehe gerade nicht was mein Code mit meinem Alter zutun hat.
Naja, ich führe Statistiken. Würde ich gerne wissen; wobei ich dir doch schon so viel erklärt habe.