Delphi-PRAXiS

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.

sniper_w 28. Mär 2005 15:08

Re: OpenGL Probleme
 
Loaden von Texturen...Ganz einfach. :zwinker:
Wichtig : Die folgende Procedure ist nicht von mir ! (von einem DGL Supporter)

Delphi-Quellcode:
procedure LoadTextureFromBitmap(bmp:TBitmap);
var
 data:PByteArray;
 i,w:integer;
 b:PByteArray;
begin
 bmp.PixelFormat:=pf32bit;
 getmem(data,bmp.width*bmp.height*4);

 w:=bmp.Width;
 for i:=0 to bmp.Height-1 do
 begin
  b:=bmp.ScanLine[i];
  move(b^,data^[i*w*4],w*4);
 end;

 gltexparameteri(GL_TEXTURE_2D,GL_Texture_min_filter,GL_LINEAR);
 gltexparameteri(GL_TEXTURE_2D,GL_Texture_mag_filter,GL_LINEAR);

 gluBuild2DMipmaps(GL_TEXTURE_2D,gl_RGBA8,bmp.width,bmp.Height,GL_BGRA,gl_unsigned_byte,data);
 //glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,bmp.width,bmp.Height,0,GL_BGRA, GL_UNSIGNED_BYTE, Data);
 FreeMem(data);
end;

// aufruf ist von mir  :mrgreen:
procedure TForm1.Button1Click(Sender: TObject);
 var MyResBitmap : TBitmap;
     TextID : Cardinal;
begin
 MyResBitmap := TBitmap.Create;
  MyResBitmap.LoadFromResourceName(HInstance, 'MyBitmap' );
  glGenTextures(1,@TextID);
  glBindTexture(GL_TEXTURE_2D,TextID);
  LoadTextureFromBitmap(MyResBitmap);
 MyResBitmap.Free;
end;

3_of_8 28. Mär 2005 16:11

Re: OpenGL Probleme
 
Danke. Damit wärens also nur noch 4 offene Fragen...

Phobeus 29. Mär 2005 11:17

Re: OpenGL Probleme
 
Naja, mit Verlaub, Du setzt Dich hier auch wie ein kleines Buddha hin und wartest, dass man Dir Lösungen präsentierst.
Gerade was das mit den 3D-Modellen angeht, ist die Frage schlichtweg zu ungenau gestellt. Was für Formate den eigentlich? Die gibt es wie Sand am mehr. Bei uns auf der Seite findest Du einen alten Loader für MS3D und einen für AC3D, im Forum gibt das Mitglied Noeska, der einen 3DS-Loader bereit stellt. Für die meisten Projekte empfiehlt es sich ein eignes simples Format zu "erstellen" und andere Modellformate dafür zu verwenden. Solltest Du Python mächtig sein und Blender nutzen, bringt das von Haus aus einige Klasse funktionen im die Geometry so zu exportieren wie man es gerne mag.
Ich denke auch, dass ich die Texturen nicht über eine Ressourcendatei einbinden würde. Gerade zur Entwicklungszeit würde ich eher davon abraten. Sollte dann bei einem Release wirklich davon abgesehen werden, würde ich auch hier eher zu einer simplen eigen Kreation neigen. Einer Datei mit voranstellender Liste und ein paar Offsets, gefolgt von den eigentlich Nutzendaten. Das hätte z.B. den Vorteil, dass Du in der Liste auch eigene Namen vergeben könntest und eine leichtere Integration in einen Textur-Manager gewährleisten könntest.
Ich denke das Phänomen mit den Linien, dass Du beschreibst ist vollkommen normal. Anti-Aliasing könnte dort helfen. Ein entsprechendes Festsetzen geht über eine WGL-Funktion, die ich nicht zur Hand habe. Versuchs einfach mal über deinen Treiber hochzudrehen. Bringt es etwas? Versuche auch einmal mit glLineWidth die Linien dicker zu machen. Bringt dieser Effekt bereits eine Linderung? Ebenfalls nicht bei mir im Kopf... es gibt Verfahren um mit Hilfe von Blending eine Kantenglättung zu erreichen (http://wiki.delphigl.com/index.php/GlBlendFunc. Sehe dazu auch das jemand bei uns im Wiki etwas verfaßt hat, dass mir ebenfalls bisher unbekannt war. Vielleicht hilft auch das weiter: http://wiki.delphigl.com/index.php/Antialiasing
Ich denke, dass sollte erstmal genug Ansatz bzw. Stoff für weitere Recherchen sein.

3_of_8 29. Mär 2005 17:07

Re: OpenGL Probleme
 
Ich denke ein Forum ist dazu da, Fragen zu stellen, und schließlich stelle ich nicht nur Fragen, sondern versuche auch anderen zu helfen.

Antialiasing habe ich bereits mit GLENABLE(GL_LINE_SMOOTH) und (GL_POLYGON_SMOOTH) aktiviert.
Das mit den Modellen lasse ich dann doch lieber, sieht ziemlich kompliziert aus und schließlich weiß ich erst seit 4 Tagen, was OpenGL ist, außerdem schmiert Blender ständig ab.

Über den Treiber hochschrauben, meinst du unter Eigenschaften von Anzeige\Einstellungen\Erweitert...?

Bei mir bringts nichts.

Für die Vorschläge danke, werds mal ausprobieren.

Khabarakh 29. Mär 2005 17:24

Re: OpenGL Probleme
 
Zitat:

Zitat von 3_of_8
... außerdem schmiert Blender ständig ab.

Oh. Die 2.36-Version läuft bei mir außer labilen Plugins ziemlich stabil, der ATI-Bug ist AFAIK auch behoben.

Phobeus 29. Mär 2005 19:01

Re: OpenGL Probleme
 
Zitat:

Zitat von 3_of_8
Ich denke ein Forum ist dazu da, Fragen zu stellen, und schließlich stelle ich nicht nur Fragen, sondern versuche auch anderen zu helfen.

Genau. Aber mit einigen Punkten am Satzende klingen deine Fragen recht vorwurfsvoll.

Zitat:

Antialiasing habe ich bereits mit GLENABLE(GL_LINE_SMOOTH) und (GL_POLYGON_SMOOTH) aktiviert.
Nein, IMAO bewirkt das nur etwas wenn man breite Linien zeichnet und auch nur OpenGL intern. Für FSAA (was ich hätte korrekterweise so hätte nennen sollen) mußte man IMAO eine WGL-Funktion verwenden. Ist lange her und ich würde nicht solange danach suchen, da ich denke, dass das Ergebnis nur minimal besser sein wird.

Zitat:

Das mit den Modellen lasse ich dann doch lieber, sieht ziemlich kompliziert aus und schließlich weiß ich erst seit 4 Tagen, was OpenGL ist, außerdem schmiert Blender ständig ab.
Ja, dann würde ich erstmal die Finger davon lassen. Modelle sind meistens doch etwas komplexere Sache, wo häufiger etwas schief gehen kann und das gerade am Anfang sehr schnell frustrierend werden kann. Nimm einfach erstmal ein Prototype (Quadrat) und nutze das erstmal, eine spätere Intergration ist dann leicht möglich. Das Blender abschmiert, würde mir ehrlich gesagt sehr zu denken geben und ich würde dringend einmal das System,Speicher überprüfen oder mal schauen, dass eine neue Version aufs System kommt. Habe selten eine so stabile Anwendung gesehen ;-) Und gerade durch das Python-Skripting kann man einige tolle Dinge machen ... und sei es nur, dass man sich seine Szene als "OpenGL-Funktionen" ausgeben läßt oder als Array für einen VertexBufferObject. Damit kann man sich ne Menge kummern mit den Loadern sparen.

Zitat:

Über den Treiber hochschrauben, meinst du unter Eigenschaften von Anzeige\Einstellungen\Erweitert...?
Bei mir bringts nichts.
Keine Ahnung ;) Verwende kein Windows, allerdings denke ich, dass man es dort finden sollte. Aber wie gesagt der erreichte Effekt wird bei Linien wohl auch eher minimal sein. Ich denke die Linien einen Tick breiter zu machen wird in den meisten Fällen gute Ergebnisse bringen. Zumindest konnte ich mich bisher nicht sonderlich darüber beklagen ;)

3_of_8 29. Mär 2005 19:26

Re: OpenGL Probleme
 
Ich denke nicht, dass man aus einigen Punkten am Satzende einen Vorwurf schließen kann, und so war es auch nicht gemeint.

Linien breiter machen hilft gar nichts. Hab ich schon versucht.

Ich habe keine Ahnung, wie ich WGL oder GLU Funktionen/Prozeduren benutze, bzw. welche Units/DLLs ich dazu einbinden muss. In der Wikipedia hab ich dazu auch nichts gefunden.

Phobeus 29. Mär 2005 19:49

Re: OpenGL Probleme
 
Nicht, Wikipedia ;)
Die WGL-Funktionen sollten in deinen Headern erhältlich sein. Allerdings habe ich gerade einmal Google angeschmissen. Nicht wirklich gelesen, aber überflogen. Es scheint auch inzwischen eine ARB_Lösung zu geben (Ja... man fühlt sich immer schon so alt.)
http://www.joachimrohde.com/Nehe/ogltut46d.html
Das das dicker machen der Linien nichts bringt, fällt mir schwer zu glauben, dass sie den Effekt eigentlich sogar erheblich abschwächen sollten. Poste nochmal bitte ein Screen. Ansonsten musst Du wirklich versuchen mit Hilfe eines Blending verfahrens die Kanten gezielt abzuschwächen.

3_of_8 30. Mär 2005 17:06

Re: OpenGL Probleme
 
Wie gesagt: Ich habe null Ahnung von OpenGL. Ich weiß, wie man Blending bastelt und hab mir auch deine Tutorials durchgesehen (Respekt!), aber wie man aus Blending einen AntiAliasing Effekt bastelt, kann ich mir nicht denken.

Und was ist ein Header? In der Wikipedia hab ich nachgeschaut, ob da drinsteht, wie man WGL kriegt. Wenn ich die Linien dicker mache, lässt der Effekt zwar nach, aber dann wirken sie hinten immer noch viel dünner als vorne und man sieht das Aliasing noch mehr als zuvor.

Der Link ist zwar genau das richtige aber: Wenn du mich fragst in C oder C++, und ich kann nur Object Pascal. Hilft mir also auch nicht wirklich weiter. Ich hab jetzt aber das ganze ziemlich gut hinbekommen, in dem ich eine 32*32 Textur für die Gitterlinien hergenommen hab und das ganze kachele. Ungefähr so:

Delphi-Quellcode:
glbegin(GL_QUADS);
gltexcoord(0,0);
glvertex3f(-5,-5);
gltexcoord(10,0);
glvertex3f(5,-5);
gltexcoord(10,10);
glvertex3f(5,5);
gltexcoord(0,10);
glvertex3f(-5,5);
glend;
Sieht wirklich gut aus, auch wenn der Roboter nur ein Quader ist und deshalb ziemlich besch...eiden aussieht.

Phobeus 30. Mär 2005 18:42

Re: OpenGL Probleme
 
Erstmal danke für das Lob ;) Schau in ein paar Monaten nochmal vorbei, zahlreiche der alten Tutorials (und das ist eines) werden grundlegend überarbeitet.
@blendaliasing: Ich weiß es auch nicht genau, da ich es nie gemacht habe. Ich vermute auch, dass das Ergebis nicht mehr ganz zeitgemäß sein wird. Im Wiki sind die Blendfactoren vermerkt, die dafür eigentlich gedacht sind. Die Idee besteht halt darinne die Seiten so farblich abzuschwächen, dass die Treppenbildung abnimmt. Da Du ja aber nicht über Treppen klagst, sondern über die Dicke... und das ist ja auch verständlich, dass sie hinten hin abnimmt. Aber ich denke auch, dass eine Textur dort wohl ein besseres Ergebnis bringen wird, zumal man so leicht noch das ganze ein wenig grafisch aufpeppen könnte.
@header: OpenGL wird aus DLLs bezogen. Diese kommen im "IdealfalL" von NVIDIA oder ATI (und besser nicht von MS *g). Die Header sind quasi die Schnittstelle zu der DLL und werden in Form einer Unit geliefert, die die Funktionen mit denen der DLL verbinden. Borland lieferte von Haus aus eine "opengl.pas". Diese sollte man allerdings meiden wie die Pest, da diese nicht nur fehlerhaft ist, sondern Funktionen teilweise sogar anders heißen. Es gibt dann einige Versionen von Mike Lischke sowie den Jedis, die meist auf dem Namen "opengl12.pas" hört. Diese sind eigentlich einwandfrei und man gut damit arbeiten. Wenn Du dann allerdings Features von OpenGL 1.5 benötigst (das aktuellste) empfehle ich Dir die Header zu verwenden, die ein eingefleischtes Team unseres Forums erzeugt hat. Diese hören auf den Namen "dglopengl.pas" und sind im Gespräch als künftige JEDI-Header. Darauf zu setzen wird also sicherlich kein Nachteil sein. In diesen Headern sollten die WGL-Funktionen enthalten sein. (Also OpenGL-Funktionen, die es NUR unter Windows gibt und z.B. das Pixelformat setzen etc. Unter Linux bzw. X-Servern heißen diese GLX_)
@c/c++: Ach komm ;) OpenGL unterscheidet sich doch in den meisten Sprachen nicht sonderlich :-) Allerdings solltest Du sobald wie möglich einen kleinen "Crashkurs" in C/C++ belegen, damit Du zumindest die wichtigsten Datentypen und Syntax beherrscht. NVIDIA und Ati veröffentlichen Ihre Beispiele meist nur in diesen Sprachen und es wäre schade, wenn man damit nichts anfangen könnte ;)

3_of_8 30. Mär 2005 21:17

Re: OpenGL Probleme
 
@C: Ich bin 14! Ich kann mir weder einen C/C++/Visual C++/wasauchimmer Compiler leisten, noch einen Kurs. Ich bin froh, dass ich einigermaßen Delphi beherrsche (Mein Prog ist seit ich eine Variablenfunktion eingefügt habe so buggy, dass ich es nur noch ausführen kann, indem ich jeden Fehler unterdrücke).

Dass die Linien nach hinten dünner werden ist ja klar, aber dass sie teilweise nicht mehr sichtbar oder nur noch gestrichelt sind ist überhaupt nicht klar.

Speedmaster 30. Mär 2005 22:26

Re: OpenGL Probleme
 
Lad doch mal den neuen Quelltext hoch!

3_of_8 31. Mär 2005 13:50

Re: OpenGL Probleme
 
Ja, werd ich machen, aber ich warne euch: Das mit den Variablen haut überhaupt nicht hin, ich bekomm ständig AccessViolations.

Speedmaster 31. Mär 2005 13:51

Re: OpenGL Probleme
 
Gebe dir ein Tipp: Schreib mal alles neu, du wirst merken das alles besser geht, ist leider eine Programmierkrankheit!

Ach:

Arbeite mit Klassen und vielen records, kenne dein Quelltext zwar nicht aber ist besonderst bei 3D sehr wichtig!

3_of_8 31. Mär 2005 14:02

Re: OpenGL Probleme
 
Ich habe nur einen Record definier, und das ist:

Delphi-Quellcode:
type TRoboVar = record
    Name: String;
    Wert: Integer;
  end;
Mit Quelltext ist es wie mit Kunst: Hauptsache der Erschaffer verstehts. :wink:

Speedmaster 31. Mär 2005 14:10

Re: OpenGL Probleme
 
Zitat:

Zitat von 3_of_8
Ich habe nur einen Record definier, und das ist:

Delphi-Quellcode:
type TRoboVar = record
    Name: String;
    Wert: Integer;
  end;
Mit Quelltext ist es wie mit Kunst: Hauptsache der Erschaffer verstehts. :wink:

Ich würde z.b. den Bewegungsstatus auch einen Typ geben, und alles was mit Steuerung zu tun hat in eine Klasse packen, ist aber denke ich jedem seine Eigene sache, nur das der mit Klassen vermutlich den besseren Quelltext hat(Übersichtlicher)!

P.s.: Versuchs doch auch mal im IRC unter #delphi.de

3_of_8 31. Mär 2005 14:11

Re: OpenGL Probleme
 
Ich habe ein paar globale Variablen:

xpos: X-Position des Roboters.
ypos: Y-Position des Roboters.
dir: Richtung, entweder 'o','u','r' oder 'l'.
x,y,z: Definiert die aktuelle Kameraposition.

Speedmaster 31. Mär 2005 14:40

Re: OpenGL Probleme
 
Zitat:

Zitat von 3_of_8
Ich habe ein paar globale Variablen:

xpos: X-Position des Roboters.
ypos: Y-Position des Roboters.
dir: Richtung, entweder 'o','u','r' oder 'l'.
x,y,z: Definiert die aktuelle Kameraposition.

Ich hätte das Spontan so gemacht:

Delphi-Quellcode:

TRobdirection = (RD_Right, RD_Left, RD_down, RD_Up, RD_forward, RD_Backward);
TState = record
  Direction: TRobdirection;    // Für Die Richtung
  x,y,z: Integer;              // Gehe von einem großem Raum aus, sonst byte
end;
Von dem Grundsatz kannst du Recht einfach dein Objekt im 3D Raum bewegen!

Um ehrlich zu sein ich habe ein Persönliches Interesse an deinen Fähigkeiten, du scheinst recht schnell zu lernen!

3_of_8 31. Mär 2005 20:16

Re: OpenGL Probleme
 
Tja, schnell lernen kann ich. Mein Problem sind momentan die ganzen Access Violations, Texturen, OpenGL und das ganze funktioniert endlich. Ich hab mir ein paar Gedanken über Winkelfunktionen gemacht (Das habe ich erst in der 10.), und jetzt kann man durch den Raum "schweben". Es gibt die globalen Variablen pitch und yaw, die die X-und Y-Neigung angeben und anhand von ihnen kann man mit der Maus die Richtung zu bestimmen und mit den Cursortasten sich zu bewegen. Außerdem kann man den Roboter aus der Egoperspektive wie in einem Autorennen steuern. Sieht ganz gut aus.

Jetzt müssen noch die Variablen funktionieren und ich muss Prozeduren einbauen (mit einem dynamischen array of TStrings). Dann bin ich zufrieden. :mrgreen:

Speedmaster 31. Mär 2005 20:37

Re: OpenGL Probleme
 
Ach noch was zu den Variablen, leg die doch besser so an(Viel mir heute ein):

Delphi-Quellcode:
TVariable = record
 NameofVar: ShortString;
 ValueofVar: Integer;
end;
Das ganze als Array lässt sich besser verarbeiten als 2 Arrays!

3_of_8 31. Mär 2005 20:40

Re: OpenGL Probleme
 
Genauso hab ichs ja, nur die Bezeichnungen sind anders.

Ich habe dann noch folgendes:

Delphi-Quellcode:
var vararray: array of TRoboVar;
Dürfte so ziemlich das gleiche sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 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