mirror of
https://github.com/BlackMATov/unity-flash-tools.git
synced 2025-12-15 12:29:49 +07:00
remove external alpha IF from shaders
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
* Fix locked elements problem
|
* Fix locked elements problem
|
||||||
* Fix optimizator bitmap trim problems
|
* Fix optimizator bitmap trim problems
|
||||||
* Add shape tween warning
|
* Add shape tween warning
|
||||||
|
* Remove excess "if" instruction from shaders
|
||||||
|
|
||||||
###### Version 1.3.7
|
###### Version 1.3.7
|
||||||
* Fix multiple import
|
* Fix multiple import
|
||||||
|
|||||||
@@ -135,9 +135,8 @@ inline swf_mask_v2f_t swf_mask_vert(swf_mask_appdata_t IN) {
|
|||||||
|
|
||||||
inline fixed4 swf_frag(swf_v2f_t IN) : SV_Target {
|
inline fixed4 swf_frag(swf_v2f_t IN) : SV_Target {
|
||||||
fixed4 c = tex2D(_MainTex, IN.uv);
|
fixed4 c = tex2D(_MainTex, IN.uv);
|
||||||
if ( _ExternalAlpha ) {
|
fixed4 a = tex2D(_AlphaTex, IN.uv).r;
|
||||||
c.a *= tex2D(_AlphaTex, IN.uv).r;
|
c.a = lerp(c.a, a.r, _ExternalAlpha);
|
||||||
}
|
|
||||||
if ( c.a > 0.01 ) {
|
if ( c.a > 0.01 ) {
|
||||||
c = c * IN.mulcolor + IN.addcolor;
|
c = c * IN.mulcolor + IN.addcolor;
|
||||||
}
|
}
|
||||||
@@ -147,9 +146,8 @@ inline fixed4 swf_frag(swf_v2f_t IN) : SV_Target {
|
|||||||
|
|
||||||
inline fixed4 swf_grab_frag(swf_grab_v2f_t IN) : SV_Target {
|
inline fixed4 swf_grab_frag(swf_grab_v2f_t IN) : SV_Target {
|
||||||
fixed4 c = tex2D(_MainTex, IN.uv);
|
fixed4 c = tex2D(_MainTex, IN.uv);
|
||||||
if ( _ExternalAlpha ) {
|
fixed4 a = tex2D(_AlphaTex, IN.uv).r;
|
||||||
c.a *= tex2D(_AlphaTex, IN.uv).r;
|
c.a = lerp(c.a, a.r, _ExternalAlpha);
|
||||||
}
|
|
||||||
if ( c.a > 0.01 ) {
|
if ( c.a > 0.01 ) {
|
||||||
c = c * IN.mulcolor + IN.addcolor;
|
c = c * IN.mulcolor + IN.addcolor;
|
||||||
c = grab_blend(_GrabTexture, IN.screenpos, c);
|
c = grab_blend(_GrabTexture, IN.screenpos, c);
|
||||||
@@ -160,9 +158,8 @@ inline fixed4 swf_grab_frag(swf_grab_v2f_t IN) : SV_Target {
|
|||||||
|
|
||||||
inline fixed4 swf_mask_frag(swf_mask_v2f_t IN) : SV_Target {
|
inline fixed4 swf_mask_frag(swf_mask_v2f_t IN) : SV_Target {
|
||||||
fixed4 c = tex2D(_MainTex, IN.uv);
|
fixed4 c = tex2D(_MainTex, IN.uv);
|
||||||
if ( _ExternalAlpha ) {
|
fixed4 a = tex2D(_AlphaTex, IN.uv).r;
|
||||||
c.a *= tex2D(_AlphaTex, IN.uv).r;
|
c.a = lerp(c.a, a.r, _ExternalAlpha);
|
||||||
}
|
|
||||||
if ( c.a < 0.01 ) {
|
if ( c.a < 0.01 ) {
|
||||||
discard;
|
discard;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,13 +174,14 @@ namespace FTEditor.Editors {
|
|||||||
if ( isTargetValidForPreview ) {
|
if ( isTargetValidForPreview ) {
|
||||||
_previewUtils.BeginPreview(r, background);
|
_previewUtils.BeginPreview(r, background);
|
||||||
{
|
{
|
||||||
if ( targetAtlas ) {
|
_matPropBlock.SetTexture(
|
||||||
_matPropBlock.SetTexture("_MainTex", targetAtlas);
|
"_MainTex",
|
||||||
}
|
targetAtlas ? targetAtlas : Texture2D.whiteTexture);
|
||||||
if ( targetAtlasA ) {
|
if ( targetAtlasA ) {
|
||||||
_matPropBlock.SetTexture("_AlphaTex", targetAtlasA);
|
_matPropBlock.SetTexture("_AlphaTex", targetAtlasA);
|
||||||
_matPropBlock.SetFloat("_ExternalAlpha", 1.0f);
|
_matPropBlock.SetFloat("_ExternalAlpha", 1.0f);
|
||||||
} else {
|
} else {
|
||||||
|
_matPropBlock.SetTexture("_AlphaTex", Texture2D.whiteTexture);
|
||||||
_matPropBlock.SetFloat("_ExternalAlpha", 0.0f);
|
_matPropBlock.SetFloat("_ExternalAlpha", 0.0f);
|
||||||
}
|
}
|
||||||
ConfigureCameraForSequence(_previewUtils.m_Camera, targetSequence);
|
ConfigureCameraForSequence(_previewUtils.m_Camera, targetSequence);
|
||||||
|
|||||||
@@ -348,13 +348,14 @@ namespace FTRuntime {
|
|||||||
var sprite = clip ? clip.Sprite : null;
|
var sprite = clip ? clip.Sprite : null;
|
||||||
var atlas = sprite && sprite.texture ? sprite.texture : Texture2D.whiteTexture;
|
var atlas = sprite && sprite.texture ? sprite.texture : Texture2D.whiteTexture;
|
||||||
var atlasA = sprite ? sprite.associatedAlphaSplitTexture : null;
|
var atlasA = sprite ? sprite.associatedAlphaSplitTexture : null;
|
||||||
if ( atlas ) {
|
_curPropBlock.SetTexture(
|
||||||
_curPropBlock.SetTexture("_MainTex", atlas);
|
"_MainTex",
|
||||||
}
|
atlas ? atlas : Texture2D.whiteTexture);
|
||||||
if ( atlasA ) {
|
if ( atlasA ) {
|
||||||
_curPropBlock.SetTexture("_AlphaTex", atlasA);
|
_curPropBlock.SetTexture("_AlphaTex", atlasA);
|
||||||
_curPropBlock.SetFloat("_ExternalAlpha", 1.0f);
|
_curPropBlock.SetFloat("_ExternalAlpha", 1.0f);
|
||||||
} else {
|
} else {
|
||||||
|
_curPropBlock.SetTexture("_AlphaTex", Texture2D.whiteTexture);
|
||||||
_curPropBlock.SetFloat("_ExternalAlpha", 0.0f);
|
_curPropBlock.SetFloat("_ExternalAlpha", 0.0f);
|
||||||
}
|
}
|
||||||
_meshRenderer.SetPropertyBlock(_curPropBlock);
|
_meshRenderer.SetPropertyBlock(_curPropBlock);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ https://gist.github.com/talecrafter/111ea3345911bd238f4998b4d5a04bf3
|
|||||||
*** Улучшения
|
*** Улучшения
|
||||||
**** DONE Ворнинг на shape-tween
|
**** DONE Ворнинг на shape-tween
|
||||||
**** TODO Интеграция с автобилдами
|
**** TODO Интеграция с автобилдами
|
||||||
**** TODO Избавиться от условия на _ExternalAlpha
|
**** DONE Избавиться от условия на _ExternalAlpha
|
||||||
**** TODO Добавить возможность брать bounds у клипа
|
**** TODO Добавить возможность брать bounds у клипа
|
||||||
**** TODO Не реимпортить на каждый чих анимацию, хранить хэш
|
**** TODO Не реимпортить на каждый чих анимацию, хранить хэш
|
||||||
dipyalov: фишка в том, что swf обновился, но и собранные ассеты-то тоже обновились
|
dipyalov: фишка в том, что swf обновился, но и собранные ассеты-то тоже обновились
|
||||||
|
|||||||
Reference in New Issue
Block a user