Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 20, 2025 17:50

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: HeightMap Texturen bei Triangles..
BeitragVerfasst: Di Okt 12, 2004 19:12 
Offline
DGL Member
Benutzeravatar

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:
Code:
  1.          
  2.           Vertieces[I][0] := (X + VertPos[I][0])/86*MapSize;
  3.           Vertieces[I][2] := (Z + VertPos[I][1])/86*MapSize;
  4.           Vertieces[I][1] := MapDaten[X + VertPos[I][0],Z + VertPos[I][1];
  5.  

Kann mir jemand sagen wie ich die dazugehörigen TexturKoordinaten bekomme?
Danke fürs Lesen! Bis denne! hf beim proggen

_________________
mir fällt kein Spruch mehr ein für meine Signatur :( naja... :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 12, 2004 19:34 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
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.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 12, 2004 19:45 
Offline
DGL Member
Benutzeravatar

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... :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 12, 2004 21:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
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:
  1. glVertex3f(x,y,z);

aufrufst, verwendest du folgende Kommandos
Code:
  1. glTexCoord2f(x*Factor, z*Factor);
  2. 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.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 18, 2004 12:23 
Offline
DGL Member
Benutzeravatar

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... :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 18, 2004 12:40 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 18, 2004 12:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Feb 25, 2003 15:10
Beiträge: 147
Wohnort: Koblenz a. Rhein
Ahh habs selbst gefunden!!!
Trotzdem THX!!
müsste beim DGL tutorial dann etwa so aussehen:
Code:
  1.         glTexCoord2f(Vertieces[V1][0]/MapSize,Vertieces[V1][2]/MapSize);glVertex3fv(@Vertieces[V1][0]);
  2.         glTexCoord2f(Vertieces[V2][0]/MapSize,Vertieces[V2][2]/MapSize);glVertex3fv(@Vertieces[V2][0]);
  3.         glTexCoord2f(Vertieces[V3][0]/MapSize,Vertieces[V3][2]/MapSize);glVertex3fv(@Vertieces[V3][0]);

Bis dann!!

_________________
mir fällt kein Spruch mehr ein für meine Signatur :( naja... :D


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.021s | 16 Queries | GZIP : On ]