ich kriege es partout nicht hin ein Fenster zu generieren, auf dem ich dann mit den normalen OpenGl Befehlen Objekte erstellen und drehen etc kann.
Was muss ich machen um unter Delphi 3 nach dem Einbinden der OpenGl.pas auf der Form Objekte zu erstellen und anzeigen zu lassen? Noch genauer: mir ist nich klar, wie ich ein Fenster erzeuge in dem ich dann mit den OpenGl Methoden arbeiten kann...
Bitte helft mir mal.. kommt aber nicht mit links.. die habe ich alle abgegrast.. sondern versucht mir mit euren worten zu erklären, wie das prinzipiell funktioniert. ein kleines! Beispiel wäre schön.
schön und gut.. Phobeus hat das super geschrieben. Nur leider funktiert gleich sein erstes Template nicht. Ich arbeite mit Delphi 3 aus bestimmten Gründen kann ich auch nicht mit einer neueren Version arbeiten..
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Also, wenn ich nicht gerade eines Nachts im Suff eine neue Version hochgeladen habe, dann sollte es eigentlich funktionieren. Ich tippe stark darauf, dass deine Windows.pas Unit von Delphi3 nicht wirklich mehr up to date ist. Habe bisher den ganzen Kram nicht auf älteren System getestet und kann nur sagen, dass zumindest ab D5 alles einwandfrei funktioniert.
Ich darf es zwar nicht wirklich offiziell sagen, aber ... vielleicht kennst Du ja jemanden, der eine D6 Personal Edition rumfliegen hat und Dir diese zukommen lassen kann, selbst wenn Borland diese Version offiziell vom Markt genommen hat. Für Lernzwecke reicht sie noch prima aus, zuminest wenn man sie sich vor ein paar Jahren von der Seite oder einer Heft-CD gezogen hat. Ansonsten könntest Du das Problem mit der Windows.pas evtl. auch umgehen in dem Du die VCL-Variante verwendest, da dort das Schlüsselwort DevMode nicht auftaucht. Vielleicht kann Dir aber auch jemand hier sagen, wie die Var in D3 hieß.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
und weil man sowohl die OpenGL12.pas, als auch die Geometry.pas (wegen überladenen Funktionen) ein wenig umbauen muss - und D3 ausserdem noch keine Text-DFMs lesen kann (Konvertierung ist aber einfach: erst in höherer Delphiversion laden und als binäres DFM speichern), gibt's hier das erste VCL Template als Delphi 3 Version.
Danke für Deine schnelle Antwort. Ich hatte mir damals selbst Delphi 6 von der Borland-Seite runtergeladen und habs auch noch zuhause. Da werde ich das ganze auch mal ausprobieren. Das Problem ist halt, dass ich hier in der Firma nur mit Delphi 3 arbeiten kann, weil hier einige Komponenten nicht aufwärtskompatibel sind. Mit der VCL-Variante gibt es andere Probleme: OpenGl12 funzt nur unter Delphi 4 oder höher. Stecke hier in ner ziemlichen Zwickmühle. :blink:
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Ja, sowas in der Art habe ich bereits befürchtet. Wie gesagt habe es nie mit den alten Versionen überprüft und im allgemeinen wird es eher sinnvoller sein eine neuere Version zu verwenden. So teuer sind diese meist auch nicht und IMAO gab es bei der D3 kein Code-Insight etc. D6 Personal sollte zumindest keine Probleme bereiten.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Das Template habe ich grad runtergeladen, das Formular von Text.DFM nach binäres DFM konvertiert und die Typen geändert, die D3 nicht kannte, das $EXTERNALSYM rausgelöscht, mit dem D3 noch nix anfangen kann und den überladenen Funkionen aus der Geometry.pas eindeutige Namen gegeben. Der sonstige Code ist völlig unverändert - und wenn du die geänderten Units verwendest, sollten auch die anderen Beispiele kein Problem mehr darstellen (bei VCL Projekten ist halt ein wenig umständlich, dass du die erst in einer höheren Delphiversion laden musst - und dann als binäres DFM abspeichern).
D3 unterstützt übrigens Code Insight - weswegen man bei fraglichen Parametern eigentlich nur die Maus neben der Routine positionieren muss, um den entsprechenden Typ herauszubekommen.
Kannst du mir mal erklären, was es bringt, die aktuelle Matrix mit glPushMatrix auf dem Stack abzulegen, dann manipulationen vorzunehmen und schlussendlich die alte Matrix wieder zu verwenden? versteh ich nicht.. hilf mir mal bitte. Dann wären doch die änderungen weg, oder nicht?
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Ruhig beim Themenwechsel ne neuen Thread aufmachen!
Ja, dass ist richtig. Aber das kann durchaus erwünscht sein! Wie richtigen eine Matrix ein, so dass wir unsere Kamera-Bewegung haben und zeichnen dann ein Objekt. Darum herum soll nun noch ein anderes bewegt werden.
Kamera; Körper Objekt1;
Nun stellen wir allerdings fest, dass wir nicht nur ein Objekt haben, sondern mehre. Würden wir nun unsere aktuelle Matrix weiter verwenden, so würde sich alles nach dem Objekt1 richten. Fatal! Also resetten wir die WordMatrix auf dem Punkt bevor wie Körper1 gezeichnet haben und können nun wieder sinnvoll neu einsetzen. Natürlich könnte man statt dessen auch glLoadIdentity nehmen und die Kameratransformation erneut durchführen, allerdings ist sowas langsamer als das pushen und poppen. Dies ist sicherlich der einfachste Fall. Nehmen wir doch einmal einen Menschenlichen Körper vor.
Kamera; Kopf; Körper; glPushMatrix;
Nun rendern wir den: Schulterl; Arml; Handl; glPopMatrix; SchulterR; ArmR;
dreht sich der Arm, so soll sich ja auch die Hand "relativ" dazu mit bewegen. Eine Veränderung des Arms reicht also aus ohne z.b. die Hand mitzuberechnen. Wollen wir jedoch den zweiten Arm mitzeichen, müssen die Matrix auf den ursprünglichen Punkt zurücksetzen und können dann anfangen die Rechte Hälfte sie machen.
Habe auch schonmal angefangen dazu noch was zu schreiben, war aber nie zufrieden damit Hoffe, das hilft erstmal.
Ceyas, Flow
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
:huh: Damn it. Nun fang ich auch noch an mit falschen Namen zu signieren ... Arghhh Das andere Tut wird folgen sobald ich ein Model gefunden habe, was mich habwegs befriedigt *g*
Ceyas, Phobeus
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Mitglieder in diesem Forum: 0 Mitglieder und 13 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.