Endlos- Texturen/Tiles erstellen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

Betreff: Endlos- Texturen/Tiles erstellen

BeitragSa, Jan 06, 2007 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ein kleines Tool mit welchen man aus beliebigen Bilder eine nachtlose Endlostextur erstellen kann.

Code: [AUSKLAPPEN]
Graphics 256,128,0,2
SetBuffer FrontBuffer()

Text 128,16,"Endtexturformat wählen",1
Text 128,48,"[1] 16×16  [4] 128×128",1
Text 128,64,"[2] 32×32  [5] 256×256",1
Text 128,80,"[3] 64×64  [6] 512×512",1

FlushKeys
WaitKey

If KeyHit(2) wrkh=16
If KeyHit(3) wrkh=32
If KeyHit(4) wrkh=64
If KeyHit(5) wrkh=128
If KeyHit(6) wrkh=256
If KeyHit(7) wrkh=512

If wrkh=0 End Else Cls

Text 128,16,"Dateinamen eingeben",1
Locate 32,48

img$=Input()

wrkf=wrkh*2
wrky=wrkf-1
wrks=wrkh-1

f1#=0:f2#=0
r1#=0:r2#=0
g1#=0:g2#=0
b1#=0:b2#=0

If wrkf<256
 Graphics 256,256,0,2
Else
 Graphics wrkf,wrkf,0,2
End If

SetBuffer FrontBuffer()

aus=CreateImage(wrkh,wrkh)
ein=LoadImage(img)
DrawImage ein,0,0

LockBuffer FrontBuffer()

 For y=0 To wrky
  For x=0 To wrks
   f1=ReadPixelFast(x,y)
   r1=(f1 And $FF0000)/$10000
   g1=(f1 And $FF00)/$100
   b1=(f1 And $FF)
   r1=Int((r1/wrkh)*x)
   g1=Int((g1/wrkh)*x)
   b1=Int((b1/wrkh)*x)
   f2=ReadPixelFast(x+wrkh,y)
   r2=(f2 And $FF0000)/$10000
   g2=(f2 And $FF00)/$100
   b2=(f2 And $FF)
   r2=Int((r2/wrkh)*(wrks-x))
   g2=Int((g2/wrkh)*(wrks-x))
   b2=Int((b2/wrkh)*(wrks-x))
   WritePixelFast x,y,(r1+r2)*$10000+(g1+g2)*$100+(b1+b2)
  Next
 Next

 For y=0 To wrks
  For x=0 To wrks
   f1=ReadPixelFast(x,y)
   r1=(f1 And $FF0000)/$10000
   g1=(f1 And $FF00)/$100
   b1=(f1 And $FF)
   r1=Int((r1/wrkh)*y)
   g1=Int((g1/wrkh)*y)
   b1=Int((b1/wrkh)*y)
   f2=ReadPixelFast(x,y+wrkh)
   r2=(f2 And $FF0000)/$10000
   g2=(f2 And $FF00)/$100
   b2=(f2 And $FF)
   r2=Int((r2/wrkh)*(wrks-y))
   g2=Int((g2/wrkh)*(wrks-y))
   b2=Int((b2/wrkh)*(wrks-y))
   WritePixelFast x,y,(r1+r2)*$10000+(g1+g2)*$100+(b1+b2)
  Next
 Next

UnlockBuffer FrontBuffer()

GrabImage aus,0,0
TileBlock aus,0,0

Color 0,0,0:Rect 20,20,144,27,1
Color 255,255,255:Rect 20,20,144,27,0
Text 24,20,"escape: abbrechen"
Text 24,32,"andere: speichern"

img=Left(img,Len(img)-4)
img=img+".bmp"

FlushKeys
WaitKey

If Not KeyHit(1) SaveImage (aus,img)

End

Achtung: Ist das Quellbild eine .bmp so wird diese überschrieben!

Zu beachten gild auch, dass Quellbilder in X und Y mindestens doppelt so groß sein sollten, als die größe der Zieltexturen.

FireballFlame

BeitragSa, Jan 06, 2007 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi, sehr schick ^^
Auch wenns sowas in der Toolbox auch gibt Wink
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
 

Todeskop

BeitragSa, Jan 06, 2007 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
wow danke mir hats schon sehr bei der erstelleun von "vernümpftiem" Grass geholfen.
Very Happy

StepTiger

BeitragSo, Jan 07, 2007 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
bei 512x512 hab ich nichts sinnvolles geschafft.

Auf 32x32 ist es jedoch sehr schön
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Hagbard

BeitragSo, Jan 07, 2007 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnte jemand mal einen Screenshot posten?

Goodjee

BeitragSo, Jan 07, 2007 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
muss man nicht nur die textur 4 mal kopieren und immer ein bischen weiter drehen ??? sodass immer 2 gleiche kanten aufeinanderstoßen...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

StepTiger

BeitragSo, Jan 07, 2007 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wozu? Du hast da den Code, kopier ihn in dein Blitz.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group