hab noch nich viel erfahrung in dem gebiet opengl und such zur zeit einen TexturLoader für die version 1.5 (dglOpenGL)
hab schon gegoogelt, foren etc. aber finde entweder nur sachen die anscheinend nich meiner version entsprechen (z.B. textures.pas) oder die seiten existieren nich mehr
also wenn einer so ne unit hat würd ich mich freuen wenn er sie mir schicken könnte oder nen link hier reinstellt
stell mich da anscheinend zu blöd beim suchen an
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hallo.
Normal würde ich dir sagen, dass du lediglich die Units im interface austauschen und evtl. inkompatibilitäten zwischen den Headern anpassen musst. Da ich aber selber einen Texturenloader geschrieben habe verschweige ich dir das.
hoi hoi .. das ding is aber groß .. also ersteinmal danke für die schnelle antwort
leider muss ich dich gleich weiter nerven .. und zwar bin ich mir nich ganz sicher welches funktion ich nun genau benutzen soll um z.B. ein bmp zu laden ...
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hätte ja früher geantwortet aber musste erst mal nach hause fahren.
Echt? So groß finde ich das nicht.
Aber zum Thema laden. Aus Kompatibilitätszwecken zu der Textures.pas habe ich die Methode LoadTextur implementiert. Allerdings rate ich von deren Benutzung ab, da man damit nun mal nicht den vollen Funktionsumfang zur Verfügung hat.
Das "richtig" laden geht mit den Klassen. Dabei sind die Klassen TglBitmap2D und TglBitmap1D interessant. Und dort hauptsächlich die für die 2D Texturen.
Als erstes musst du eine Instanze der Klasse erstellen. Im selben Schritt oder hinterher lädst du Bilddaten in die Klasse. Wenn du magst kann du dann noch einen Alphakanal zu der Textur hinzufügen oder du manipulierst die Textur auf welche Art und Weise auch immer beliebt. Dann kannst du (wenn nötig) Texturparameter einstellen. Also Filterung von OpenGL etc, Wenn das alles so weit ist dann teilst du der Klasse mit, dass sie die Textur anlegen soll.
Aussehen könnte das in etwa so.
und das funzt auch also geh ich davon aus dass das so korekt ist oder noch irgendwelche anmerkungen?
und wenn ich das jetz bewegen will muss ich doch z.B. zu den koordinaten jeweils ne variable addieren die sich durch nen tastendruck ändert.. so hab ich mir das jedenfalls überlegt
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Genau. Was auch lustig ist, wenn du auf Tastendruck die Texturcoordinaten weiterrücken läst. Probiers aus, und du grigst vielleicht lust ne kleine Animation damit zu basteln (Das fällt dann unter Animierte Texturen. Siehe in unserem Wiki: Einige Textureffekte )
_________________ Blog: kevin-fleischer.de und fbaingermany.com
also meine programm stürzt nach ner weile immer ab ("zu viele Exceptions") und das liegt eindeutig an meiner TexturLaden Procedure (wenn ich sie rausneehme funzt's) die wie folgt ausschaut:
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ja. Du kannst entweder immer neue Texturkoordinaten berechnen und diese dann zuweisen oder du veränderst direkt die Texturmatrix. Siehe dazu auch das Texturentutorial
ich hab mir das tutorial durchgelesen und werde trotzdem nich aus deinem post schlau
wo liegt denn nun mein eigentlicher fehler bzw. was muss ich anders machen
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ah. Das Post hat sich dazwischen gemogelt. Dann macht mein Post natürlich keinen Sinn. Das war auf die Animation der Textur bezogen.
Zu den Exceptions. OpenGL ist zum Zeitpunkt des Texturenladens bereits vollständig initialisiert? Das denke ich doch mal. Sonst hättets du ja keine Textur sehen können. Aber ich kann dir gerade nicht sagen wo das Problem liegt. Wenn du so willst mache ich ständig nichts anderes und bei mir klappts. Packe mal bitte deine Quellen und die benötigten Daten und Poste das mal oder schicke es mir per Mail zu. Ich schaue mir das dann mal an und sage dir wo der Fehler ist. Hoffe ich jedenfalls.
mh .. das problem liegt doch nich an den texturladen procedur, es tritt auch auf wenn diese nich ausgeführt wird aber ziemlich wahllos (komisch)
habe aber noch eine frage: wie kann ich am besten einen tasten druck verarbeiten (ich möchte das sich ein objekt bewegt solange man eine taste drückt), wenn ich OnKeyPress bzw. OnKeyDown von delphi nutze bewegt sich mein objekt ziemlich "abgehackt" und nicht flüssig...
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Eine oft empfohlene Lösung ist ein Tastenfeld mit Booleanwert.
Also ein Array anlegen welches den Status der entsprechenden Tasten speichert. Im OnKeyDown setzt du eine Taste dann auf True und beim KeyUp wieder auf false. Dann kannst du immer schön im Programm den Status abfragen und bist nicht abhängig von der WindowsMessagebehandlung.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das mit den Tastendrücke das nächste Mal bitte in ein eigenständiges Thema! Es ist übersichtlicher und es hat ja weder etwas mit dem eigentlichen Thema noch mit OpenGL zu tun.
Zu deinem Fehler kann ich dir das Angebot nur noch einmal machen. Schicke mir mal die Quellen und ich schaue mal ob ich den Fehler finde. Aber auf Grund der Wahllosigkeit und der Meldung "zu viele Exceptions" würde ich sagen, dass du irgendwo kontinuierlich auf etwas zugreifst was dir eine Exception liefert die aber nie sinnvoll ans Tageslicht kommt. Du solltets das Programm auf jeden Fall einmal in Debugger von Delphi starten und dort auf Exceptions achten. Dann solltest du recht schnell fündig werden. Auf keinen Fall solltest du aber das Problem ignorieren. Es hat fast immer einen Sinn warum es Exceptions gibt.
Mitglieder in diesem Forum: 0 Mitglieder und 14 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.