Transperenz
Übersicht

![]() |
pirahniBetreff: Transperenz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, kennt jemand eine Funktion mit der man ein Bild transparent (also sowas wie 50% durchsichtigkeit oder so) anzeigen kann? Freu mich auf Hilfe. | ||
![]() |
Curtis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also wenn ich die Forensuche benutze und dort "Transparenz" eingebe, stehen da ganz viele ähnliche Beiträge. | ||
Warum alleine proggen? Komm in unser Team!
Curtis @ sysprofile.de |
![]() |
SYSThern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Curtis hat Recht!!!!
Pirahni!! Forensuche benutzen... Draw3D https://www.blitzforum.de/foru...hp?t=21659 mfG SYSThern [/url] |
||
Tools and Programms
-------------------- www.systhern.de |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wenn man nur 2D hat, muss man sich so eine Funktion selber schreiben. Das wird allerdings nicht echtzeittauglich werden.
Siehe dazu ReadPixel ![]() ![]() Kurze Erklärung: Du hast einen Hintergrund und einen Vordergrund, beide liest du pixelweise aus und rechnest dann etwa so: neue_farbe=(hintergrundfarbe+vordergrundfarbe*transparenz)/2 Und diese Farbe schreibst du wiederum in das Hintergrundbild oder den Backbuffer. Achja, transparenz von 0.0 bis 1.0 angeben) Viel Spass beim Tüfteln. Es gibt übrigens auch eine Möglichkeit, 50% Transparenz echtzeittauglich darzustellen in BB2D, aber das sieht nicht sehr toll aus. Dazu ersetzt man einfach jedes 2. Pixel des "transparenten" Bildes durch die Maskfarbe und dann hat man ein Pixel-Gitter, welches bei nicht allzu genauer Betrachtung 50% transparent ist. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
funzt nett richtig, denn bei sehr dunkler transperenz wird es vor weißem Hintergrund schwarz angezeigt. Hier die Formel, berichtigt mich bei Fehlern in der Formel, die den Fehler verursachen hätten können.
Code: [AUSKLAPPEN] r#=Floor#(((rgb And $FF0000) Shr 16)+part\R*part\Verglimmung#)/2
Das ganze ist eine Art feuerwerks- und partikelsystem. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du weißt aber schon, dass ein Partikelsystem relativ viel Systemrecourcen benötigt und eine pixelweise Einzelberechnung der transparenz absolut nicht Echtzeittauglich sein kann?
Eingeproggt hat bereits Lösungsansätze gezeigt. Wenn man Bilder ''mal eben'' transparent anzeigen will, dann kann man es mit ReadPixelFast und WritePixelFast berechnen. Für Echtzeittaugliche Sachen und ohne Blitz3D dabei zu benutzen, sollte man jedes zweite Pixel im Karomuster transparent machen. Die transparente Farbe wird dann per MaskImage maskiert. Soweit sind allerdings dann nur 50% Transparenz sinnvoll. Außerdem sieht es bei schlechteren Flachbildschirmen grausam aus, da diese so kontrastreiche Pixelmuster nicht vernünftig anzeigen können. Falls du Blitz3D hast, solltest du das ganze dann mit Sprites, meiner Draw3D oder einer anderen Grafikengine wie FastImage machen. Zu deiner Frage: ''r#'' sollte als Ergebnis wieder ''Shl 16'' bekommen. Wobei ''r'' ja nicht Float sein sollte, da WritePixelFast ja nur ganze Zahlen verarbeiten kann. Eine Float bedeutet mehr oder weniger, dass alle vier Bytes meistens bereits Bitwerte beinhalten. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe es jetzt raus, mit einer anderen Formel, die ich hier für spätere leser veröfentlichen möcht^^ (Klappt auch mit niedriger tranzperenz vor weißem Hintergrund.)
Code: [AUSKLAPPEN] farbe=farbehintergrund+(farbevordergrund-farbehintergrund)*transperenz Auch hier muss die tranzperenz zwischen 0-garnicht sichtbar und 1-komplett sichtbar liegen.
|
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group