본문 바로가기
유니티 엔진

Unity 5.0 Shader 자료들

by 대마왕J 2015. 4. 23.
struct SurfaceOutput {
 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를 쓸 수 있었던가?? 오오

 

반응형

댓글