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

셰이더 연구 #4

by IX. 2022. 4. 20.

4.20

머리카락 제작 중에 난관을 만났다.

UV만 사각하게 펴주면 될 줄 알았는데 생각보다 녹록치 않다.

커브기반의 작업과 무엇이 다른 거지?!

엉망진창

 

몇가지 원인을 알아냈다. 하지만 선뜻 이해가 되지는 않는다[...]

데이터의 민감도가 생각보다 크고, UV의 위치에 따라 엔젤링의 강도가 조절되고 있었다.(...??)

비탄젠트의 각도를 이용하기 때문에 저렇게 꼬인머리라면 각도가 회복될 때 값도 커져야 정상인데 이상하다?

아. 그렇지. Anisotropy 노이즈! UV에 0~1을 더 했었지!

그렇다면 UV를 아래에 두면 하이라이트도 약해진다는 이야기다. 

마침 아래의 꼬인머리의 빛이 너무 쎄서 좀 줄이고 싶던 차에 잘됐다.

반대로, 쎄게 하고 싶으면 UV를 좀 올리면 된다. 

머리 셰이더는 정말 요행에 요행이 더해진 형태로 개선되고 있구나...

 

 

4.21

커브형태로 재제작 중.

덩어리로 볼 땐 머리에 각을 살려줬을 때가 더 예뻐보였는데

정작 셰이더 들어가니 각이 저렇게 딱딱 끊겨 출력되며 별로 예쁘지 않은 현상이 있다.

그리고 얇은 가닥/굵은 가닥 간의 엔젤링 밀도가 달라서... 그렇게 예쁘지 않고, 명암도 덩어리마다 지는 현상이 있어서 그리 좋은 품질을 보여주지 못한다. 좀 귀찮더라도 가닥을 더 세분화해주는 편이 좋아 보인다.

 

단면의 모양도 중요해보이는데, 일단 세모 + AutoSmooth체계로 가보자.

 

이거 아닌거 같아.... 내일 다시 해보자.

 

4.22

커브는 노말이 없다. 그래서 두피에서 간격을 두고자 한다면 몇가지 방법을 고려해볼 수 있다.

 

1. 수동으로 배치

2. 좀 크게 만든 두피를 스냅용으로 사용

3. 단면 셰입을 offset된 형태로 사용

 

그런데 셋다 마음에 안든다. 어쨌거나 커브란 놈이 폴리곤보다는 다루기 힘들다.

그렇다면 차라리 커브를 처음부터 제작하지 말고, 기존에 제작하던 방식에서 뽑아내면 어떨까?

결과는 성공이다!

생각보다 커브변환 단계에서 할수 있는 일이 많지 않으므로 프록시에서 와이어 안튀게 전체비율을 잘 잡아주는 것이 중요하다. 커브변환 전에 충분히 시간을 들이자.

사실, 단발머리같은 난이도가 낮은 머리를 작업할 요령이었다면 어떻게든 완전커브로 작업했을 것 같은데, 일부러 어려운 머리를 고른 것이 도움이 됐다. 

이제 머리카락이 전체적으로 너무 반짝이므로, 엔젤링이 표현되지 않을 영역을 지정해줄 필요가 있다. 이건 일단 노말을 뽑은 후에 진행해보자.

 

 

4.25

하이폴리곤 형태를 게임에 그대로 사용할 수는 없으니 폴리곤을 적당히 줄여줘야 하는데, 이를 리토폴로지라고 한다. 그런데 난 이 작업이 싫다.... 21세기에 왜 이런 기계적인 작업을 사람이 해주어야 하는가.

...라고 해서 폴리곤을 줄여주는 방법을 좀 찾아보니, Decimate라는 기능이 먼저 발굴된다.

그런데 이건 20세기 기술이다. 내가 3D를 처음 다룰 때에도 비슷한 건 있었다.

굴곡 밀도에 맞게 줄여주는 건 좋은데 셰이딩이 영 쓸만하지 못할 거 같다.

차라리 리메시를 쓰지...싶어 리메시의 기능을 검색하던 도중 QuadriFlow Remesh라는 항목이 눈에 띈다. 

오... 이것은 설마 지브러시에서 사용되던 그 마법의 기술이 아닌가? 싶어서 적용해보니

그 마법의 기술이 맞다! 오..됐어. 이거라면 작업이 훨씬 줄어든다.

주의할 것은 원본메쉬의 변형이므로 원본을 반드시 남겨두고 사본으로 돌려야 한다는 것 뿐이다.

어지간한 건 다 있구나. 블렌더.

노말 베이크를 하기 전에 몇가지 짚어볼 사항이 있어서 아래요소들을 테스트했고, 다음과 같은 결과를 얻었다.

1. 베이킹 전에 미러 여부 - 합쳐줘야 한다. 가운데 금간다.

2. 날카로운 엣지 처리 - 해줘야 한다. 생각해보니 1번의 연장선이다.  하지 말아야 한다.(다음날 실험에서 엣지처리를 하지 말아야 한다는 결론을 얻었다.)

3. AO베이킹 테스트 - 베이킹은 렌더의 영역이기 때문에 아웃라이너에서 렌더버튼 꺼줘야 비로소 안보이는 오브젝트에 의한 그림자가 생기는 것을 막을 수 있다.

4. 폴리곤 경계의 안티앨리어싱 - 지원되지 않는다. 아니, 뷰포트는 지원하잖아. 그거 갖다 ㅆ...이상한 부분에서 구식이다. 매핑 2배로 뽑은 다음 포토샵에서 줄이자.

 

 

4.26

UV도 폈고, 하이폴리곤 데이터 정리도 끝냈고. 이제 노말만 뽑으면 되는데, 경계선 부분의 노말이 뭐가 더 예쁠지 궁금했다.

그래서 오늘의 실험. 

노말을 뽑아보니 이렇다.

딱 보기에도 스무스에 뭔가 잡스런 데이터가 칠해져있다. 로폴에서 볼 때도 샤프엣지가 더 나은 모습을 보여주고, 노말맵 자체도 샤프엣지가 필요한 데이터만 들어있기 때문에 깔끔해 보여서, 툰셰이딩에서도 아마 샤프엣지가 더 나은 모습을 보여줄 거라 생각했는데...

으엥?! 예상과 전혀 다르다. 해상도 문제야 둘째치더라도 스무스가 딱 보기에도 더 부드러운 명암을 뽑아준다. 

게다가

아웃라인 셰이더가 제대로 작동하지 않는다. 이렇게 되면 샤프엣지 부분의 노말에 추가 보간을 해줘야 할텐데 내가 그걸 못한다. 

 

결론. 올스무싱! 잘됐다. 어차피 그게 작업도 편하다.

 

노말 추출.

AO는 뽑는김에 뽑긴 했는데... 안쓸 거 같다. 스카이라이트 AO가 아니자나.(어쩐지 빠르더라.)

 

컬러맵 대충 적용. 

얼굴이 셰이딩 깨지는 거야 그렇다쳐도, 

생각보다 전체적으로 디테일이 약해서 심심한 느낌이 든다.

 

거의 다 한 줄 알았는데 갈길이 멀구나...

4.27

기승전 원신. 

고민을 거듭하다 보면 결국 원신을 흉내내고 있다.

좋은 건 이미 원신이 다 한 듯.

 

헤어 셰이더 명암부 조절, 얼굴 셰이딩 변경

스펙, 이미시브, 맷캡부착.

맷캡이 생각보다 원하던 모양은 아니다.

내일 좀 더 고민해 보자.

댓글8

  • 엘레봉 2022.04.21 17:21

    블로그 디자인이 바꼈네요!
    예전 글 보는게 뭔가 힘들어 진게 아쉽네요.
    이쁜 그림들 많았는데...!!
    답글

    • Favicon of https://ix9.net IX. 2022.04.22 15:15 신고

      네. 제가 바꾼건 아니고 어느날 일어나보니 지구가 멸망했습니다.
      현재를 살아라!는 티스토리의 가르침일까요.

  • 아라 2022.04.23 01:14

    아.. 그게 티스토리가 강제로 바꾼거였구나! 난 또 엄청난 심경의 변화가 생긴 줄 알았네. 이전 블로그 스킨이 티스토리 개발자에겐 IE 6 같았나봐.
    답글

    • Favicon of https://ix9.net IX. 2022.04.25 09:10 신고

      아. 그게 공지가 있기는 했었어.
      물론 무시했지만.
      심경의 변화가 생겼다한들 내가 스스로 스킨을 바꿀리가 없지.

  • 로딘 2022.04.25 11:18

    21세기니깐 언리얼로 하이폴리곤을!!

    ...아, 생각해보니 캐릭터는 나나이트가 안 되겠구나. 데헷!
    답글

    • Favicon of https://ix9.net IX. 2022.04.25 18:01 신고

      왜죠? 왜죠? 왜 캐릭터 차별하죠?
      아니, 그전에 유니티에선 어차피 안되는구나. 휴. (??)

  • 지나가다 2022.04.26 22:47

    선생님 진도가 너무 빠릅니다!!!
    슥샥슥샥 멋지네요!!!!

    그나저나 티스토리 모바일은 맨날 똑같아 보이는것 같은데 많은 변화가 있었나봐요…!
    UI UX는 뭔가… 제 기대랑 항상 다른 방향으로 진화 하는것 같더라구요… 이렇게 옛날 사람이 되어가는 건지…
    답글

    • Favicon of https://ix9.net IX. 2022.04.27 13:20 신고

      언제나 응원 감사합니다!

      티스토리의 PC버전 UI가 모바일처럼 변했어요. 최근글만 표시해주고 지난 글은 꽁꽁 숨겨둔 상태로.

      적응못하기로 저보다야 할까요!( 인터넷쇼핑할 줄도 모름)