Teturen auf Heightmap

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Marek

Betreff: Teturen auf Heightmap

BeitragMo, Jul 02, 2007 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 02, 2007 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ScaleTexture nach dem du was texturiert hast.
 

Marek

BeitragDi, Jul 03, 2007 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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... Sad
Wer lesen kann ist klar im Vorteil...
 

Dreamora

BeitragDi, Jul 03, 2007 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jul 03, 2007 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jul 03, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink Allerdings benutzt man ja vür Gras und Stein normalerweise nicht nur unterschiedliche Farben, sondern auch unterschiedliche Strukturen.
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

BeitragDi, Jul 03, 2007 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 16, 2007 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group