[B3D] 3d-Strahlen-Effekt

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Krümel

Betreff: [B3D] 3d-Strahlen-Effekt

BeitragDi, Dez 20, 2005 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, Leute!

Ich bin noch ganz neu in diesem Forum
und wollte euch zum Einstand mal einen schönen
3d-Effekt zeigen den ich vor kurzem programmiert habe.
Es handelt sich dabei um "gefakte" 3d Strahlen wie man
sie z.B. in etlichen Demos sehen kann:

BlitzBasic: [AUSKLAPPEN]

;3D-RAY-DEMO

Graphics3D (800,600,16,2)
SeedRnd MilliSecs()

Camera = CreateCamera()

fnt = LoadFont("Terminal",25,25)
SetFont fnt

MaxPlanes = 100

Dim Sprite( MaxPlanes+2 )

tex1 = CreateTexture(256 , 256) ;Textur Hintergrund
tex2 = CreateTexture(256 , 256 , 3) ;Textur Sprites

;Sprites erstellen und Textur zuweisen
For t = 0 To MaxPlanes
Sprite(t) = CreateSprite()
SpriteViewMode Sprite(t) , 2
EntityTexture Sprite(t) , tex2
ScaleSprite Sprite(t) , 15 , 15
PositionEntity Sprite(t),0,0,t*0.08
Next
EntityTexture Sprite(MaxPlanes) , tex1

;Zufalls-Schrift erzeugen
SetBuffer TextureBuffer(tex1)
For tt = -4 To 4
b$ = ""
For t = 1 To Rnd(15 , 20)
b$ = b$ + Chr$(Rnd(32 , 128))
Next
Color Rnd(50,255) , Rnd(50,255) , Rnd(50,255)
Text 128 , 128 + tt * 20 , b$ , 1 , 1
Next

;Textur verwischen
blur 0 , 0 , 256 , 256 , 0 , 0 , TextureBuffer(tex1) , TextureBuffer(tex2) , 0.25 , 5

Function blur(x1% , y1% , xs% , ys% , x2% , y2% , bf1 , bf2 , m# , p%)
p = p Shl 56
LockBuffer bf1
LockBuffer bf2
For y% = y1 + 1 To y1 + ys - 1
For x% = x1 + 1 To x1 + xs - 1
col1 = ReadPixelFast(x - 1 , y , bf1)
col2 = ReadPixelFast(x + 1 , y , bf1)
col3 = ReadPixelFast(x , y - 1 , bf1)
col4 = ReadPixelFast(x , y + 1 , bf1)
col1r%=(col1 Shr 16) And 255: col1g%=(col1 Shr 8) And 255: col1b%=(col1) And 255
col2r%=(col2 Shr 16) And 255: col2g%=(col2 Shr 8) And 255: col2b%=(col2) And 255
col3r%=(col3 Shr 16) And 255: col3g%=(col3 Shr 8) And 255: col3b%=(col3) And 255
col4r%=(col4 Shr 16) And 255: col4g%=(col4 Shr 8) And 255: col4b%=(col4) And 255
colr% = (col1r + col2r + col3r + col4r) * m
colg% = (col1g + col2g + col3g + col4g) * m
colb% = (col1b + col2b + col3b + col4b) * m
WritePixelFast x + x2 , y + y2 , p + (colr Shl 16 + colg Shl 8 + colb) , bf2
Next
Next
UnlockBuffer bf1
UnlockBuffer bf2
End Function


;und los gehts
SetBuffer BackBuffer()
While Not KeyHit(1)
mm = (mm + 1) Mod 360
mn# = (mn# + 0.35) Mod 360

mx# = Sin(mm) * 8
my# = Cos(mm) * 5
mz# = -5 + Cos(mn) * 15

PositionEntity Camera , mx , my , 0
RotateEntity Camera , 0 , 0 , mz
RenderWorld
Flip
Wend
End
 

#Reaper

Newsposter

BeitragDi, Dez 20, 2005 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht echt gut aus! Smile
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

jungle

BeitragDi, Dez 20, 2005 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, willkommen hier im forum.

gut gemacht, allerdings "stahlt" es nicht im fullscreen modus ?

cheers
jGL
In der Realität ist die Wirklichkeit ganz anders.

| P3 550Mhz | P90Mhz | AMD 1Ghz | XP 2600@3200Mhz l P2 400Mhz | Dual XP 2000Mhz |
 

Krümel

Betreff: tja... da wär auch schon meine erste frage:

BeitragDi, Dez 20, 2005 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso funktioniert das nicht i Fullscreen modus Question
 

#Reaper

Newsposter

BeitragDi, Dez 20, 2005 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, es geht, aber nur bei 32 Bits
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Krümel

BeitragDi, Dez 20, 2005 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
AHH! natürlich! Idea !
hab ich ganz übersehen.

orpheus_2003

Betreff: Super

BeitragDo, Dez 22, 2005 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Echt gut gemacht.
Hochachtung...
GazerStar - the beginning
http://gazerstar.lexigame.de/
Wizard (Worktitel)
http://wizard.lexigame.de

Mr.Keks

BeitragDo, Dez 22, 2005 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ein sehr hübscher, wenn auch simpler effekt. allerdings ein riesiger angriff auf die fillrate meiner graka...
von daher keine so riesige hochachtung von mir, da man bei sowas eigentlich unbedingt mehr tricksen sollte...
MrKeks.net

Bob

BeitragFr, Jan 06, 2006 1:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Saubere Arbeit. Very Happy
Kommt mir grade recht für den Vorspann eines Videos.
Werde es etwas umbasteln das ich Texturen Laden kann und dann einen einzelbidexport vom Buffer auf die Harddisk mache.
Das ganze dann per Einzelbildfolge in die Videoschnittsoftware und gut ist.
Besser als manches Plugin.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group