0
이 셰이더는 모바일에서 작동하지만 편집기에서는 분홍색으로 나타납니다. 이전에는 정상적으로 작동했지만 모바일에 구현 한 후에는 분홍색으로 표시되기 시작합니다. 오류는 없지만 경고합니다. Unity 2017.2를 사용하고 있습니다.블러 셰이더 (Grab pass)는 에디터에서 분홍색으로 보이지만 모바일에서 작동합니다.
또한 프로젝트를 다시 열어 봅니다. 그러나 여전히 동일합니다.
때문에 그것의Shader "TFTM/Blur" {
Properties {
_blurSizeXY("BlurSizeXY", Range(0,10)) = 0
}
SubShader {
// Draw ourselves after all opaque geometry
Tags { "Queue" = "Transparent" }
// Grab the screen behind the object into _GrabTexture
GrabPass { }
// Render the object with the texture generated above
Pass {
CGPROGRAM
#pragma debug
#pragma vertex vert
#pragma fragment frag
#ifndef SHADER_API_D3D11
#pragma target 3.0
#else
#pragma target 4.0
#endif
sampler2D _GrabTexture : register(s0);
float _blurSizeXY;
struct data {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 position : POSITION;
float4 screenPos : TEXCOORD0;
};
v2f vert(data i){
v2f o;
o.position = UnityObjectToClipPos(i.vertex);
o.screenPos = o.position;
return o;
}
half4 frag(v2f i) : COLOR
{
float2 screenPos = i.screenPos.xy/i.screenPos.w;
float depth= _blurSizeXY*0.0005;
screenPos.x = (screenPos.x + 1) * 0.5;
screenPos.y = (screenPos.y + 1) * 0.5;
half4 sum = half4(0.0h,0.0h,0.0h,0.0h);
sum += tex2D(_GrabTexture, float2(screenPos.x-5.0 * depth, screenPos.y+5.0 * depth)) * 0.025;
sum += tex2D(_GrabTexture, float2(screenPos.x+5.0 * depth, screenPos.y-5.0 * depth)) * 0.025;
sum += tex2D(_GrabTexture, float2(screenPos.x-4.0 * depth, screenPos.y+4.0 * depth)) * 0.05;
sum += tex2D(_GrabTexture, float2(screenPos.x+4.0 * depth, screenPos.y-4.0 * depth)) * 0.05;
sum += tex2D(_GrabTexture, float2(screenPos.x-3.0 * depth, screenPos.y+3.0 * depth)) * 0.09;
sum += tex2D(_GrabTexture, float2(screenPos.x+3.0 * depth, screenPos.y-3.0 * depth)) * 0.09;
sum += tex2D(_GrabTexture, float2(screenPos.x-2.0 * depth, screenPos.y+2.0 * depth)) * 0.12;
sum += tex2D(_GrabTexture, float2(screenPos.x+2.0 * depth, screenPos.y-2.0 * depth)) * 0.12;
sum += tex2D(_GrabTexture, float2(screenPos.x-1.0 * depth, screenPos.y+1.0 * depth)) * 0.15;
sum += tex2D(_GrabTexture, float2(screenPos.x+1.0 * depth, screenPos.y-1.0 * depth)) * 0.15;
sum += tex2D(_GrabTexture, screenPos-5.0 * depth) * 0.025;
sum += tex2D(_GrabTexture, screenPos-4.0 * depth) * 0.05;
sum += tex2D(_GrabTexture, screenPos-3.0 * depth) * 0.09;
sum += tex2D(_GrabTexture, screenPos-2.0 * depth) * 0.12;
sum += tex2D(_GrabTexture, screenPos-1.0 * depth) * 0.15;
sum += tex2D(_GrabTexture, screenPos) * 0.16;
sum += tex2D(_GrabTexture, screenPos+5.0 * depth) * 0.15;
sum += tex2D(_GrabTexture, screenPos+4.0 * depth) * 0.12;
sum += tex2D(_GrabTexture, screenPos+3.0 * depth) * 0.09;
sum += tex2D(_GrabTexture, screenPos+2.0 * depth) * 0.05;
sum += tex2D(_GrabTexture, screenPos+1.0 * depth) * 0.025;
return sum/2;
}
ENDCG
}
}
Fallback Off
}
는, 재료는 재설정 계속 나는 유니티 편집기에서보고 테스트 할 수 없습니다.