erstellt eine passende textur zu einer heightmap
Übersicht

![]() |
dimasterBetreff: erstellt eine passende textur zu einer heightmap |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
ich hab mal einbischen mit readpixel und writepixel herumgespielt und hab dann einen kleinen heightmap texturierer naja ich denk ma wird vielleicht n00bs eine hilfe sein... Code: [AUSKLAPPEN] terraintex("terrain3.bmp","terraintex1.bmp") Function terraintex(terrain$,name$) image = CreateImage(512,512) SetBuffer ImageBuffer(image) bild = LoadImage(terrain$) DrawImage bild,0,0 width = ImageWidth(bild) height = ImageHeight(bild) For y = 0 To height For x = 0 To width rgb=ReadPixel(x,y) r=(rgb And $FF0000)/$10000 g=(rgb And $FF00)/$100 b=rgb And $FF If g<19 And b<19 Then rgb=200*$10000 + Rand(206,255)*$100 + 0:WritePixelFast x,y,rgb If r=0 And g=0 And b=0 Then rgb=0*$10000 + 0*$100 + Rand(100,255):WritePixel x,y,rgb If r>17-2 And g > 17-2 And b >17-2 And r<26 And g<26 And b<26 Then rgb=100*$10000 + Rand(246,255)*$100 + 0:WritePixel x,y,rgb If r>24-2 And g > 24-2 And b >24-2 And r<29 And g<29 And b<29 Then rgb=0*$10000 + Rand(236,245)*$100 + 0:WritePixel x,y,rgb If r>26-2 And g > 26-2 And b >26-2 And r<34 And g<34 And b<34 Then rgb=0*$10000 + Rand(226,235)*$100 + 0:WritePixel x,y,rgb If r>30-2 And g > 30-2 And b >30-2 And r<44 And g<44 And b<44 Then rgb=0*$10000 + Rand(216,225)*$100 + 0:WritePixel x,y,rgb If r>40-2 And g > 40-2 And b >40-2 And r<54 And g<54 And b<54 Then rgb=0*$10000 + Rand(206,215)*$100 + 0:WritePixel x,y,rgb If r>50-2 And g > 50-2 And b >50-2 And r<64 And g<64 And b<64 Then rgb=0*$10000 + Rand(190,205)*$100 + 0:WritePixelFast x,y,rgb If r>60-2 And g > 60-2 And b >60-2 And r<74 And g<74 And b<74 Then rgb=0*$10000 + Rand(180,195)*$100 + 0:WritePixelFast x,y,rgb If r>70-2 And g > 70-2 And b >70-2 And r<84 And g<84 And b<84 Then rgb=0*$10000 + Rand(170,185)*$100 + 0:WritePixelFast x,y,rgb If r>80-2 And g > 80-2 And b >80-2 And r<94 And g<94 And b<94 Then rgb=0*$10000 + Rand(160,175)*$100 + 0:WritePixelFast x,y,rgb If r>90-2 And g > 90-2 And b >90-2 And r<104 And g<104 And b<104 Then rgb=0*$10000 + Rand(150,165)*$100 + 0:WritePixelFast x,y,rgb If r>100-2 And g > 100-2 And b >100-2 And r<114 And g<114 And b<114 Then rgb=0*$10000 + Rand(140,155)*$100 + 0:WritePixelFast x,y,rgb If r>110-2 And g > 110-2 And b >110-2 And r<124 And g<124 And b<124 Then rgb=0*$10000 + Rand(130,145)*$100 + 0:WritePixelFast x,y,rgb If r>120-2 And g > 120-2 And b >120-2 And r<134 And g<134 And b<134 Then rgb=0*$10000 + Rand(120,135)*$100 + 0:WritePixelFast x,y,rgb If r>130-2 And g > 130-2 And b >130-2 And r<144 And g<144 And b<144 Then rgb=0*$10000 + Rand(110,125)*$100 + 0:WritePixelFast x,y,rgb If r>140-2 And g > 140-2 And b >140-2 And r<154 And g<154 And b<154 Then rgb=0*$10000 + Rand(100,115)*$100 + 0:WritePixelFast x,y,rgb If r>150-2 And g > 150-2 And b >150-2 And r<164 And g<164 And b<164 Then rgb=0*$10000 + Rand(90,105)*$100 + 0:WritePixelFast x,y,rgb If r>160-2 And g > 160-2 And b >160-2 And r<174 And g<174 And b<174 Then rgb=0*$10000 + Rand(80,95)*$100 + 0:WritePixelFast x,y,rgb If r>170-2 And g > 170-2 And b >170-2 And r<184 And g<184 And b<184 Then rgb=0*$10000 + Rand(70,85)*$100 + 0:WritePixelFast x,y,rgb If r>180-2 And g > 180-2 And b >180-2 And r<194 And g<194 And b<194 Then rgb=0*$10000 + Rand(60,75)*$100 + 0:WritePixelFast x,y,rgb If r>190-2 And g > 190-2 And b >190-2 Then rgb=0*$10000 + Rand(50,65)*$100 + 0:WritePixelFast x,y,rgb Next Next save = SaveImage(image,name$) If bild <> 0 write "Textur erstellt" If bild = 0 Write "Textur nicht erstellt" If save = 1 Then write "und gespeichert!!!" If save = 0 Then write ", aber nicht gespeichert!!!" End Function die funktion lädt ein heightmap und überprüft jeden pixel auf dessen farbe, dann wird der pixel auf die gewollte farbe geändert und so entsteht dann eine textur, welche man dann auf sein terrain legen kann hier mal ein bild: mfg dimaster ![]() |
||
- Zuletzt bearbeitet von dimaster am Sa, Feb 25, 2006 22:04, insgesamt 5-mal bearbeitet
![]() |
Fuchsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schönes Stück Code! ![]() Aber gehts nich mit "ENTITYTEXTURE" " schneller ? |
||
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
öhhm der code erstellt anhand eines heightmaps eine textur also er analysiert die heightmap und erstellt eine textur, welche dann aufs terrain gelegt werden kann(mit entitytexture) | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group