Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Multitexturdarstellung (https://www.delphipraxis.net/67362-multitexturdarstellung.html)

Andidreas1 13. Apr 2006 16:34


Multitexturdarstellung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wer kann mit bitte verraten, warum das *.tga nicht angezeigt wird. Ich möchte kein aufwendiges Spiel etc schreiben, sonder nur ein *.tga plus Normalmap als Vorschau anzeigen.

Phobeus 13. Apr 2006 19:19

Re: Multitexturdarstellung
 
10 Sec-Scan durch den Code: Bist Du sicher, dass Du keine Textur siehst? Vielleicht brauchst Du nur eine sehr sehr gute Brille. Skeptisch macht mich, dass Du keine Positionierung nach dem glLoadIdentity vornimmst... allerdings ist dies durchaus korrekt, wenn man sieht, dass Du die Projektionsmatrix im orthogonalen Modus setzt in der Größe der Zeichenfläche. Bitte bedenke aber was Du damit erreichst! Du nutzt keinen 3D-Raum mit Welteinheiten mehr, sondern einen 2D-Raum (ausgehend von links unten) in Pixeln. Entsprechend wird dein Quad links unten in einer Größe von round about einem Pixel generiert und auf Grund von Filtern und der ohnehin bereits sehr dunklen Textur wird davon wohl kaum mehr übrig bleiben als ein vielleicht sehr leicht aufgedunkeltes Schwarz. Gebe als die Vertex-Daten des Quads im orthogonalen Modus einmal in Pixeln an. Dies schließt nicht aus, dass evtl. weitere Fehler enthalten sind. Sollte dies immer noch nicht zum gewünschten Ergebnis führen, solltest Du in jedem Fall feststellen, ob das ganze mit einer "normalen" Projektionsmatrix funktionert. Bekommst Du dort dein Quad gezeichnet, kannst Du versuchen den ortogonalen Modus zu verwenden.

Tipp: Schwarz als Clearcolor wird verwendet, da es ein guter Kontrast darstellt und daher bei Beispielen "besser" ausschaut. Bei der Tatsächlichen Entwicklung ist es oft besser ein sehr dunkles Blau (0.3= RGB) zu nehmen, da viele Dinge darauf besser zu sehen sind.

Andidreas1 13. Apr 2006 19:33

Re: Multitexturdarstellung
 
Ich hab ne Brille auf und sehe aber trotzdem kein Bild. Auch nicht mit weißem Hintergrund. Ansonsten würd ich gerne probieren, was Du mir vorgeschlagen hast, wenn Du mir mitteilst wie. Ich hab ehrlich gesagt fast keinen Schimmer davon. Außer ich probiere jetzt wie ein Blöder.

Phobeus 13. Apr 2006 22:12

Re: Multitexturdarstellung
 
Wenn Du nicht weißt, wie man Eckpunkte setzt, solltest Du Dich lieber erst einmal anderen Problemen widmen:
Delphi-Quellcode:
glBegin(GL_QUADS);
    glTexCoord2f(0,0);
    glVertex2f(0,0);
    glTexCoord2f(1,0);
    glVertex2f(256,0);
    glTexCoord2f(1,1);
    glVertex2f(256,256);
    glTexCoord2f(0,1);
    glVertex2f(0,256);
  glEnd();
Bild von 256x256 ausgehend in der linken unteren Ecke im orthogonalen Modus.

Andidreas1 13. Apr 2006 22:51

Re: Multitexturdarstellung
 
Danke für den Hinweis. Das war mein Problem, ansonsten werde ich Dich nie wieder belästigen. Versprochen

Phobeus 14. Apr 2006 10:21

Re: Multitexturdarstellung
 
Wer sagt, dass Du damit lästig bist? Du solltest nur entsprechende Funktionsabläufe und Begriffe kennen, bevor Du Dich tiefer in die Materie wagst. Der Fehler als solcher ist sehr weit verbreitet und ist mir durchaus auch schon öfters passiert. Würde mich jemand damit nerven, würde ich gewiss keine Hilfestellung geben...

Andidreas1 14. Apr 2006 11:33

Re: Multitexturdarstellung
 
Na gut. So nun sehe ich das Bild, aber blaustichig und auf den Kopf gestellt, sowie seitlich etwas verschoben. Was kann man unternehmen, um dies zu korrigieren?

Phobeus 14. Apr 2006 12:47

Re: Multitexturdarstellung
 
Die Ursachen hierfür können vielschichtig sein. Letztendlich klingt es jedoch als würde der Textur-Loader die Daten falsch auslesen. Wandel deine Textur einmal in ein JPG um und schaue, ob das Problem dort auch besteht? Du nutzt selbst noch glBmp und dies ist nicht zu empfehlen, da der Autor davon seit rund 2 Jahren nicht mehr erreichbar ist. Werfe einmal einen Blick auf diesen Artikel: DGL-Wiki GlBitmap
Dieser Loader wurde geschrieben, nachdem glBmp nicht mehr gewartet wurde. Ein Umstieg sollte relativ einfach fallen.

Die Spiegelung kann ebenfalls vom Loader her kommen, allerdings ist mir dieses Problem nur bei SDL_Image bekannt und nicht bei glBmp. Richte deine orthogonale Projektion einmal nach folgendem Schema aus:
Delphi-Quellcode:
glOrtho(0,ClientWidth,0,ClientHeight, 0,128)

Andidreas1 14. Apr 2006 13:12

Re: Multitexturdarstellung
 
Interessant. Vorallem die Stelle mit dem Bildheader. Hab es mal mit iview gespeichert und nun ok. Ich hab für das Bild die Reihenfolge der Koordinaten geändert und schon hab ich es richtig rum.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr.

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