AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL Probleme

Ein Thema von 3_of_8 · begonnen am 27. Mär 2005 · letzter Beitrag vom 31. Mär 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

OpenGL Probleme

  Alt 27. Mär 2005, 14:43
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.).
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#2

Re: OpenGL Probleme

  Alt 27. Mär 2005, 14:45
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!
Felix K.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: OpenGL Probleme

  Alt 27. Mär 2005, 14:50
Screenshots mach ich immer mit der Druck Taste. Geht doch viel einfacher!
Miniaturansicht angehängter Grafiken
ss_175.jpg  
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: OpenGL Probleme

  Alt 27. Mär 2005, 15:21
Un was soll da falsch sein ?!
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.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: OpenGL Probleme

  Alt 27. Mär 2005, 16:38
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();
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: OpenGL Probleme

  Alt 27. Mär 2005, 19:44
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?
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: OpenGL Probleme

  Alt 27. Mär 2005, 22:39
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 ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#8

Re: OpenGL Probleme

  Alt 27. Mär 2005, 23:10
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!
Felix K.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: OpenGL Probleme

  Alt 28. Mär 2005, 12:07
@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.
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: OpenGL Probleme

  Alt 28. Mär 2005, 14:18
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.
Manuel Eberl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
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