Transparenz, Licht, Funken usw.
Übersicht

![]() |
koril-kBetreff: Transparenz, Licht, Funken usw. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Demnächst möchte ich mich gern mit Lichteffekten vertraut machen, also Funken oder Transparenz (im Sinne von z.B. farbigem Glas) oder auch zuckenden Blitzen. Ich bin diesbezüglich allerdings gänzlich unerfahren und wollte euch mal fragen, was an Lichteffekten in einem 2D-System wie BlitzMax in Echtzeit möglich ist und wie die grundlegenden Ansätze dafür sind (über Details zerbreche ich mir gern selbst den Kopf). | ||
TheGamePope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also. Bei lichtefekten, wären vorrausichtlich masken mit einer transparenz das beste. Transparenz geht volgendermasen:
BlitzMax: [AUSKLAPPEN]
Bei funken oder so kann ich dir leider nicht helfen. Das hier ist übrigens nur ein kurz ausgedachte grundidee |
||
- Zuletzt bearbeitet von TheGamePope am Mi, Jul 28, 2010 15:38, insgesamt 2-mal bearbeitet
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
für licht solltest du den Blendmode aber eher auf LIGHTBLEND statt ALPHABLEND setzen | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
TheGamePope |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Geändert | ||
![]() |
koril-k |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, das scheint sehr einfach zu sein!
So wie ich das beim rumprobieren (fand leider keine nützlichen Infos in der Doku) gesehen habe, bestimmt SHADEBLEND eine Art Lichtfilter, d.h. zeichne ich mit SHADEBLEND einen Pixel in der Farbe r,g,b (in Prozent umgedacht) so werden vom überdeckten Pixel (R,G,B) (in 0 bis 255) die Farbanteile r% von R, g% von G und b% von B als Resultat verwendet, so wie man es eben z.B. von farbigem Glas kennt. Die genaue Funktionsweise von LIGHTBLEND und ALPHABLEND (vor allem der inhaltliche Unterschied / wann nutze ich was?) ist mir nicht ganz aufgegangen. Zwar stehen in der Hilfe kurze Notizen der Form "ALPHABLEND Pixels are alpha blended with existing backbuffer pixels" aber daraus werde ich nicht schlau. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier mal eine kleine Beschreibung, was was macht:
Code: [AUSKLAPPEN] SOLIDBLEND: Alle Pixel werden ohne jede Transparenz gezeichnet.
MASKBLEND: Es gibt nur zwei Tranzparenzstufen: 100% transparent und undurchsichtig ALPHABLEND: Es werden alle Transparenzstufen entsprechend dargestellt. (Der Alphawert ist die Undurchsichtigkeit.) LIGHTBLEND: Die Farbwerte des Bildes werden beim Zeichnen auf die der Zeichenstelle aufaddiert. SHADEBLEND: Die Farbwerte des Bildes werden mit denen der Zeichenstelle multipliziert. (Man geht hier von Werten von 0 bis 1 aus.) MASKBLEND kann man eigentlich nur gebrauchen, wenn einem das Zeichnen mit Transparenz zu zu verwaschenen Ergebnissen führt. (z.B. bei Schriften) ALPHABLEND ist vor allem wichtig, wenn man Bilder mit transparenten Stellen zeichnen möchte. LIGHTBLEND und SHADEBLEND kann man für verschiedene Effekte verwenden. Ersteres würde ich für geisterhafte Erscheinungen und - dem Namen entsprechend - für leuchtende Objekte verwenden. SHADEBLEND würde ich zum Beispiel zum Erstellen von einer Art Beleuchtung nutzen: Als erstes rendert man alle Lichter mit LIGHTBLEND zusammen. Das Ergebnis speichert man mit GrabImage in einem Bild. Cls. Dann zeichnet man seine Objekte und danach zeichnet man das vorher berechnete Lichtbild mit SHADEBLEND darüber. -> Man hat ein beleuchtetes Bild. Edit: Ein Glaseffekt besteht eigentlich aus zwei Teilen. Mit SHADEBLEND als ersten Schritt bestimmt man den Anteil des Lichtes, der durch das Glas scheint. Mit LIGHTBLEND als zweiten Schritt bestimmt man den Anteil des Lichtes, welcher von dem Glas reflektiert wird. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group