AA in 2D games

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

Jan_

Ehemaliger Admin

Betreff: AA in 2D games

BeitragDo, Okt 07, 2004 7:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hiho ich wollte mal unseren 2D Spiele entwicklern, eine Möglichkeit zeigen, aa in ihre games zu bringen.

Dazu braucht ihr meine Blur lib.

Code: [AUSKLAPPEN]
;Wir laden die BlurLib
Include "blur.bb"

;Wir brauchen Graphics3D, weil Jan's Blur lib auf 3D Basis ist.
;Darum können wir leider nicht Grapics nehmen :-(
Graphics3D 800,600,32,2

Create_AA()

Gitter = CreateImage(GraphicsWidth(),GraphicsHeight())
SetBuffer ImageBuffer(Gitter )
For x= 0 To GraphicsWidth() Step 10
   For y = 0 To GraphicsHeight() Step 10
      Line X-5,y-5,x+5,y+5
   Next
Next

;Backbuffer setzten, wie immer
SetBuffer BackBuffer()

;Hauptschleife
Repeat
   
   ;Berechnungen
   Faktor#=255.0/GraphicsWidth()
   x=x+1
   If x> GraphicsWidth() Then x=0   
   
   ;Objekte Zeichnen, auf die AA angewendet werden soll   
   DrawBlock gitter,0,0
   Text X,GraphicsHeight() Shr 1,"Text mit AA"
   Text X+1,GraphicsHeight() Shr 1,"Text mit AA"
   
   setblurColor X*Faktor#,255-x*Faktor#,255
   
   ;Update AA
   Update_AA()
   
   ;Objekte Zeichen, ohne AA
   Text GraphicsWidth()- X,GraphicsHeight() Shr 1,"Text ohne AA"
   
   ;Flippt die Buffer
   Flip 1
   

Until KeyHit(1)



Function Create_AA()
   ;Wichtig, Camera initialisieren
   Cam=CreateCamera()
   CameraClsMode cam,0,1

   ;Blur an der Camera erstellen
   CreateBlur(Cam,4,0.6);Erstellt AA Bild, und setzt Unscharfmaske auf 0.6 pixel
   SetBlurUpdateTime(0);Setzt die Update rate (Bei AA am besten immer 0)
End Function

Function Update_AA()
   ;Updates the 3D scene
   RenderWorld
   
   ;Updates Blur
   UpdateBlur(0.48)   
End Function


Theorie dahinter:

Wir benutzten 3 Stark von einander getrennte Layer:

_______________ 1- 2D Layer
_______________ 2- 3D Layer
_______________ 3- 2D Layer

Da der 1. 2D Layer unter den 3D Layer liegt, können wir alle 3D effekte auf den 2D layer auswirken lassen.
der 3. Layer, schreibt dann über den 3D layer drüber --> wird nciht von ihm beeinflusst.

http://jankuhnert.stormsoft.de...0Games.rar

Viel Spaß!
between angels and insects

Triton

BeitragDo, Okt 07, 2004 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenns 3D ist, sehe ich 0 Vorteil zum Grafikkarteneigenen AA. Das dürfte dann ohnehin ungleich schneller und schöner sein.
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Jan_

Ehemaliger Admin

BeitragDo, Okt 07, 2004 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Triton, doch, man kann in jeden 2D spiel, ohne es groß zu ändern AA herreinbringen.
ich rede jetzt hier nicht von CS2D, auf 3D basis, sondern von games wie Canabis manager, Girgle World ...
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group