반응형
SMALL
쉐이더 코드 정리
- 시작하기에 앞서 쉐이더 surf 함수 내의 필요없는 부분은 제거 해준다.
- 텍스쳐 입 출력에 필요 없는 부분일 뿐이니 참고.
1. surf 함수 내의 필요 없는 부분 제거
- o.Metallic , o.Smoothness 부분을 제거
- o.Metallic 의 경우 기본 default 값이 0 이었기 때문에 큰 변화는 없다.
- o.Smoothness 의 경우 default 값이 0.5 였기 때문에 표면이 좀 더 거칠어 진 것을 확인할 수 있다.
- 추가적으로 default로 적혀있는 주석 부분도 제거.
- 함수 내의 _Color 프로퍼티 부분도 제거 하여 텍스쳐가 색상의 영향을 받지 않도록 한다.


- surf 함수 전문

2. surf 함수 외부의 필요 없는 부분 제거



- 여기서 pragma target의 경우 쉐이더 모델 3.0 이상에서 돌아가는 쉐이더를 만들겠다는 의미이다. 삭제시 2.0에서 돌아가는 쉐이더를 만들겠다는 의미가 된다. (복잡한 쉐이더를 만들수 없게 되는 것이지만 당장 복잡한 쉐이더를 만들지 않기 때문에 삭제해도 무관하다.)
- LOD (Level Of Detail) 부분은 환경설정에서 변경이 가능한 부분.
- 정리가 끝난 쉐이더 코드 전문은 아래와 같다.
Shader "Custom/NewSurfaceShader"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
반응형
LIST
'유니티 엔진 클라이언트 > 개인공부' 카테고리의 다른 글
| 유니티 라이프 사이클 (1) | 2023.07.05 |
|---|---|
| [유니티 프로젝트] ik 역 운동학을 적용한 좀비 서바이버 (0) | 2023.05.23 |
| [유니티] [유니티] Euler Angle (오일러 각) & Quaternion (쿼터니언) 정리 .2 - 메서드 (1) | 2023.03.05 |
| [유니티] Euler Angle (오일러 각) & Quaternion (쿼터니언) 정리 .1 (1) | 2023.03.01 |
| [유니티] 3D월드에서의 FPS 시점(1인칭) 움직임 구현 (0) | 2023.02.24 |