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