다이렉트X를 공부하면서 램버트, 하프램버트를 구현해봤었다.
(라이트 벡터와 노멀 벡터의 내적 연산.)
언리얼에서 구현을 해보려하니, 라이팅 벡터와 노말 벡터를 어떻게 얻어오는 지조차 알 수 없었다. ㅠㅠ
구글링을 하다보니, 마둠파님 블로그에 초보자를 위해 설명을 해주신 게 있었다.
라이팅 벡터, 노말 벡터 얻어오기
라이트 벡터
직접 Light를 얻으려면, 마둠파님 블로그에 있는 것처럼 얻어오면 된다.
나는 간단한 방법으로 맵에 기본적으로 존재하는 Directional Light를 얻어올 것이다.
노멀벡터
노멀벡터는 엄청 간단하다. 바로 노드로 제공된다.
램버트/하프램버트 구현하기
램버트 구현하기
라이트벡터와 노멀벡터의 내적연산을 한 가장 기본적인 라이팅 모델이다.
하프램버트 구현하기
너무 어둡게 보이는 램버트의 결과를 개선한 모델이다.
번외로 툰 쉐이더 구하기
하프 램버트 값에서 일정 값을 곱한 뒤, 소수점을 버리고 다시 나눔.
이 연산을 통하면 값이 계산식으로 바뀐다. 1.0 1.3 1.5 1.7 이런 값들이 모두 1로 바뀐다.
하프램버트 값이랑 왜 중첩해서 나오지...?
버근가.. 다시 집가서 해봐야겠다.
램버트에서 툰 쉐이딩을 적용하니 잘 나오긴 한다.
'Unreal' 카테고리의 다른 글
[Unreal C++] CPP 파일 생성/삭제/경로 변경하기 (0) | 2021.03.25 |
---|---|
[Unreal Error] CPP 컴파일할 때마다 Crash 오류 (2) | 2021.03.24 |
[Unreal C++] C++ 시작하기 (0) | 2021.03.19 |
[Unreal Error] Visual Studio 언로드됨 (0) | 2021.03.19 |
[Unreal] 애니메이션 리타겟팅하기 (0) | 2021.03.15 |