Heightmap mit Colormap als Textur?
Übersicht

![]() |
NicdelBetreff: Heightmap mit Colormap als Textur? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich habe ein Terrain und als Textur die Colormap der Heightmap fürs Terrain. Code: [AUSKLAPPEN] terrain=LoadTerrain("heightmap.png") text1=LoadTexture ("colormap.png") ScaleEntity terrain,50,290,50 ScaleTexture text1,50,50 EntityTexture terrain,text1,0,0 So ist die Textur eigentlich so groß, wie das Terrain (beides 512x512 PNG-Bilder), oder irre ich mich? Auf jeden Fall passen Textur und Terrain überhaupt nicht zusammen: ![]() Weiß jemand woran das liegt? MfG Nicdel |
||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaub es war
Code: [AUSKLAPPEN] ScaleTexture(text1, TerrainWidth(terrain), TerrainHeight(terrain))
|
||
Starfare: Worklog, Website (download) |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Function 'terrainwidth' not found
Leider. Funktioniert also nicht. |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist ja auch klar... Terrainwidth gibt es ja auch nicht ... es gibt nur TerrainSize![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
ScaleTexture(text1, TerrainSize(terrain), TerrainSize(terrain))
funktioniert auch nicht... |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006Betreff: Re: Heightmap mit Colormap als Textur? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicdel hat Folgendes geschrieben:
Mach das weg, und es sollte funktionieren. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, dann ist die Textur in Vielen einzelnen Bildern über das ganze Terrain verteilt. Ich will aber, dass genau ein Bild der Textur über dem ganzen Terrain liegt, sodass bei Bergen die Textur Weiß und bei Wasser die Textur blau ist. | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aja, sorry, wenn die Highmap 512x512 groß ist, dann muß die Textur mit ScaleTexture auf 512x512 skalliert werden. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
NicdelBetreff: Re: Heightmap mit Colormap als Textur? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ja passiert:
Nicdel hat Folgendes geschrieben: (...) terrain=LoadTerrain("heightmap.png") text1=LoadTexture ("colormap.png") ScaleEntity terrain,50,290,50 ScaleTexture text1,50,50 EntityTexture terrain,text1,0,0 So ist die Textur eigentlich so groß, wie das Terrain (beides 512x512 PNG-Bilder), (...) |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, jetzt scalest du aber ein 512*512 bild auf (512*50)*(512*50) (oder so änlich)... ich glaub das geht mit
Code: [AUSKLAPPEN] ScaleTexture Text1,50*512,50*512
Ich glaube das klappt... mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
hecticSieger des IS Talentwettbewerb 2006Betreff: Re: Heightmap mit Colormap als Textur? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicdel hat Folgendes geschrieben: Was ja passiert:
Nicdel hat Folgendes geschrieben: ...
Vielleicht probierst du es erstmal aus, bevor du sowas schreibst. Denn: Es ist vollkommen egal wie groß ein Entity verzerrt wurde, denn die UV-Koordinaten bleiben gleich. Das heisst: Die Textur wird mit dem Entity mit vergrößert. Wird aber ein 512x512 Terrain erstellt, so bekommt jedes ''Tile'' jeweils einen UV-Koordinatensprung. Somit muß die Textur auf die größe der Highmap vergrößert werden, damit es über das ganze Terrain gezogen wird. In deinem Fall also ScaleTexture 512x512 und nicht 50x50. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Einfach
ScaleTexture texture,texturewidth(texture),textureheight(texture) Damit wird sie genau auf die grösse aufgeblasen die notwendig ist um das Terrain damit zu füttern. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
da ein terrain von der LOD-Mesh her immer quadratisch ist gibt es nur TerrainSize![]() Zitat: ScaleTexture(text1, TerrainSize(terrain), TerrainSize(terrain))
funktioniert auch nicht... Sollte es aber... wenn dann so und nicht anders |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
terrain size interessiert Texture nen dreck.
Das stimmt nur dann wenn du zufälligerweise HM und Texture in gleicher grösse hast (denn das terrain hat by default die grösse der heightmap als grösse). ansonsten wird das elementar falsch raus kommen also gib bitte neulingen nicht noch tipps wofür man schon dich wegen halbwissenheit auf die Suche und Doku verweisen muss. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ahhhhhhhhhhhhh kk sry hab ih nicht gewusst.... hmmmm dann müsste aber
Code: [AUSKLAPPEN] ScaleTexture(text1, TerrainSize(terrain)*TerrainSize(terrain)/TextureWidth(text1), TerrainSize(terrain)*TerrainSize(terrain)/TextureHeight(text1)) zum richtigen ergebnis führen: Die Texturbreite durch die breite gibt 1 * die Große des terrains führ zur gleichen Größe der textur und des terrains. Das nochmal mal die größe des terrains spannt die Textur Über das komplette terrain. Gleiches ürde dann auch für die Höhe der Textur gelten. PS das ist mir deshalb nie aufgefallen, weil meine Highmaps immer die gleiche größe wie die texturen haben. ^_^' |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na endlich! Das funktioniert... Vielen Dank! | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry Silver_Knee aber deine Lösung ist leider falsch. Denn, die größe der Colormap-Textur spielt dabei überhaupt keine Rolle. Wichtig ist nur, wie groß die Textur der Highmap ist. Dein Lösungsansatz funktioniert nur, weil Nicdel beide Bilddateien jeweils auf 512x512 abgespeichert hat und sich die 512x512/512 gerade wieder aufheben. Lädt man nun unterschiedlich große Texturen, dann funktioniert die Rechnung nicht mehr.
Ich habe das ganze eben nochmal ausprobiert, um definitiv kein Quatsch zu erzählen. Richtig ist: Die Textur muß um den Faktor vergrößert werden, wie groß die Highmap ist. Das heisst in Nicdel's Fall eben, x512. Also in Klartext: Code: [AUSKLAPPEN] Terrain = LoadTerrain ("lulatsch.png")
Texture = LoadTerrain ("lollipop.png") ScaleTexture Texture, TextureWidth(Terrain), TextureHeight(Terrain) Das ganze rührt aus folgendem Grund. Da Texturen über UV-Koordinaten abgespielt werden, ist die Größe eines Objektes irrelevant, da die UV-Koordinaten sich ja nicht verändern. Das heisst: Die Textur zieht mit dem Objekt mit. Da jede Textur über UV von 0,0 bis 1,1 geht, spielt es auch keine Rolle ob die Textur nun 64x64, 128x128, 256x256 ... groß ist, denn die UV-Koordinaten enden immer bei 1,1 (rechts unten der Textur). Da ein Blitzterrain aber UV-Koordinaten über jedes ''Tile'' einen Sprung macht, muß eben dieses als Anhaltspunkt genommen werden, wenn man sich als Ziel gesetzt hat, eine Texturkachel über das ganze Terrain zu ziehen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group