fixed3 Albedo;
fixed3 Normal;
fixed3 Emission;
half Specular;
fixed Gloss;
fixed Alpha;
};
은 그냥 존재한다.
inline void LightingBlinnPhong_GI (
SurfaceOutput s,
UnityGIInput data,
inout UnityGI gi)
{
gi = UnityGlobalIllumination (data, 1.0, s.Gloss, s.Normal, false);
}
처럼 GI 연산을 커스텀 라이팅에 포함할 수 있다.
이런 자료는 기본적으로 예전처럼 Lighting.cginc에 내장되어 있다.
그리고 아래는 UnityPBSLighting.cginc에 내장되어 있다.
Standard shader는 철저히 구분되어 있는 느낌.
즉 선택해서 쓸 수도 있다는 말이다.
그렇지만 아래 구문을 쓰면서 Lighting 구문을 Lambert로 부르면,
struct SurfaceOutputStandard
{
fixed3 Albedo; // base (diffuse or specular) color
fixed3 Normal; // tangent space normal, if written
half3 Emission;
half Metallic; // 0=non-metal, 1=metal
half Smoothness; // 0=rough, 1=smooth
half Occlusion; // occlusion (default 1)
fixed Alpha; // alpha for transparencies
};
그리고 vertex 쪽은 그대로다. UnityCG 쪽에 그대로 있고, 예전과 같다.
struct appdata_base {
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
};
struct appdata_tan {
float4 vertex : POSITION;
float4 tangent : TANGENT;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
};
struct appdata_full {
float4 vertex : POSITION;
float4 tangent : TANGENT;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
#if defined(SHADER_API_XBOX360)
half4 texcoord4 : TEXCOORD4;
half4 texcoord5 : TEXCOORD5;
#endif
fixed4 color : COLOR;
};
원래 엑박에서는 텍스 코드를4랑 5를 쓸 수 있었던가?? 오오
'유니티 엔진' 카테고리의 다른 글
Unity 5 standard 2side shader (0) | 2015.05.27 |
---|---|
UV scroll script (2) | 2015.05.07 |
유니티 물리기반 쉐이딩 (0) | 2015.04.10 |
유니티5의 라이트맵핑의 비밀 : Realtime GI와 BakedGI 동시에 쓰기 (3) | 2015.04.05 |
유니티5의 라이트맵핑 : Baked GI (0) | 2015.04.03 |
댓글