Unschärfeeffekte für UGUI sind auch für Atlas -Bilder mit dynamischen Schriftarten effektiv.
Ein Unschärfeeffekt für UGUI, der auch für Atlas -Bilder einschließlich dynamischer Schriftarten effektiv ist.
<< Beschreibung | WebGL -Demo | Herunterladen | Verwendung | Entwicklungsnotiz >>

Dieses Plugin reduziert gemeinsame Artefakte (= Nebenprodukte, Rauschen), die in Unschärfeneffekten für UGUI auftreten können.
Wir werden die folgenden zwei Artefakte lösen:
Hinweis: Der Artefaktname ist angemessen.
Dieses Plug-In reduziert gemeinsame Artefakte im Unschärfeneffekt für UGUI.
Dieses Plug-In löst die folgenden zwei Artefakte.
Hinweis: Ich weiß nicht, ob der Name des Artefakts ein genauer Name ist;)

Der Unschärfeeffekt kombiniert mehrere Texel mit einem Fragment -Shader basierend auf dem Kernel.
Artefakte treten auf, wenn sie auf UVs in benachbarten Sprites verweisen, aufgrund großer Kerngrößen oder kleinen Polstergrößen im Atlas.
Der Unschärfeeffekt kombiniert mehrere Texel basierend auf der Kernelgröße im Fragment -Shader.
Artefakte treten auf, wenn die UVs benachbarter Sprites verweisen, beispielsweise weil die Kernelgröße groß ist oder die Polstergröße des Atlas klein ist.

Masken UVs, auf die für jeden Scheitelpunkt verwiesen werden kann.
Für UI passt es zum UV -Bereich von Sprites und Charakteren überein.
Wenn Sie sich auf einen nicht maskierten UV beziehen (= Wenn Sie sich auf ein UV-Außenbereich beziehen), wird der Texel die Farbe (0,0,0,0) der Farbe zurückgeben.
Für jeden Scheitelpunkt können UVs, auf die sich Scheitelpunkte verweisen können.
Im Fall von UI -Elementen entspricht es mit dem UV -Bereich des Sprite oder dem Charakter.
Bei der Bezugnahme auf nicht maskierte UV gibt der Texel die Farbe zurück (0,0,0,0) .
float4 mask; // xy: minimum uv, zw: maximum uv.
float2 uv;
float4 color = tex2D(_MainTex, uv)
* step(mask.x, uv.x)
* step(mask.y, uv.y)
* step(uv.x, mask.z)
* step(uv.y, mask.w);

Die Pixel, die mit dem Fragment -Shader gezeichnet werden können, werden durch Rasterisierung erzeugt.
Normalerweise zieht der UI -Shader keine Bereiche außerhalb des angegebenen Netzes.
Wenn die Kerngröße groß ist oder der Rand des Sprites klein ist, treten "Artefakte, die in Mesh abgeschnitten zu sein scheinen".
Pixel, die mit Fragment -Shadern gerendert werden können, werden durch Rasterisierung erzeugt.
In den meisten Fällen zieht der UI -Shader keine Bereiche außerhalb des gegebenen Netzes.
Wenn die Kerngröße groß ist oder der Rand des Sprites klein ist, treten "Artefakte, die wie durch Mesh abgeschnitten aussehen".

Die Scheitelpunkte an der Peripherie werden mit den UVs draußen erweitert und erweitern den Zeichenbereich.
Diese Lösung erhöht nicht die Anzahl der Scheitelpunkte. Es ist auch effektiv für "9-Spötter" und "Fliesen".
Erweitern Sie den Zeichenbereich, indem Sie die Koordinaten und UV der Eckpunkte auf der Außenseite erweitern.
Diese Lösung erhöht nicht die Anzahl der Scheitelpunkte. Es ist auch für "9-Slice" und "Tiled" erhältlich.
WebGL -Demo
Assets Import Package > Custom Package .TexCoord1 -Kanal der Leinwand. Siehe auch Entwicklungsnotiz.UIBlurringAtlas -Komponente zum UI -Element (Bild, Rawimage, Text usw.) von Add Component im Inspektor hinzu. In Unity 5.6+ unterstützt Canvas zusätzliche Shader -Kanäle .
Bitte aktivieren Sie TexCoord1 , um dieses Plugin zu verwenden. 
Sehen Sie Uieffect.
Dieses Plugin verwendet 12 Bit (4096 Schritte) für jedes Element des UV -Bereichs (uMin, vMin, uMax, vMax) und weist es dem Scheitelpunkt UV1 zu. (Aus diesem Grund sollte TexCoord1 -Kanal in Einheit 5.6+ aktiviert werden.)
Dieses Plugin verwendet 12 Bit (4096 Schritte) für jedes Element des UV -Bereichs (uMin, vMin, uMax, vMax) und weist es dem Scheitelpunkt UV1 zu. (In Unity 5.6+ ist es der Grund, TexCoord 1 -Kanal zu aktivieren.)
uiVertex.uv1 = new Vector2( Packer.ToFloat(uMin, vMin), Packer.ToFloat(uMax, vMax) );
Durch die Anwendung dieser Technik können Ausdrücke mit UV -Verschiebungen (Glüheffekte, weiche Schatten usw.) auch nur für Ugui -Elemente verwendet werden.
Wir werden die Glow -Effekte später freigeben.
Durch die Anwendung dieser Technik können Effekte mit UV -Verschiebung (z. B. Glüheffekt oder weichem Schatten) für ein einzelnes UGui -Element verwendet werden.
Ich werde den Glüheffekt später freigeben.
(WIP) 
Mob-Sakai