저는 정말 초보자입니다. 이것은 처음으로 하나의 모바일 게임을위한 셰이더를 작성한 것입니다.데칼 쉐이더가 장치에서 작동하지 않습니다.
Shader "Decal" {
Properties {
_Skin("Skin (RGB)", 2D) = "white" {}
_Dirt("Dirt (RGBA)", 2D) = "black" {}
_Outfit("Outfit (RGBA)", 2D) = "black" {}
_Painting("Painting (RGBA)", 2D) = "black" {}
_Cheek("Cheek (RGBA)", 2D) = "black" {}
_LipStick("LipStick (RGBA)", 2D) = "black" {}
_Eye("Eye (RGBA)", 2D) = "black" {}
_EyeLid("EyeLid (RGBA)", 2D) = "black" {}
_ShadowHat("ShadowHat (RGBA)", 2D) = "black" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 150
CGPROGRAM
#pragma surface surf Lambert noforwardadd
sampler2D _Skin;
sampler2D _Dirt;
sampler2D _Outfit;
sampler2D _Painting;
sampler2D _Cheek;
sampler2D _LipStick;
sampler2D _Eye;
sampler2D _EyeLid;
sampler2D _ShadowHat;
struct Input {
float2 uv_Skin;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_Skin, IN.uv_Skin);
fixed4 dirt = tex2D(_Dirt, IN.uv_Skin);
fixed4 outfit = tex2D(_Outfit, IN.uv_Skin);
fixed4 painting = tex2D(_Painting, IN.uv_Skin);
fixed4 cheek = tex2D(_Cheek, IN.uv_Skin);
fixed4 lipstick = tex2D(_LipStick, IN.uv_Skin);
fixed4 eye = tex2D(_Eye, IN.uv_Skin);
fixed4 eyelid = tex2D(_EyeLid, IN.uv_Skin);
fixed4 shadowHat = tex2D(_ShadowHat, IN.uv_Skin);
c.rgb = lerp (c.rgb, dirt.rgb, dirt.a);
c.rgb = lerp (c.rgb, outfit.rgb, outfit.a);
c.rgb = lerp (c.rgb, painting.rgb, painting.a);
c.rgb = lerp (c.rgb, cheek.rgb, cheek.a);
c.rgb = lerp (c.rgb, lipstick.rgb, lipstick.a);
c.rgb = lerp (c.rgb, eye.rgb, eye.a);
c.rgb = lerp (c.rgb, eyelid.rgb, eyelid.a);
c.rgb = lerp (c.rgb, shadowHat.rgb, shadowHat.a);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "Mobile/VertexLit"
}
그래서 어떤 도움은 매우 환영합니다 :) 것, 또한 한 가지 내가이의 성능 모르겠어요, 명확히하기 위해 : 여기 잘 편집기에 있지만 내 안드로이드 장치에 대한 작업, 쉐이더입니다 셰이더는 모바일 용으로 충분합니까?
대단히 감사합니다.
기기에서 지원하는 그래픽 API는 무엇입니까? – Shaman
내 유니티의 playerSettings에서 그래픽 API가 OpenGLES2로 설정되었습니다. –