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

Aktuelle Zeit: Do Jul 17, 2025 15:11

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Laden von 3ds Models
BeitragVerfasst: Do Nov 25, 2004 16:32 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
Hallo,

Ich bins schon wieder. Ich versuche jetzt mit folgendem Quellcode die 3DS Models zu laden, es kommt zwar beim compilieren kein Fehler, aber es wird auch keine Form angezigt!

Code:
  1.  
  2.   private
  3.     { Private-Deklarationen }
  4.      procedure InitModels;
  5.      procedure RenderModels;
  6.  



Code:
  1.  
  2.  Model: array[1..8,1..8] of TAll3dsMesh;
  3.  


Code:
  1.  
  2. { Init Models}
  3. procedure TForm1.InitModels; //Wird in der Form.Create aufgerufen
  4. var i,x : integer;
  5. begin
  6.  for i := 1 to 8 do
  7.   begin
  8.    for x := 1 to 8 do
  9.     begin
  10.      Model[i,x] := TAll3dsMesh.Create(nil);
  11.      //Figuren setzen
  12.      if i = 1 then
  13.       begin
  14.        case x of
  15.        1: Model[i,x].LoadFromFile('mickey.3ds');
  16.        2: Model[i,x].LoadFromFile('mickey.3ds');
  17.        3: Model[i,x].LoadFromFile('mickey.3ds');
  18.        4: Model[i,x].LoadFromFile('mickey.3ds');
  19.        5: Model[i,x].LoadFromFile('mickey.3ds');
  20.        6: Model[i,x].LoadFromFile('mickey.3ds');
  21.        7: Model[i,x].LoadFromFile('mickey.3ds');
  22.        8: Model[i,x].LoadFromFile('mickey.3ds');
  23.        end;
  24.       end;
  25.      if i = 8 then
  26.       begin
  27.        case x of
  28.        1: Model[i,x].LoadFromFile('mickey.3ds');
  29.        2: Model[i,x].LoadFromFile('mickey.3ds');
  30.        3: Model[i,x].LoadFromFile('mickey.3ds');
  31.        4: Model[i,x].LoadFromFile('mickey.3ds');
  32.        5: Model[i,x].LoadFromFile('mickey.3ds');
  33.        6: Model[i,x].LoadFromFile('mickey.3ds');
  34.        7: Model[i,x].LoadFromFile('mickey.3ds');
  35.        8: Model[i,x].LoadFromFile('mickey.3ds');
  36.        end;
  37.       end;
  38.       //Bauern setzen
  39.      if i = 2 then
  40.       Model[i,x].LoadFromFile('mickey.3ds');
  41.      if i = 7 then
  42.       Model[i,x].LoadFromFile('mickey.3ds');
  43.     end;
  44.   end;
  45. end;
  46.  
  47. { Render Models }
  48. procedure TForm1.RenderModels; //Wird in der Render Procedure aufgerufen
  49. var i,x : integer;
  50. begin
  51.  for i := 1 to 8 do
  52.   begin
  53.    for x := 1 to 8 do
  54.     begin
  55.       Model[i,x].Render;
  56.     end;
  57.   end;
  58. end;
  59.  


Das ganze soll ein Schachspiel werden, da ich aber noch keine Models habe (die werden von einem Freund gemacht) hab ich mir eben dieses Mickey Models testweise heruntergeladen.

Was ist an dem Code falsch? Ohne diesen Code funktioniert das Programm wunderbar (eben ohne Models)

MFG
Maximus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 17:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
1. Zeig doch mal die Render Procedure.
2. kann es sein das cull_facing an ist und die objekte genau aufem 0,0,0 punkt sind und du somit nichts siehst.
Oder ganz anderen gründer, die Renderprocedure wäre gut.
Ausserdem nen Tip
Ich würde vorher in nen Array immer zur Zahl den Modelname schreiben.
(Konstante)
Dann kannstes einfach laden.
Ohne soviel Case-Käse.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 18:06 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
Die Render procedure

Code:
  1.  
  2. { Render }
  3. procedure TForm1.Render;
  4. begin
  5.  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  6.  glLoadIdentity;
  7.  gltranslate(0, 0,-25);
  8.  glrotate(rotX, 1,0,0);
  9.  glrotate(rotY, 0,1,0);
  10.  CreateFeld;
  11.  RenderModels;
  12.  SwapBuffers(form1.myDC);
  13. end;
  14.  


Natürlich steh ich nicht direkt auf dem Ursprung (daran hab ich schon selbst gedacht)

MFG
Realtec's Maximus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 19:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
1. Was ist das FeldCreate.
2. Haste mal geprüft ob sie gerendert werden?

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 20:38 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
Hallo,

1.) Feld Create Erstellt das Schachbrett. Funktioniert einwandfrei.
2.) Ohne den Versuch die Models zu laden funktioniert alles perfekt und wird einwanfrei angezeigt!

Wie meinst du ob ich geprüft hab ob sie gerendert werden?

MFG
RealTec's Maximus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 20:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
wird danach garnichts mehr angezeigt oder was?

Na, haste mal ne Breakpoint gesetzt und geguckt was in dem jeweiligem Model drinne steht?

Reicht es nicht nur einmal das Schachbrett zu erstellen?
Oder macht der die Positionen der figuren?

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 26, 2004 13:52 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
1.) Ja nicht mal die Form wird mehr geladen
2.) Muss ich noch machen
3.) Hmm, d.h. ich sollte die Procedure CreateFeld (für das Schachbrett) in FormCreate aufrufen ... das sollte funktionieren!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 12:53 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
Hallo,

Bis jetzt hat es leider immernoch nicht funktioniert (bin jetzt im kompletten Projekt auf dglOpenGL-Header umgestiegen).

Doch leider bringt er immer eine Fehlermeldung (EAccessViolation).

Gibt es eigentlich ein auskommentiertes Beispiel Projekt, in dem gl3ds benutz wurde?! - Sowas würde mich mit sicherheit weiterbringen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 13:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Have you already taken a look at: http://www.noeska.com/dogl/gl3ds.aspx
There is also an example available. Also read the help file.

PS do you do
InitOpenGL; //init dglopengl
and
ReadExtensions; //read in and setup extensions to opengl like multitexture...

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 18:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Und:

Der Fehler kann auch daher stammen, dass du keine Textur auf irgend nem Mesh hast.
(So bin ich der Meinung)

Guck doch erstmal ob der Fehler beim rendern
oder
beim laden von der 3ds datei kommt.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 18:33 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
Ich werd einfach nicht schaul aus dem Beispiel

Ich mal mal den kompletten Quellcode angehängt, viellecht findet ihr den Fehler!

//Passt leider nicht als Attachment rein (298 Kb groß)

Habs hochgeladen: http://schneider.redirectme.net/downloads/MeinOGLProgramm.zip


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Da zu mir viele nett sind bin ich auch nett ;)
Aber habs mir mal runtergeladen.
Die dfm Datei bräuchte ich noch. :D

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 18:52 
Offline
DGL Member

Registriert: Mi Nov 24, 2004 13:05
Beiträge: 35
Sind jetzt drin! (Hmm wusst ich noch gar nicht das man die auch braucht :\ )

Die Mickey.3ds hab ich im Netz gefunden, und benutz ich auch nur um das Programm zu testen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 19:05 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Man braucht nicht unbedingt Texturen, allerdings muss in deinem 3DS-File mindestens ein Material vorhanden sein.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Dez 04, 2004 19:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Also, habs gefunden.
Hatte aber nichts mit dem Loader zu tun.

Code:
  1. procedure TSchach.RenderModels;
  2. var i,x : integer;
  3. begin
  4.  for i := 1 to 8 do
  5.   begin
  6.    for x := 1 to 8 do
  7.     begin
  8.       if assigned(Model[i,x]) then
  9.       Model[i,x].Render;
  10.     end;
  11.   end;
  12. end;


Das muss so heissen.
Du rufst da sonst Models auf Model[6,8] wo nichts drinne steht.
Also die nicht createt sind.
Entweder du änderst dein laden und rendern oder sonstwas.
immer dieses assigned bei jeder figur in jedem Frame muss ja net sein. ;)

EDIT: in glMath steht noch opengl12 oder so

EDIT2: Und nimm mal nen anderes Model.
Das geht ja garnet, so viele polygone.
und dann lädst du das auch noch 4*8 mal.

_________________
www.audi32.de


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


Wer ist online?

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.

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