Featured image of post 하프 렘버트 쉐이더 FX 버전

하프 렘버트 쉐이더 FX 버전

어딘가에서의 강의 준비를 위한 쉐이더 FX 공부 이틀째입니다.

뭐랄까. 코드로 짜던걸 노드로 연결시키니까 확실히 편하긴 하지만
수박 겉핥기 하는 느낌이랄까 -_-;
전체로 잘 안보여요. 뭐 그래픽 디자이너들에게 설명할때는 확실히 편하긴 하겠지만…

이 회사에서도 그걸 알고 있는지 자주 쓰는건 그냥 그룹화 시켜서 편하게 편하게 만들어 놓았네요.
덕분에 마치 우버 쉐이더 처럼 조금만 손대려 하면 큰일이 되어 버리는…

일례로
dot(N,L)
로 끝나는 라이트 계산을 편하게 하느라고 그룹노드로 만들어 놓은것까진 좋은데,
거기에 추가로 하프 렘버트 적용하느라고
dot(N,L)*0.5f + 0.5f;
이라고 수정하면 코드에서는 초 간단한데 말이죠. 보기에도 쉽고.

그런데 여기서는 이거 하나 수정하려고 이렇게 만들어야 한단 말이죠
부왘 ㅋㅋㅋㅋ 뭐야 거창해
(하프 렘버트 쉐이더 예제가 있길래 열어봤습니다. 짠 사람은 이해가겠지만 처음 보는 그래픽 디자이너들은 어떻게 이해하라고…)

여기다가 warp 칼라라도 적용하려면 갑자기 또 신세계가 열립니다.
코드라면 역시 하프 렘버트 코드 아래에
tex1D(warp, halfLambert) * LightColor;
한줄 추가하면 끝나는 것을

부왘 ㅋㅋㅋㅋㅋㅋㅋ
뭐야 이거 ㅋㅋㅋㅋㅋㅋㅋㅋ

저 위의 거창한 그림이
float halfLambert = dot(N,L)*0.5f + 0.5f;
tex1D(warp, halfLambert) * LightColor;

요 두 줄이라면 믿으시겠습니까?

(뭐 선언까지 하면 거창하지 않느냐라고 따지신다면, 그건 관점의 차이라고 변명하겠습니다만 ㅎㅎ)

ps. 그나저나 마모셋 엔진도 구입해서 함 봐야 하는데 공동구매하실분 없으십니까 ㅋ

Hugo로 만듦
JimmyStack 테마 사용 중