alphawert bei WritePixel(fast)
Übersicht

![]() |
FreemanBetreff: alphawert bei WritePixel(fast) |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
was ist shl?
cu |
||
XP3000, FX6600, 1024DDR, BB2d @ W2k,
- > Diesen Text bitte nicht beachten <- |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
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-bitGast |
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast Du wohl falsch verstanden:Code: [AUSKLAPPEN] Print 240 Shl 1
WaitKey() End ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
hot-bitGast |
![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ah! Shr mit 1... Ok, dann ist alles klar. ![]() grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
damit ist meine Frage aber immer noch nicht geklärt. Ich wäre dafür wenn mir ma wer helfen könnte ![]() |
||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group