alphablending

___ answer2205897 ___
  

0 & lt; Alpha & lt; 1 kommen weiß heraus

Welche Bereiche erwarten Sie hier?

Alle Werte liegen im Bereich von 0.0 und 1.0 ... Pixel-Shader funktionieren nicht in diskreten 256-Farben-Bereichen, sie sind Fließkommazahlen, wobei 1.0 die maximale Intensität ist.

Wenn Ihre Berechnungen die r / g / b Werte auf & gt; 1.0 setzen, erhalten Sie Weiß ...

Ссылка

    
___ qstnhdr ___ Umgang mit Alpha-Kanal im WPF-Pixel-Shader-Effekt ___ answer2230934 ___

Dude Ich arbeite an einem XNA-Spiel, und ich musste einen Graustufenpixel-Shader verwenden und ich habe das gleiche Problem, das du hast. Ich weiß nicht, ob Sie mit der XNA-Umgebung vertraut sind oder nicht, aber ich habe das Problem gelöst, indem ich die SpriteBatch Zeichnung SpriteBlendMode Von SpriteBlendMode.None bis SpriteBlendMode.AlphaBlend hoffe ich, dass Ihnen das den Grund dafür erklärt.

Grüße,

    
___ tag123wpf ___ Windows Presentation Foundation oder WPF ist ein Subsystem zum Rendern von Benutzeroberflächen in Windows-basierten Anwendungen. ___ tag123pixel ___ Ein Pixel ist die kleinste Einheit, die auf einem Display dargestellt oder gesteuert werden kann. Das Wort Pixel wird von der Phrase "Bildelement" abgeleitet. ___ tag123alpblending ___ Alpha Blending ist eine konvexe Kombination aus einer transluzenten Vordergrundfarbe mit einer Hintergrundfarbe, die Transparenzeffekte ermöglicht. ___ tag123pixelshader ___ Pixel-Shader, auch Fragment-Shader genannt, berechnen Farbe und andere Attribute jedes Fragments. Pixel-Shader reichen von der Ausgabe der gleichen Farbe über das Anwenden eines Beleuchtungswerts bis hin zum Bump-Mapping, Schatten, Glanzlichtern, Transluzenz und anderen Phänomenen. ___ answer2240884 ___

Nach etwas mehr Web-Suche entdeckte ich das Stück, das ich vermisste.

Nach einem Artikel auf MSDN : "WPF verwendet intern mehrfach vorvervielfachtes Alpha für eine Reihe von Leistungsgründen, also interpretieren wir auch die Farbwerte im benutzerdefinierten Pixelshader."

Der Fix ist also eine Multiplikation mit Alpha:

%Vor%

Und jetzt sieht meine Ausgabe so aus, wie ich es erwarte.

    
___ qstntxt ___

Gibt es etwas Ungewöhnliches daran, wie die Alpha-Komponente in einem Pixelshader gehandhabt wird? Ich habe eine WPF-Anwendung, für die mein Künstler mir Graustufenbilder gibt, die als Hintergrund verwendet werden können, und die Anwendung koloriert diese Bilder entsprechend dem aktuellen Zustand. Also schrieb ich einen Pixelshader (unter Verwendung der WPF Pixel Shader Effects Library-Infrastruktur), um ihn als Effekt auf ein Image-Element zu verwenden. Der Shader nimmt eine Farbe als Parameter, die er in HSL umwandelt, damit er die Helligkeit manipulieren kann. Dann berechnet er für jedes Graupixel eine Farbe, deren Helligkeit zwischen dem Farbparameter und Weiß proportional zur Helligkeit des Quellenpixels interpoliert wird.

%Vor%

Das funktioniert gut bei den Pixeln, bei denen Alpha = 1 ist. Aber wo Alpha = 0 ist, werden die resultierenden Pixel weiß, anstatt dass der Hintergrund des Fensters durchscheinen würde. Also habe ich eine kleine Änderung vorgenommen:

%Vor%

und jetzt sind die transparenten Teile wirklich transparent. Warum? Warum hat die %code% -Anweisung in der ersten Version das nicht erreicht? Leider ist dies auch nur eine teilweise Lösung, weil es mir wie die Pixel mit 0 & lt; Alpha & lt; 1 kommen weiß heraus.

Weiß jemand, was ich über Alpha nicht verstehe?

    
___
2
Antworten

Was würde OpenGL Alpha Blending Unterschiede zwischen Windows und OS X verursachen?

Es gibt 3 Hintergründe im unteren Bild: schwarz weiß & amp; grau Es gibt 3 Balken auf jedem: schwarz - & gt; transparent, weiß - & gt; transparent und Farben - & gt; transparent Ich verwende glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPH...
11.02.2011, 06:02
2
Antworten

Antialiased Text auf transparenter Bitmap

Ich möchte antialiased Text auf einer transparenten Bitmap zeichnen und das Antialiasing als Alpha-Blender-Pixel gezeichnet haben. Auf diese Weise kann ich die Bitmap auf eine beliebige Farboberfläche (oder ein Bild) zeichnen, und das Antialiasi...
17.08.2009, 23:39
1
Antwort

Alpha-Compositing-Algorithmus (Mischmodi)

Ich versuche, in SASS zu meinem eigenen Vergnügen Mischmodi aus der PDF-Spezifikation zu implementieren. PDF-Spezifikation: Zypern Seite 322 ist der Alpha-Compositing-Abschnitt. Die Eingabewerte sind im RGBA-Format, aber jetzt versuch...
15.09.2011, 22:38
5
Antworten

Windows Forms: Eine Cursor-Bitmap teilweise transparent machen

Ich möchte teilweise transparente Bilder in Drag / Drop-Operationen verwenden. Dies ist alles eingerichtet und funktioniert gut, aber die eigentliche Transformation zu Transparenz hat eine seltsame Nebenwirkung. Aus irgendeinem Grund scheinen di...
06.08.2009, 00:52
1
Antwort

DirectX 11 Alpha Blending funktioniert nicht

Okay, ich habe versucht, Alpha Blending in meiner 3D-Anwendung zu verwenden, aber es will einfach nicht passieren. Ich zeichne 2D-Bilder mit einer orthogonalen Projektion ganz am Ende der Rendering-Schleife (Tiefenprüfung bleibt aktiviert) und d...
05.08.2012, 03:20
3
Antworten

Umgang mit Alpha-Kanal im WPF-Pixel-Shader-Effekt

Gibt es etwas Ungewöhnliches daran, wie die Alpha-Komponente in einem Pixelshader gehandhabt wird? Ich habe eine WPF-Anwendung, für die mein Künstler mir Graustufenbilder gibt, die als Hintergrund verwendet werden können, und die Anwendung kolor...
05.02.2010, 03:57