Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Hi Leutz!
Hab folgendes Problem:
Also ich habe eine HeightMap, die mit Triangles dargestellt wird, was auch wunderbar klappt...
Nun will ich über das ganze eine Textur legen und da fängts an.. also ich brauch die HeightMap in Triangles..
Hab schonma gesucht und hab folgendes gefunden:
http://www.delphigl.com/forum/viewtopic.php?t=972&start=0&postdays=0&postorder=asc Das hab ich auch soweit verstanden aber ich bräuchts ja für Dreiecke und da kann ich mir nicht vorstellen wie ich das machen soll, da sie ja alle unterschiedlich groß sind ?!
Die Dreiecke sind wie im Tutorial zu den Heightmaps gespeichert und werden wie folgendermaßen aus den Höhendaten errechnet:
Du generierst 2D Texturkoordinaten, indem du einfach die XZ Werte deiner Vertices mit einem bestimmten Faktor multiplizierst. Da eine Heightmap keine Überhänge hat, und es auch keine senkrechten Flächen gibt, reicht dies in der Regel völlig aus.
Du solltest dir aber überlegen eine oder mehrere "Flächentexturen" zu verwenden, in denen der grobe Typ des Terrains wiedergegeben wird (etwa Sand, Gras, Stein) und den dann mit einer oder mehreren passenden Detailtextur(en) zu modulieren.
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Danke erstma für die Antwort!
Aber genau das is ja das Problem.. bei Quads wüsst ich ja wie groß jedes ist, da sie auf der x-achse alle den gleiche Abstand haben.. bei denTriangles ist das eben nicht so. und der 3. Punkt liegt ja noch nicht einmal regelmäßig auf der z-achse oder hab ich da was falsch im kopf ?? bin mir grad nicht ganz sicher da ich nich weiss ob ich das alles so verstanden hab.. ich glaub ich mach das ganze mit quads dann weis ich wies geht.. trotzdem danke fürs erste !! bis dann
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Wieso? Du hast doch bei jedem Punkt in 3D drei Koordinaten, da ein Vertex im Normalfall halt aus einem (X,Y,Z) Tupel besteht. Anstatt dass du für jeden Punkt nun
Code:
glVertex3f(x,y,z);
aufrufst, verwendest du folgende Kommandos
Code:
glTexCoord2f(x*Factor, z*Factor);
glVertex3f(x,y,z);
Dabei ist es völlig wurscht, ob deine Szene nun aus Dreiecken, Vierecken, Triangle- oder QuadStrips oder sonst irgendwas besteht. Alternativ könntest du auch glTexGen verwenden, das prinzipiell das Selbe macht.
Registriert: Di Feb 25, 2003 15:10 Beiträge: 147 Wohnort: Koblenz a. Rhein
Hi!
Danke soweit schonma.
Jetzt hab ich aber folgendes Problem.
Woraus setzt sich der Wert der in 'Factor' steht zusammen?
Also es müsste doch der X und Z abstand zum 1. Punk der HeightMap sein oder ?
Aber wie bekomme ich den berechnet ?
_________________ mir fällt kein Spruch mehr ein für meine Signatur naja...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Factor ist im Normalfall 1/Anzahl der Unterteilungen pro Dimension, so dass U und V auf den Bereich 0..1 gebracht werden. Wenn du die Terraintextur wiederholen willst, musst du Factor halt mit nem festen Wert multiplizieren.
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.