alphawert bei WritePixel(fast)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Freeman

Betreff: alphawert bei WritePixel(fast)

BeitragMi, Sep 01, 2004 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
hi


ich möchte grad eine Lichtquelle erzeugen und möchte dafür das der alphawert des Pixels immer höher wird. Doch ich hab das problem das ich es irgendwie nich hinbekomm den Alpahwert einzustellen. Könnt ihr mir da mal helfen? Danke

FrEeMaN
 

Dreamora

BeitragMi, Sep 01, 2004 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist kein Problem. Einfach den Farbwert ( 0 - 255 ) nehmen und ihn per shl 24 der Farbe hinzufügen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Keimax

BeitragMi, Sep 01, 2004 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
was ist shl?

cu
XP3000, FX6600, 1024DDR, BB2d @ W2k,
- > Diesen Text bitte nicht beachten <-

Freeman

BeitragMi, Sep 01, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
kannste ma nen beispiel machen,weil ich nur weis das dieses Shl den byte wert nach links schiebt, bitte ma nen kleines beispiel machen.danke, sorry für mein unwissen

Freeman
 

hot-bit

Gast

BeitragMi, Sep 01, 2004 20:53
Antworten mit Zitat
Hoi,

SHL = Shift Left = multipliziere * 2

Die Bit-Werte werden nach links verschoben.

SHR ist das gleiche Verfahren, nur das nach rechts verschoben wird, und das entspricht einer Division durch 2.

Toni

Freeman

BeitragMi, Sep 01, 2004 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
damit hat sich meine Frage aba immer nochnich geklärt, da ich nich weis wie ich das machen muss, ne hilfe oda nen codeschnippsel wäre echt hilfreich

Freeman

D2006

Administrator

BeitragMi, Sep 01, 2004 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Bin ich Up-to-Date wenn ich sage, dass der Alphawert sinnlos ist, da B2D und B+ das nicht unterstützen ??? Wenn ich mich nicht irre, geht das doch sogar bei B3D nicht, oder?

Lass mich gern eines besseren belehren (sogar sehr gern).

MfG
 

David

BeitragDo, Sep 02, 2004 10:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@Hot-Bit:

Wie? Multipliziere * 2?
Kannst du mir das mal genau erklähren?

Code: [AUSKLAPPEN]

11110000 = 240
240 shl 2 = 960 = 1111000000


und nicht 480 oder?
Oder hab ich dich nur falsch verstanden?

grüße
http://bl4ckd0g.funpic.de

Hubsi

BeitragDo, Sep 02, 2004 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast Du wohl falsch verstanden:Code: [AUSKLAPPEN]
Print 240 Shl 1
WaitKey()
End
Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

hot-bit

Gast

BeitragDo, Sep 02, 2004 10:23
Antworten mit Zitat
Hoi,

SHL 2 bedeutet ja : 2 mal nach links verschieben. Dann ist das Ergebnis ja korrekt.

240 Shl 1 = 480

Toni
 

David

BeitragDo, Sep 02, 2004 10:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ah! Shr mit 1...
Ok, dann ist alles klar. Smile

grüße
http://bl4ckd0g.funpic.de

Freeman

BeitragDo, Sep 02, 2004 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
damit ist meine Frage aber immer noch nicht geklärt. Ich wäre dafür wenn mir ma wer helfen könnte Smile

sbrog

BeitragDo, Sep 02, 2004 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
so ganz scheint das mit dem alphawert nicht zu klappen. ch habe gerade was ausprobiert, was eingentlich gehen müsste. Dabei wird ein Rotes Dreieck mit alpha 255 gemalt und dann der Alphawert eingelesen. Nach dem einlesen hat der Alphawert -1. Das ganze klappt zwar nicht, sollte aber zeigen ,wie man den alphawert benutzt.
Wäre auch ganz nett, wenn einer sagen kann, warum es nicht funktioniert

Code: [AUSKLAPPEN]


Graphics 800,600

bild = CreateImage (400,300)
SetBuffer ImageBuffer(bild)

alpha = 255
rot = 255
gruen = 0
blau = 0
LockBuffer
For i = 0 To 400
   For j = 0 To 300
   rgb=alpha*$1000000 + rot*$10000 + gruen*$100 + blau  ;Die werte werden zu einem Hexwert zusammengefasst
   WritePixel i,j,rgb ;Das ganze Bild wird mit Roten pixeln gezeichnet und dem Alphawert 255
   
   Next
Next
UnlockBuffer



 

SetBuffer FrontBuffer()

DrawImage bild,0,0
;Das erste PIxel lesen
rgb = ReadPixel (1,1)                      ;Das Pixel lesen

alpha=(rgb And $FF000000)/$1000000        ;Den Alphawert rausfiltern
rot=(rgb And $FF0000)/$10000
gruen=(rgb And $FF00)/$100
blau=rgb And $FF

Text 410,100,alpha    ;sollte 255 sein

WaitKey
 

Dreamora

BeitragDo, Sep 02, 2004 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Frage wurde mit dem 1ten Posting bereits geklärt.
Nun liegt es an dir dich mit Bitoperationen auseinander zu setzen, wenn du die antwort nicht verstehst.


Code: [AUSKLAPPEN]

alpha = 128
writepixelfast x, y, farbe or (alpha shl 24)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Freeman

BeitragDo, Sep 02, 2004 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe deine Variante ausprobiert und muss leider sagen das sie nicht den gewünschten effekt erziehlt.
Mein Problem : ich habe eine Straßenlaterne die in der Nacht einen Lichtstrahl wirft, klar. Ich hatte zuerst versucht den Lichtstrahl per pic zu machen , allerdings wird das ganze nicht so in B3D/BB dargestellt wie ich mir das wünsche, es sieht dann nichtmal annähernt nach transparenz aus. Dann hab ich gelesen das man mit WritePixel(Fast) sowas auch realisieren könnte, das die farbstärke und Alphawert von oben nach unten immer mehr abnimmt, bis die lampe dann 100%ig zu sehen ist, doch so geht das nich. kann mir wer helfen?

oder hat wer ne gute idee?

FrEeMaN
 

Dreamora

BeitragDo, Sep 02, 2004 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
In 2D wirst du kein Alpha hinbekommen ohne eine entsprechende Lib da Blitz im 2D Modus kein Alpha kennt.

Es hat übrigens gleich einen Thread weiter unten nen funktionierenden Code der zwei Bilder entsprechend mischt.
https://www.blitzforum.de/viewtopic.php?t=5579
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group