본문 바로가기
툰렌더링 공부

셰이더 연구 #5

by IX. 2022. 4. 28.

4.28

맷캡을 어찌 적용할까? 싶어 이리저리 수정하던 중 이상한 부분을 발견했다.

회색(0.5)에 2를 곱하면 흰색일텐데, 왜 흰색이 안나오지...?

싶어서 이론적인 부분만 떼고 보니

?!?!?!!?

컬러가 0.5니까, 여기에 0.5를 더해주면 흰색이겠지.

0.5 x 2 = 1이니까 흰색이겠지.

그럼 두개가 똑같이 나와야 되는데 왜 그렇지?

 

해서 자료를 좀 찾아보니 감마의 문제. 우리가 보는 모니터는 눈에 예쁘게 보이려고 색을 좀 왜곡시켜 표현한다고 한다.

그래서 계산은 리니어로 하고, 결과물은 감마로 뽑아내는 것이 맞단다.

 

그렇다면 어차피 맷캡은 흑백 이미지로 쓰니까 RGB말고 float로 써도 되지... 싶어서 R채널만 가져와서 덧셈,곱셈 돌려보니

야이... 똑같자나...

시스템에서 만든 색이 아니라 텍스처에서 가져오는 색은 왜곡이 완료된 상태에서 들어오는 것 같다. 그럼 그냥 써야지 뭐...

 

어쨌거나 이리저리 해서 맷캡 새로운 적용 완료.

여기까지 하고 보니 퐁이 별로 쓸모가 없네? 

과감히 빼보자.

맷캡하이라이트가 빛의 방향에 따라 움직이게 하고 싶다... 어차피 U만 흘리면 되는 건데, 뷰+라이트(=H)벡터를 구해서 X값만 더해주면 되잖을까? 싶어 해봤더니

뜻밖에 잘된다. 올ㅋ

 

흑백 정보만 필요한 스펙+이미시브+맷캡을 각 채널별로 나누어 저장해 사용하고 있었는데, 맷캡이 생각보다 더 괜찮은 효과를 보여주며 스펙을 빼버리니, 뜻하지 않게 R채널이 비게 됐다.

뭘 하면 좋을까... 싶어 피부톤을 살려주는 가짜 SSS를 구현해보기로 했다.

고작 저정도 효과에 채널을 할당할 정도의 가치가 있습니까? 라면 나도 잘 모르겠다. 

그도 그럴 것이 이런 류의 그림이란게 저런 진한 그림자를 잘 쓰지 않기 때문.

확실히 앰비언트를 밝게 하니 '굳이...?' 라는 느낌.

 

 

4.29

오늘의 실험.

옆자리에서 페이셜과 애니메이션이 따로 논다는 제보를 받고 몇가지 테스트를 해봤다. 확인 결과, 페이셜은 셰이프키라 리그에 속하지 않는다. 따라서 정보가 모션에 저장되지 않는다.... NLA에서 합성해줘야 한다.

대충 이런 식. 모션은 한 트랙에 나열해놓고 표정은 프레임에 맞게 따로 뽑아준다. 작업편의상 그냥 한 트랙에 전부 나열할 수도 있겠지만 불안하다 싶으면 잘라써도 될 것 같다. 

 

NLA를 사용했으니 FBX익스포트에서 NLA Strip을 켜줘야 한다. (기본값이 켜진 상태) 

그렇게 익스포트를 했더니 베이스 모션 + 셰이프키 + NLA스트립이 전부 넘어가서 애니메이션이 매우 많아졌다.

전에 한숨을 쉬던 상황의 연속인데, FBX익스포트 옵션 중에 [All Action]이란 항목이 기본값으로 체크가 돼 있다.

오. 필요한 건 합성된 애니메이션이니, NLA Strip은 켜고, 이걸 끄면 데이터가 어떻게 넘어가지? 

유레카! 원하던 게 이루어졌다!

표정도 잘 넘어오고 모든 게 잘 된다.

방법이 없는 게 아니라, 못찾은 거였구나!

 

다시 셰이더로.

현재의 맷캡계산은 하이라이트 표현을 할 때 어두운 부분을 표현해주지 못하는 문제가 있었다.

그래서 이걸 해결하기 위해 빛 전용 맷캡을 하나 더 추가했는데

...아무래도 안이뻐서 안쓸거 같다.

 

애초에 NPR에서 빛이 우러나오지 못할 정도로 어두운 색을 사용할까? 싶어 그냥 기존의 방식대로 한 맷캡을 하나 더 추가. 이로서 원형 빛맺힘과 직선형 빛맺힘. 2개를 사용할 수 있게 됐지만, 그만큼 더 느려졌겠지? 그래도 예쁘니 사용하자.

 

커피컵에 글라스 적용


셰이더 적용전 피규어 느낌도 괜찮아 보인다.

어느정도 일단락되어 가는 것 같다.

역광

5.2

지금까지 얼굴에 노말 이식을 하는 방법을 잘못알고 있었다. Normal Edit가 아니라 Data Transform을 사용해야 한다.

어쩐지 뭔가 이상하더라 ㄴㅇㄻㄴㅇ

 

와이어 흐름이 같지 않다면 이식이 완전하지 않기 때문에 전체적으로 Smooth Vector를 한 번 해주어서 맞춰준다.

왼쪽이 스무싱 전, 오른쪽이 스무싱 후. 얼굴처럼 부드러운 부분에선 차이가 많이 난다.

코는 이식에서 제외하지만, 프록시 메쉬엔 코가 있는 편이 낫다. 완전히 달걀 귀신으로 맞출 경우, 코의 명암이 너무 평면적으로 보인다.

어느쪽이든 마음에 드는 결과는 아니지만, 그래도 코가 있는 편(오른쪽)이 낫다.

 

머리카락 안쪽부분은 빛이 들지 않는 편이 좋고, 정수리 부분도 항상 명암이 깔려있는 쪽이 양감을 살려주는 데 좋아보인다.  헤어셰이더는 별도의 매핑을 사용하지 않으므로 버텍스 컬러를 이용해서 명암과 섞어주었다. 

포토샵 2022는 내가 알던 그 포토샵이 맞나? 싶을 정도로 버그가 많고, 느리다. 포토샵도 버릴 때가 된 건가

 

디테일업을 어쩔까 고민끝에, 결국 추가선만 그리기로 결정.

이건 내일 해보도록 합시다.

 

5.3

얼굴에 그림자를 그리우지 않으니, 셰도우 맵의 거리를 좀 더 멀리 써도 봐줄만하다.

그림은 역시 축소하면 다 예쁨.

캐릭터는 이제 완성. 이제 리깅의 단계로 넘어가 보자.