Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGL Probleme (https://www.delphipraxis.net/43008-opengl-probleme.html)

3_of_8 27. Mär 2005 13:43


OpenGL Probleme
 
Wie ich bereits im Thread "Mini Programmiersprache" geschrieben habe, versuche ich jetzt, die Welt des Roboters (Programm+Souce im Thread "Mini Programmiersprache" zum runterladen) dreidimensional zu machen.

Ein Wunder! Es funktioniert sogar. Aber ich hab noch ein paar Probleme.

Das erste ist, dass Quadrate plötzlich total verformt werden. In der einen Perspektive ist es ein Quadrat, in der anderen plötlich eine total verzogene Raute. Ist irgendwie total unrealistisch. Kann ich das nicht irgendwie ändern?

Das zweite ist: Wie kann ich Modelle laden? (Am besten aus Ressourcendateien.)

Das dritte ist: Wie kann ich Texturen aus Ressourcendateien laden? (Ich will nicht, dass jeder einfach meine Texturen verändern kann.).

Speedmaster 27. Mär 2005 13:45

Re: OpenGL Probleme
 
Hmm ich sags ungerne, aber ich glaube auf www.Opengl.com im Forum findest du mehr Informationen, zusätzlich schickst am besten immer noch nen paar Screens mit, hochladen kannst die auf www.imageshack.us machen kannst sie z.b. mit Hardcopy!

3_of_8 27. Mär 2005 13:50

Re: OpenGL Probleme
 
Liste der Anhänge anzeigen (Anzahl: 1)
Screenshots mach ich immer mit der Druck Taste. Geht doch viel einfacher!

sniper_w 27. Mär 2005 14:21

Re: OpenGL Probleme
 
Un was soll da falsch sein ?! :gruebel:
Es ist ganz natürlich dass das Bild manchmal so verzerrt vorkommt, je nach der Position der Kamera, entfernung der Objekten, Blickwinkel usw.
Kannst du uns etwas von der GLInit posten?
Sonst www.delphigl.com ist nicht zu verpassen.

3_of_8 27. Mär 2005 15:38

Re: OpenGL Probleme
 
Ich kenne delphigl.com schon. Dass manchmal das Bild je nach Perspektive verzerrt ist ist mir auch klar, Zentralperspektive halt, aber diese Verzerrung ist alles andere als proportional (siehe Anhang vorheriger Beitrag.)

Achja, ich bräuchte noch ein paar Befehle für Filter/Antialiasing Einstellungen und Befehle zur Optimierung von Qualität/Geschwindigkeit.

Ich initialisiere OpenGL folgendermaßen:

Das ganze ist in der FormCreate-Prozedur.
p3d ist eine Komponente vom Typ TPanel.

Delphi-Quellcode:
canv := TCanvas.Create;
  canv.Handle := p3D.Handle;
  synh := TSynRoboterTronoSyn.Create(commands);
  status := 'nix';
  commands.Highlighter := synh;
  commands.Modified := False;
  form1.Left := screen.Width div 2 - form1.Width div 2;
  form1.Top := screen.Height div 2 - form1.Height div 2;
  readcmdsintoarray;
  firsterrorline := -1;
  xpos := 0;
  ypos := 0;
  dir := 'u';
  statusbar1.Panels[0].Text := 'Zeile: 1, Spalte: 1';
  statusbar1.Panels[1].Text := 'Kein Fehler gefunden.';
  statusbar1.Panels[2].Text := '[Unbenannt]';
  //drawrobot(0, 0, 'u');
  form1.myDC := GetDC(canv.Handle);
  SetupPixelFormat;
  myRC := wglCreateContext(mydc);
  wglMakeCurrent(myDC, myRC);
  glEnable(GL_DEPTH_TEST);
  glenable(GL_Line_Smooth);
  glenable(GL_texture_2d);
 
  gridtex := auxDIBImageLoadA('./textures/grid.bmp');
  glGenTextures(1, grid);
  glBindTexture(GL_TEXTURE_2D, grid);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexImage2D(GL_TEXTURE_2D, 0, 3, gridtex^.sizeX, gridtex^.sizeY, 0,  GL_RGB, GL_UNSIGNED_BYTE, gridtex^.data);
  //Das ganze noch 3 mal mit anderen Texturen.

  glViewport(0, 0, p3d.Width, p3d.Height);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(100, 1, 0.01, 100);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();

3_of_8 27. Mär 2005 18:44

Re: OpenGL Probleme
 
Habe jetzt GL_POLYGON_SMOOTH aktiviert, jetzt geht die Kantenglättung schon besser, aber die Linien im Hintergrund wirken immer noch etwas abgestuft und teilweise dünner als welche, die noch weiter hinten sind (?). Und wie kann man zwischen bilinearen/trilinearen und den anderen Filtern umschalten?

sniper_w 27. Mär 2005 21:39

Re: OpenGL Probleme
 
Man sollte gluPerspective so ungefähr aufrufen :
Delphi-Quellcode:
  glViewport(0, 0, ClientWidth, ClientHeight);  
  glMatrixMode(GL_PROJECTION);      
   glLoadIdentity();                  
    gluPerspective(45.0, ClientWidth / ClientHeight, 1.0, 1000.0);
  // muss nicht 45.0 deg sein, aber 100.0 ist auch IMHO zu viel (zu breit)
  // das Wichtigste ist [b]ClientWidth / ClientHeight[/b]
Edit

Bei dir ist ClientWidth / ClientHeight = 1, da nehme ich ein, dass ClientWidth = ClientHeight immer gilt ?

Speedmaster 27. Mär 2005 22:10

Re: OpenGL Probleme
 
Mal so ein Frage: Warum machst nicht den Hintergrund Schwarz, und ziehst dann alle Gitterlinien auf jeder Ebene in der Farbe Orange oder so, das sieht IMHO besser aus!

3_of_8 28. Mär 2005 11:07

Re: OpenGL Probleme
 
@Speedmaster: Ich kanns mal probieren, aber ich denke nicht, dass es besser aussieht.

@sniper_w: Richtig, die Kompo p3d ist nichts anderes als ein Panel mit Width 521 und Height 521, und damit der arme Computer nicht soviel rechnen muss hab ich einfach 1 geschrieben.

100 hab ich genommen, damit das ganze auch auf das Panel passt. Der Einfachheit halber ist nämlich jedes Quadrat genau 1x1 groß. Ich probiers mal mit anderen Werten.

Meine andere Frage nach Filtereinstellungen und Fullscreenantialiasing wurde immer noch nicht beantwortet.

Achja übrigens bitte ich euch, den Source Code meines Programms nicht herumzugeben, das Projekt ist zwar Freeware, aber nicht Open Source.

3_of_8 28. Mär 2005 13:18

Re: OpenGL Probleme
 
Hab jetzt die Perspektive auf 45 gestellt (hätt ich mir auch denken können).

Aber auf dem Bild sind weiterhin lauter Artefakte, Linien werden teilweise nur gestrichelt dargestellt. Schwarz mit Orange ist nicht so ganz das wahre.

Noch eine Frage: Wie binde ich ein fertiges 3D Modell ein?
Und die Frage über die Einbindung von Texturen aus Ressourcendateien ist auch noch nicht beantwortet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz