250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- NavMesh
- tutorial
- 속성
- 익명 타입
- 유니티
- 파이널 IK
- 리깅
- 오류
- c#
- 유니티 그래픽 최적화
- 애니메이션
- Effective C#
- shader
- 사용법
- 애님
- github
- 에러
- 프로퍼티
- unity
- 메모리
- error
- 깃허브
- 리팩토링
- Final IK
- 유니티 그래픽스 최적화 스타트업
- 쉐이더
- 튜토리얼
- 2판
- 쓰는 법
- 최적화
Archives
- Today
- Total
참치김밥은 최고의 한식이다
[Unity] 처음으로 직접 만들어 본 HLSL 쉐이더 - 눈 쌓인 쉐이더 본문
오브젝트 노말의 y값이 _SnowOffset 이상일 경우에만 흰 색으로 칠해주도록 했다.
그런데, 이렇게 했더니 눈이 아니라 페인트가 묻은 것 마냥 뚝뚝 끊기며 표현이 되길래, 어떻게 눈 쌓인 가장자리를 부드럽게 표현할까 고민하다가
그냥 단순히 알파값에 오브젝트 노말 y를 넣으면 되겠구나! 하고
프래그먼트 쉐이더의 리턴값을 return float4(0,0,0,오브젝트노말y) 했더니 얼추 부드러워 보이길래,
눈이 많이 쌓인 부분은 더 새하얗게 표현하려고 오브젝트노말y 값을 아래의 Remap 함수를 통해서 맵핑 후 사용했다.
float Remap(float val, float minVal, float maxVal){
float o = 0;
o = saturate((val - minVal)/(maxVal - minVal));
if(o > 0.2)
o *= 1.5;
return o;
}
또, 눈이 쌓이면 소복해지므로, 그 부분도 버텍스 위치를 눈이 쌓인 것처럼 서서히 조정할 수 있도록 추가로 작성 중이다.
지금은 텍스처도 없이 일반 White를 깔아줘서 좀 애매해보일 수 있지만, 텍스처 추가하고 눈 노말도 추가해주면 좀 더 보기 좋지 않을까?! 싶다!
--------------------------------------------
텍스처 + 노말맵 적용 완료~~~
728x90
'Unity' 카테고리의 다른 글
[유니티] Stencil (0) | 2023.11.20 |
---|---|
[유니티] Z-Buffer & Color Buffer (0) | 2023.11.20 |
[Unity] Particle 회전 시키는 방법 (0) | 2023.09.08 |
[Unity] NavMesh 모르던 기능 (0) | 2023.09.07 |
[Unity] UI 부드럽게 할 때 꿀팁 (0) | 2023.09.01 |