Teturen auf Heightmap
Übersicht

MarekBetreff: Teturen auf Heightmap |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe eine Heightmap, die ich dann per Scaleentity vergrößere. Jetzt hab ich nur das Probem, dass die Colormap danach nur rießige Pixel auf die Heightmap zeichnet. Ich hätte das ganze aber gerne schön texturiert (mit verschiedenen Texturen je nach Höhe). Wie stelle ich so was an? Eine Giga Textur wäre wohl zu groß für sowas...
Danke für eure Antworten schon im Vorraus! MfG Marek |
||
Wer lesen kann ist klar im Vorteil... |
![]() |
panda |
![]() Antworten mit Zitat ![]() |
---|---|---|
ScaleTexture nach dem du was texturiert hast. | ||
Marek |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, ich will verschiedene Texturen als eine verwenden, will aber nicht alle in eine giga-textur speichern (würde wohl den Arbeitsspeicher plätten^^).
ScaleTexture bringt mir da nichts... ![]() |
||
Wer lesen kann ist klar im Vorteil... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das geht "garnicht"
Garnicht weil es nur mit multitexture blending und alpha maps geht. aber auch dann hast du das problem das das terrain net zu gross sein darf weil die alphamaps genau das gleiche problem haben wie die normalen colormaps. Was du dafür eigentlich nehmen müsstest ist ein Terrain Editor wie TED, TerraED oder sonst einen Mesh Terrain Editor mit B3D Export. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ByteCroc |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du meinst sicher so etwas:
https://www.blitzforum.de/upload/file.php?id=1730 Hab das Beispiel mit Texturen in eine ZIP Datei gepackt, diese lösche ich aber wieder sobald ich den Platz brauche, darum den Quellcode (ohen Texturen) nochmal als Code. Die Heightmap hab ich mit The Gimp grob vorgemalt, mit ScapeMaker eingelesen und verbessert. Die Colormap für diese Heightmap auch mit Scapemaker generiert. Die Struktur mit TheGimp / Gimppessionist ganz schnell erstellt. ScapeMaker gibts hier: http://www.shedeki.net/sm/ Achja mit linker STRG plus rechter Maustaste kann man schneller gehen. Edit: Bessere Ergebnisse erhält man noch wenn man mit Scapemaker nicht so kontrastreiche Texturen nimmt und/oder mit einem Grafikprogramm noch etwas Weichzeichner drüber laufen lässt und sich noch etwas mehr Zeit nimmt. Code: [AUSKLAPPEN] Global CLSred , CLSgreen , CLSblue Global fogmin, fogmax, camrange CLSred = 120 CLSgreen = 120 CLSblue = 150 fogmin = 500 fogmax = 1000 camrange = 1000 Graphics3D 800,600,0,1 SetBuffer BackBuffer() terrain=LoadTerrain("TestTerrain.bmp") ScaleEntity terrain,10,200,10 PositionEntity Terrain,0,0,0 ;Colormap mit Scapemaker generiert cmap = LoadTexture("TestCol.png",8) ;Struktur für die Nähe, hier zweimal die selbe smap1 = LoadTexture("Struktur01.png",8) smap2 = LoadTexture("Struktur01.png",8) ;Colormap so groß wie die Heightmap scalieren ScaleTexture cmap, 512, 512 ;Bestes Ergebnis ausprobieren ScaleTexture smap1, 10.0, 20.0 ScaleTexture smap2 , 1.0 , 1.0 TextureBlend cmap, 1 EntityTexture terrain,cmap,0,1 TextureBlend smap1, 2 EntityTexture terrain,smap1,0,2 TextureBlend smap2, 5 EntityTexture terrain,smap2,0,3 piv = CreatePivot() camera=CreateCamera(piv) PositionEntity piv,1300,40,1320 PositionEntity camera,0,4,0 EntityParent camera,piv,1 light=CreateLight() RotateEntity light,90,0,0 CameraRange camera,0.1,camrange CameraFogMode camera,1 CameraFogRange camera,fogmin,fogmax CameraFogColor camera, CLSred, CLSgreen, CLSblue CameraClsColor camera , CLSred, CLSgreen, CLSblue While Not KeyDown(1) Cls mxs# = 0-MouseXSpeed()/4.0 mx=MouseX() my=MouseY() TurnEntity piv,0,mxs#,0 mys#=MouseYSpeed()/4.0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 ;camxa#=camxa+mxs ;Mod 360 TurnEntity camera,mys,0,0 If MouseDown(2) Then MoveEntity piv,0,0,0.25 If MouseDown(2) And KeyDown(29) Then MoveEntity piv,0,0,1.25 x#=EntityX(piv) y#=EntityY(piv) z#=EntityZ(piv) terra_y#=TerrainY(terrain,x#,y#,z#) PositionEntity piv,x#,terra_y#,z# UpdateWorld RenderWorld Text 10,10, "rechter Mousebutten = vorwärts bewegen" Text 10,30, x# + " " + y# + " " + z# Flip Wend |
||
Marek |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm, erstmal danke für die Antwot(en)!
Für die Heightmaps hab ich ein Programm, das liefert mir sogar gleich die Lightmap mit. Mein Problem war, dass die Colormap zu ungenau war... deine Lösung ist schon nicht schlecht. So siehts auf jeden Fall schon 10x besser aus ![]() Das soll jetzt kein meckern sein, deine Lösung ist wirklich gut. Aber sie überdeckt die ungenaue Colormap nur und ist genauso unflexibel (scheint mir so)... MfG Marek |
||
Wer lesen kann ist klar im Vorteil... |
ByteCroc |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du in verschiedenen Bereichen eine andere Struktur haben willst dann geht das wenn du die Map in verschiedene Regionen einteilst, zum Beispiel kannst du dir dafür ein extra Bild einladen und die Playerkoordinate mit der
Farbe auf dem Bild vergleichen, je nach Farbe änderst du die Struktur, d.h. du lverwendest eine ander Textur für den Nahbereich, am besten noch eine Übergangsregion, damit es nicht zu abruppt wechselt, anders geht das mit Heightmap-Terrains nicht. |
||
![]() |
Who |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Marek!
Ich habe mir erst neulich Dot3Mapping beigebracht und habe zufällig bei Battlefield 2 Texturen gefunden, in denen jeweils 2 Strukturen gespeichert sind (eine zB im roten Kanal, eine andere im grünen). Wenn man diese Textur mit einem farbigen Untergrund (genau wie bei Dot3Mapping) kombiniert, der auch schlecht aufgelöst sein kann und ja nicht aktualisiert werden muss könnte man mit wenigen (und auch kleinen) Texturen evtl viel erreichen. Das würde dann so aussehen: Farbiger Untergrund, um aus der Dot3Mapping-Textur das richtige Muster rauszuholen, dann die D3M-Tex selber und dann eine Farbtextur mit Grasfarben, Sand, etc. MFG Who |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group