Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:52

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Di Mär 30, 2004 14:04 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also ich hab da mal kleines Testprojekt und einen kleinen Testmesh gebastelt. Selbiger is so ca. 800 Polys groß und is untexturiert.

Ich bekomme momentan noch Fehler in der gl3DS.pas in den Zeilen 2232, 2234 und 2450. Alle sind von
Code:
  1.  LoadTexture(lowercase(TAll3DSMesh(owner).FTexturePath + FFileName), hastexture

Fehler : "Nicht genug wirkliche Parameter"

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 14:12 
Offline
DGL Member
Benutzeravatar

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:
  1. 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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 15:07 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Danke...Habs geendert, jetzt kann ichs Compilieren. Beim Starten bekomm ich aber Gesagt, dass ein Fehler beim öffnen meines Meshs augetreten ist.

Siehe Anhang.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 15:25 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 15:48 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 15:49 
Offline
DGL Member
Benutzeravatar

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...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 15:51 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja ich hab keine Texturen auf meinem Mesh... ich wusste ja net, dass das sein muss... Da sollte Noeska nochmal ne Sicherheitsabfrage reinbauen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 15:53 
Offline
DGL Member
Benutzeravatar

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).

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 16:06 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 19:19 
Offline
Guitar Hero
Benutzeravatar

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:
  1. if Karte[i,j].bekannt[GVAktSplr]=2 then
  2.                    begin
  3.                         glPushMatrix;
  4.                            glTranslatef(i+0.1,0,j+0.1);
  5.                            glScalef(0.5,0.5,0.5);
  6.                            if Karte[i,j].Siedlung = 1 then GVModels[0].Render else
  7.                            if Karte[i,j].Siedlung = 2 then GVModels[1].Render;
  8.                         glPopMatrix;
  9.                         glPushMatrix;
  10.                            glScalef(0.5,0.5,0.5);
  11.                            glTranslatef(i+0.1,0,j+0.5);
  12.                            if Karte[i,j].Kaserne then GVModels[2].Render;
  13.                         glPopMatrix;
  14.                         glScalef(1.0,1.0,1.0);
  15.                    end;

Wenn ich das Auskommentiere, wird alles richtig gezeichnet. (Nur halt die Modelle net.)

Screenshot im Anhang.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 23:57 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Eventuell is dass hier net richtig klar geworden, aber wass muss ich tun um obigen Effekt zu vermeiden?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 31, 2004 00:04 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 31, 2004 00:45 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 31, 2004 10:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das macht Noeska schon richtig. Der deaktiviert GL_TEXTURE_2D, wenn ein Mesh keine Textur besitzt, also von daher ist das doch korrekt.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 31, 2004 12:34 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 16 Queries | GZIP : On ]