![]() |
Alle seiten mit Texture füllen
Ich bekomme es nicht hin wo ist mein Fehler?
Ich erstelle einen Quader.
Delphi-Quellcode:
Dieser ist korrekt mit der Texture gefüllt auf jeder Seite.
glBegin(GL_QUADS);
// Front Face glNormal3f( 0.0, 0.0, 0.5); glTexCoord2f(0.0, 0.0); glVertex3f(-x,-y, z); glTexCoord2f(1.0, 0.0); glVertex3f( x,-y, z); glTexCoord2f(1.0, 1.0); glVertex3f( x, y, z); glTexCoord2f(0.0, 1.0); glVertex3f(-x, y, z); // Back Face glNormal3f( 0.0, 0.0,-0.5); glTexCoord2f(1.0, 0.0); glVertex3f(-x,-y,-z); glTexCoord2f(1.0, 1.0); glVertex3f(-x, y,-z); glTexCoord2f(0.0, 1.0); glVertex3f( x, y,-z); glTexCoord2f(0.0, 0.0); glVertex3f( x,-y,-z); // Top Face glNormal3f( 0.0, 0.5, 0.0); glTexCoord2f(0.0, 1.0); glVertex3f(-x, y,-z); glTexCoord2f(0.0, 0.0); glVertex3f(-x, y, z); glTexCoord2f(1.0, 0.0); glVertex3f( x, y, z); glTexCoord2f(1.0, 1.0); glVertex3f( x, y,-z); // Bottom Face glNormal3f( 0.0,-0.5, 0.0); glTexCoord2f(1.0, 1.0); glVertex3f(-x,-y,-z); glTexCoord2f(0.0, 1.0); glVertex3f( x,-y,-z); glTexCoord2f(0.0, 0.0); glVertex3f( x,-y, z); glTexCoord2f(1.0, 0.0); glVertex3f(-x,-y, z); // Right face glNormal3f( 0.5, 0.0, 0.0); glTexCoord2f(1.0, 0.0); glVertex3f( x,-y,-z); glTexCoord2f(1.0, 1.0); glVertex3f( x, y,-z); glTexCoord2f(0.0, 1.0); glVertex3f( x, y, z); glTexCoord2f(0.0, 0.0); glVertex3f( x,-y, z); // Left Face glNormal3f(-0.5, 0.0, 0.0); glTexCoord2f(0.0, 0.0); glVertex3f(-x,-y,-z); glTexCoord2f(1.0, 0.0); glVertex3f(-x,-y, z); glTexCoord2f(1.0, 1.0); glVertex3f(-x, y, z); glTexCoord2f(0.0, 1.0); glVertex3f(-x, y,-z); glEnd(); Jetzt möchte ich eine Raute\ Diamond erstellen das mache ich über GL_TRIANGLE_FAN. Funktioniert auch soweit aber es werden nicht alle Seiten mit meinem Cover befüllt.
Delphi-Quellcode:
Wo ist mein Denkfehler?
//Up
glBegin(GL_TRIANGLE_FAN); glColor3ub(R2, G2, B2); glTexCoord2f(0.0, 1.0); glVertex3d(0.0, 1.414, 0.0); glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0); glColor3ub(0, 0, 0); glTexCoord2f(1.0, 0.0); glVertex3d(1.0, 0.0, -1.0); glColor3ub(R1, G1, B1); glTexCoord2f(1.0, 1.0); glVertex3d(-1.0, 0.0, -1.0); glColor3ub(0, 0, 0); glTexCoord2f(0.0, 1.0); glVertex3d(-1.0, 0.0, 1.0); glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0); glEnd(); //Down glBegin(GL_TRIANGLE_FAN); glColor3ub(R2, G2, B2); glTexCoord2f(0.0, 1.0); glVertex3d(0.0, -1.414, 0.0); glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0); glColor3ub(64, 64, 64); glTexCoord2f(1.0, 0.0); glVertex3d(-1.0, 0.0, 1.0); glColor3ub(R1, G1, B1); glTexCoord2f(1.0, 1.0); glVertex3d(-1.0, 0.0, -1.0); glColor3ub(64, 64, 64); glTexCoord2f(0.0, 1.0); glVertex3d(1.0, 0.0, -1.0); glColor3ub(R1, G1, B1); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0); glEnd(); end; |
AW: Alle seiten mit Texture füllen
Textur Koordinaten sind vermutlich falsch, ich würde sowas mittels Blender machen
|
AW: Alle seiten mit Texture füllen
Ich kenne mich damit leider nicht aus, aber habe gerade etwas
![]() Zitat:
|
AW: Alle seiten mit Texture füllen
Zitat:
Wenn dem so ist dürfte eigentlich gar nichts mehr funktionieren. Verwende den Header(für OpenGL 4.6) Es funktioniert ja soweit alles bis auf das die unteren Koordinaten nicht stimmen. Diese sind gleich müssen aber anders sein. Habe mich wie blöde daran versucht die richtigen zu finden. (Ratespiel ja. Verwende OpenGL nicht so oft daher!) Will irgendwie nicht. Danke euch. EDIT: Es muss so sein finde aber den Anhaltspunkt nicht. 5 Eckpunkte und nur 2 Koordinaten? Bei glTexCoord2f wo soll ich da ansetzen. glTexCoord2f(0.0, 1.0); |
AW: Alle seiten mit Texture füllen
Zugehörige Wertrückgaben:
Delphi-Quellcode:
gefunden über
glGet mit Token GL_CURRENT_TEXTURE_COORDS
![]() ![]() ![]() Zitat:
|
AW: Alle seiten mit Texture füllen
Zitat:
![]() Doppelklick auf Datei. Nebenbei alles irgendwie widersprüchlich das Wiki! Zitat:
Zitat:
|
AW: Alle seiten mit Texture füllen
Zitat:
Meine OpenGl Demo's sind leider nur für Delphi 7 tauglich, sonst würde ich Dir die als Beispiele hochladen. Bereits mit Delphi 2009 kam beim kompilieren nur noch unbrauchbare "Grütze" raus. |
AW: Alle seiten mit Texture füllen
Zitat:
Nochmals Danke. Habe einen OpenGL Spezialisten Kontaktiert der hat mir auch das Bild oben geschickt. Eventuell hilft er mir dabei. Muss halt warten können bis er sich nochmals meldet. |
AW: Alle seiten mit Texture füllen
Funktioniert jetzt.
Delphi-Quellcode:
falls es mal jemand braucht.
glBegin(GL_TRIANGLES);
//Up glColor4ub(R2, G2, B2, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, 1.414, 0.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.0, 0.0); glVertex3d(-1.0, 0.0, 1.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(1.0, 0.0, 1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, 1.414, 0.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(1.0, 0.0, 1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(1.0, 0.0); glVertex3d(1.0, 0.0, -1.0); glColor4ub(R2, G2, B2, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, 1.414, 0.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, -1.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(-1.0, 0.0, -1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, 1.414, 0.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(-1.0, 0.0, -1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(1.0, 0.0); glVertex3d(-1.0, 0.0, 1.0); //Down glColor4ub(R2, G2, B2, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, -1.414, 0.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.0, 0.0); glVertex3d(1.0, 0.0, 1.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(-1.0, 0.0, 1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, -1.414, 0.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(-1.0, 0.0, 1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(1.0, 0.0); glVertex3d(-1.0, 0.0, -1.0); glColor4ub(R2, G2, B2, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, -1.414, 0.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.0, 0.0); glVertex3d(-1.0, 0.0, -1.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(1.0, 0.0, -1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(0.5, 1.0); glVertex3d(0.0, -1.414, 0.0); glColor4ub(0, 0, 0, 64); glTexCoord2f(0.5, 0.0); glVertex3d(1.0, 0.0, -1.0); glColor4ub(R1, G1, B1, 64); glTexCoord2f(1.0, 0.0); glVertex3d(1.0, 0.0, 1.0); glEnd(); Danke an "Michal Bubnár" |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 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-2025 by Thomas Breitkreuz