Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zu einem Vertex gehört in Normalfall auch eine Texturkoordinate, also solltest du dein Vertex so aufbauen (den Typ Record soll man nicht mehr verwenden):
Code:
type
TVertex = object
Position : array[0..2] of TGLFloat;
TexCoord : array[0..1] of TGLFloat;
end;
Dann kannst du in deinem Quellcode nämlich ganz einfach folgendes machen :
Code:
glTexCoord2fv(@Vertex[i].TexCoord);
glVertex3fv(@Vertex[i].Position);
Die Texturkoordinaten holst du dir im allgemeinen dann aus deinem Mapformat (im Q3-Map-Format werden übrigens keine Quads gespeichert, da Quads kein nativer Primitiventyp sind) oder errechnest diese mittels planarem Mapping selbst.
Allerdings weiss ich ehrlich gesagt gar nicht wo dein Problem liegt, denn immerhin weisst du doch wie man ein Quad texturiert...wenn nicht, dann wäre es ne denkbar schlechte Idee eine Engine proggen zu wollen!
Registriert: Mi Jan 08, 2003 15:49 Beiträge: 266 Wohnort: Aachen
Ich hatte mir das schwieriger vorgestellt. Habe da wohl irgendwas durcheinander gebracht.
Dachte man müsste die Vertexes (keine Ahnung wie die Mehrzahl heißt) irgendwie verbinden (in einer for schleife einzelne Punkte verbinden und dann ein Textur drüber legen).
Und was ist ein Face. Meines wissens ist das doch ein Dreieck. Für was werden diese den gebraucht.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
@Vertexe :
Die muss man nicht verbinden, aber in einer richtigen Reihenfolge zeichnen...mehr dazu gibts im Redbook.
@Face :
Ein Face ist ein Array mit Indizes auf die zu ihm gehörenden Vertexe.Faces haben den Vorteil, das man durch ihre Nutzung bei Objekten die sich viele Vertexe teilen jede Menge an Speicherplatz spart.
Bei einem normalen Dreieck würde man ja drei Vertexe speicher, und wenn dann mehrere Dreiecke gleiche Vertexpositionen hätten, würde man recht viel Speicher brauchen.Bei Faces werden halt nur die Indizes der genutzten Vertexe abgelegt, und die Vertexe selbst werden in nem Vertexarray abgelegt in dem es keine doppelten Vertexe gibt.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
@SoS
Leider Off-Topic:
Zitat:
(den Typ Record soll man nicht mehr verwenden)
Sorry, muss Dir wiedersprechen. Records sind immer noch eine nützliche Möglichkeit, Datenstruckturen zu verwalten und sollten immer da verwendet werden, wo ein Kapselung von Daten unnötig ist.
Dagegen sagt die Delphi - Hilfe zu object:
Zitat:
Objekttypen werden nur aus Gründen der Abwärtskompatibilität unterstützt und sollten in neuen Anwendungen nicht mehr verwendet werden.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.