Normal Extrusion 추가....노멀값을 조절 해 메쉬를 뿔리는 셰이더??? 뿔린 메쉬를 뒤집어 툰셰이딩에 응용한다고도 한다....
Shader "DY/NormalExtrusion" {
Properties{
_MainTex("texture",2D)="white"{}
// _Amount("Extrusion Amount",Range(-1,1))=0.0
_Amount("Extrusion Amount",float)=0.0
}
//슬라이드 조절바가 불편해서 수치 입력으로 바꿨다....
SubShader{
Tags{"RanderType"="Opaque"}
CGPROGRAM
#pragma surface surf Lambert vertex:vert
struct Input{
float2 uv_MainTex;
};
float _Amount;
void vert (inout appdata_full v){
v.vertex.xyz +=v.normal * _Amount;
}
// cg구문에 옵션에 해당하는 구문
//cg에 정의 되있는 Apptata를 활용해 메쉬가 뿔어나 보이게 만들었다...
sampler2D _MainTex;
void surf (Input IN, inout SurfaceOutput o){
o.Albedo = tex2D(_MainTex,IN.uv_MainTex).rgb;
}
ENDCG
}
FallBack"Diffuse"
}
Custom Vertex Color 추가 ..... 로컬좌표 버텍스에 노멀 컬러를 입혔다...... 어디다 쓰지 ???
Shader "DY/CustomVertex" {
properties{
_MainTex("Texture",2D)="white"{}
}
SubShader{
Tags{"RenderType"="Opaque"}
CGPROGRAM
#pragma surface surf Lambert vertex:vert
struct Input{
float2 uv_MainTex;
float3 customColor;
};
void vert (inout appdata_full v, out Input o){
o.customColor = abs(v.normal);
}
// cg구문에 옵션에 해당하는 구문
//cg에 정의 되있는 Apptata를 활용해 버텍스에 컬러를 입혔다...
//ui쪽엔 버텍스에 컬러 접근해 컬러 바꾸던데... 그런데서나 쓸수 있으려나?
sampler2D _MainTex;
void surf (Input IN, inout SurfaceOutput o){
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb;
o.Albedo *= IN.customColor;
}
ENDCG
}
FallBack"Diffuse"
}
'Unity공부 > Unity Surface Shader 공부' 카테고리의 다른 글
unity surface shader 공부 6 - surface shader custom Light 예제 따라하기 (0) | 2012.08.24 |
---|---|
unity surface shader 공부 5 - surface shader 예제 따라하기 (0) | 2012.08.21 |
unity surface shader 공부 3 - surface shader 예제 따라하기 (0) | 2012.08.17 |
unity surface shader 공부 2 - surface shader 예제 따라하기 (0) | 2012.07.27 |
unity surface shader 공부 1 - surface shader 예제 따라하기 (0) | 2012.07.26 |