AmiBlitz³

Normale Version: RGB - Effekte mit BitplanesBitmap
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Habe bei EAB Fragen darüber gesehen, alte Threads. Ich dachte, das gehört aber besser hier her. Wink

RGB-Demo-Effekte, wie z.B. Cubos usw.
Ich hatte so etwas früher schon mal gemacht, beinahe 2 Decaden ist das jetzt her. :o

Also, hier ist ein Beispiel:
src folgt...
Code:
;Blitz 2 RGB-Demo (snip), (c)1996 by F.Brandis
;
.....
BitMap1,320,256,3  ;setting up 8 color bmp
BitMap0,320,256,3  ;another one, for double buffer display

re0.w=2        ;red0bmap = 2 (new fake number)
gn0.w=3
bl0.w=4

re1.w=5        ;red1bmap = 5 (new fake number)
gn1.w=6
bl1.w=7

BitPlanesBitMap0,re0,%001    ;binary for better understanding
BitPlanesBitMap0,gn0,%010    ; bitplane masking!!
BitPlanesBitMap0,bl0,%100    ; :-)

BitPlanesBitMap1,re1,%001    ;same for dbl bmap…
BitPlanesBitMap1,gn1,%010
BitPlanesBitMap1,bl1,%100

VWait50
BLITZ
Slice0,44,3            ;simple 8 color display

;setting combined colours
RGB1,15,0,0    ;red
RGB2,0,15,0    ;green
RGB3,15,15,0   ;yellow
RGB4,0,0,15;   ;blue
RGB5,15,0,15;  ;purple
RGB6,0,15,15;  ;turquoise
RGB7,15,15,15; ;white

;now let’s plot some stuff !!
Use BitMap   re0: Boxf 20, 20, 150, 100,1
Use BitMap   gn0: Circlef 100,100,50,40,1
BitMapOutput bl0: Locate0,10:Print "THIS IS THE BLUE COMPONENT"

Show0
;dbuffer commented, because nothing is happening yet!
While Joyb(0)=0
; Use BitMap db.b
VWait
; Cls    

;......do something

; Show db
; db=1-db
Wend
End

Easy, oder?

Merken:
wenn man normalerweise (wegen Doublebuffer) auf BMap0 bzw. BMap1 malen würde, benutzt man nun stattdessen BMap re0, BMap gn0, BMap bl0 oder eben BMap re1....alles klar? Wink
Hier ist schonmal ein Beispiel eines, ehm, Würfels. Ok, der ist nicht echt voll, weil ich das noch nicht raus hatte mit dem Tauschen der faces, aber was solls. RGB geht jedenfalls. :lol:
Wenn man in eine Fake-Bitmap schreibt oder malt, kann man natürlich nur Farbe 1 verwenden, denn es gibt ja nur eine Bitplane!! Ansonsten gibt es un(?)gewollte Effekte...
Darum im obigen Beispiel eben :
Code:
Use BitMap   re0: Boxf 20, 20, 150, 100,1
für das Rechteck im roten Anteil.

Wir brauchen im beschriebenen Fall, also RGB, immer 8 (7) Farben, da die Kombination der Grundfarben eben 2^3=8 Farben erfordert. Schwarz ist hier Farbe 0.

Wenn man z.B. Stereoskopie machen will, kann man die Farben insgesamt Richtung Grün bzw. Violett verschieben, allerdings braucht man dann eigentlich mehr Bitplanes (AGA), weil man sonst zuviele Kombinationen verliert.
Die normalen Bitmaps und die Farben, die im Display gesetzt sind, gelten natürlich weiterhin.

Also ein
Code:
Use Bitmap0: Box 20,20,100,120,7
malt ein weißes Rechteck auf Bitmap 0.
* nur für ChipSet geeignet.
Ja, richtig! Muß man ja bei BlitzBasic nicht extra dazuschreiben, SLICE ist eindeutig Classic Amiga, dachte ich. Dafür ist KEINE FPU nötig! ;-)