Ich habe den Bug schon im M.z.d.Pr. Thread gepostet, wollt aber hier nochma auf Deutsch posten da ich noch net so die Lösung gefunden hab (und hier vielleicht mehr Leute antworten)
Also erstmal würde mich interessieren was ich an obiger stelle eintragen muss (Ich muss ja hier die gl3DS.pas erstmal zum laufen bringen). Wenn dann noch was net geht frag ich hier nach...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Dann hast du evtl. ne andere Version der Textures.pas als Noeska, weshalb dann auch die Parameter nicht mehr stimmen. Guck also doch einfach mal in deiner Textures.pas welcher Parameter fehlt, denn AFAIK sieht LoadTexture in der Grundversion so aus :
Code:
function LoadTexture(Filename:String;var Texture: TGLuint; LoadFromRes :Boolean;)
Also fehlt bei dir der letzte Paramter, der angibt ob deine Textur als Resource an deine EXE angehängt wurde, was wohl weniger der Fall sein dürfte.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Also bei mir kommt erstmal das er die Datei nich öffnen kann. Liegt aber daran das du im OnCreate den Pfad falsch angegeben hast, also statt "..\'mesh\Object.3ds" musste ich dort bei mir "'mesh\Object.3ds" einsetzen. Dann kommt zwar noch ein Fehler in der gl3DS.pas (Zeile 1940), aber nach dessen Auskommentierung läuft die Anwendung doch einwandfrei. Ich schätze mal du hast bei deinem Mesh (habe das Original ja nicht) einen Fehler gemacht, so hatte ich z.B. Probleme (so sieht dein Mesh nämlich aus) sobald ich mehrere Sachen gruppiert abgespeichert hatte.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Der mesh is ja als .3ds dabei. Das is eigentlich nix weiter als paar grundobjekte zusammengeboolt, dann nen Donat subtrahiert und als Edit mesh konvertiert. Sonst gar nix weiter....
Was muss ich denn da beachten??
EDIT: Wie kann ich das modell den Scalieren? Das is im Moment ziehmlich groß....
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Dann ist ja gut, dachte du hättest da den oberen bzw. unteren Teil als eigenen Mesh und dann nur gruppiert, denn wenn sowas von MAX nach 3DS exportiert wird, kann man das nicht mehr sehen. Ansonsten hats ja bei mir jetzt geklappt, abgesehen von der Sache in gl3DS.pas, die daher rühren kann das entweder Texturen fehlen oder du keine angageben hast.
Skalieren geht doch ganz einfach über glScalef...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ne, dass nehm ich wieder zurück. Habs grad selbst getestet und bei mir gehts auch mit untexturierten Modellen (nutze zwar ne ältere, angepasste gl3DS.pas, aber das dürfte ja nix ausmachen).
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Und woher könnte dann der Fehler stammen? Es hat ja anscheinend was mit den Materialien zu tun.
Nochwas scheint net korrekt zu arbeiten: BackFaceCulling!
Ich konnte in die Rücksete meiner Kugel und unten in die Pyramide reingucken. Erst als ich BFCulling ausgeschaltet hatte gings.... Ich denke mal, dass 3DS Max die Vertexe in der Richtigen Reihenfolge angeordnet hat, als muss irgendwas net stimmen. Vorallem, da der Boden der Pyramide ja nur ein Quad (eher 2 Dreiecke) ist.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
So was anderes total verheerendes:
Wenn ich beim Rendern die Modelle rendere wird alles was ich zuvor gezeichnet hatte schwarz und alles was folgt (incl. den Meshs) weiß.
Ich zeichne innerhalb meiner Renderroutine mit dieser Abfrage:
Code:
if Karte[i,j].bekannt[GVAktSplr]=2then
begin
glPushMatrix;
glTranslatef(i+0.1,0,j+0.1);
glScalef(0.5,0.5,0.5);
if Karte[i,j].Siedlung=1then GVModels[0].Renderelse
if Karte[i,j].Siedlung=2then GVModels[1].Render;
glPopMatrix;
glPushMatrix;
glScalef(0.5,0.5,0.5);
glTranslatef(i+0.1,0,j+0.5);
if Karte[i,j].Kasernethen GVModels[2].Render;
glPopMatrix;
glScalef(1.0,1.0,1.0);
end;
Wenn ich das Auskommentiere, wird alles richtig gezeichnet. (Nur halt die Modelle net.)
Screenshot im Anhang.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Hast du es schonmal mit glEnable(GL_COLOR_MATERIAL) probiert? Evtl. wird im Loader nämlich die Beleuchtung aktiviert oder so, und dann werden Farbaufrufe ignoriert (es werden dann Materialeigenschaften genutzt), solange man mit obigem Flag das Colortracking aktiviert.
Ansonsten kann ich mir nur vorstellen das evtl. irgendwo ein wichtiger OpenGL-State (z.B. GL_TEXTURE_2D) im Loader deaktiviert wird, und ihn nicht von Hand wieder aktivierst. Ansonsten ist Fehlersuche hier ohne konkrete Beispielanwendung schwierig.
Testweise (solltest du aber später wieder rausnehmen, da sehr performanceraubend) kannst du ja vor dem Rendern mit glPopAttrib(GL_ALL_ATTRIBS_BIT) alle States speichern und dann wieder mit glPushAttrib zurückholen, dann siehste ja obs im 3DS-Loader passiert.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Danke für den Tip. GL3DS deaktiviert tatsächlich etwas: GL_TEXTURE_2D.
Da sollte Noeska nochma was machen...
Ich bin jetzt erstmal damit beschäftigt meine Objekte zum rest meiner Karte auszurichten... Danke soweit...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich bin der Auffassung, dass Bibiotheken nach dem Aufruf den Zustand des Programms so wiederherstellen sollen wie er war. Also quasi solche Sachen Speichern und am ende wieder laden.
Rein von der Logik her isses schon richtig so, nur jetzt steht in meinem von mir geschriebenen Code 2x glEnable(gl_texture_2d) ohne ein (sichtbares) Disable dazwischen. Da kommt bei mir so ein hauch von "unsauberer Lib." hoch...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.