240523 언리얼 엔진 - 메터리얼 6
툰 쉐이딩
셸셰이딩

- 빛을 안 받는 상태로 하기 위해 셰이딩 모델을 언릿으로 변경

- 이런 식으로 노드를 연결하면 메터리얼이 반으로 나눠져서 흑백을 나눠가지게 됨.

- 툰 텍스쳐 이미지를 가져와서 컴페션 세팅을 유저인터페이스2D로 변경한뒤 텍스쳐의 rgb를 비활성화 하도록 함.


- dot 뒤 멀티플라이 0.49로 수정하면 오류 수정됨.

- 빛의 방향에 의해 달라짐.

아웃라인

- 아웃라인 노드

- 멀티플라이로 합쳐준다.

- 그러나 이 방식을 사용하여 아웃라인을 생성하면 큐브 같은 경우 이런 문제가 발생하기도 함. (시각에 따라서 변화하기 때문에)
하이라이트 만들기 - blinn

- 노드로 빛을 받는 곳과 받지 않는 곳의 경계를 확실히 함.

- 하이라이트 크기 조절

- 상수 4도 spec lightness로 파라미터 변환

- 이미시브 컬러 연결

- blinn 하이라이트 노드
하이라이트 만들기 - phong

- 시작 노드

- 블린 노드 만들 때 사용햇던 파라미터를 이곳에도 연결

- 이런식으로 하이라이트가 맺힘


- 최종적으로 셸 셰이딩+아웃라인+하이라이트를 하려면 add와 multiply노드를 활용해주어야 한다.

- add는 texture를 합친다 (셸 셰이딩 텍스쳐) 첫번째 multiply는 color를 혼합 두번재 multiply는 아웃라인을 합친다.

- switch 파라미터를 꺼내서 블린과 퐁을 각각 true와 false에 연결해주고 디폴트 밸류에 체크 이후 이미시브 컬러에 넣어준다. 이후 인스턴스에서 블린과 퐁 둘 중 스위치하는 것이 가능함.

- 완성된 툰 쉐이더
포스트프로세스 활용 툰 쉐이딩 메터리얼

- 포스트프로세스에 메터리얼을 집어넣어서 툰 쉐이딩을 하도록 한다. 메터리얼 도메인을 포스트 프로세스로 변경

- 2벡터를 4개 꺼내서 값을 저렇게 설정해주고 멀티플라이에 각각 연결

- 스크린 포지션과 뷰 사이즈 노드 연결

- 씬 텍스쳐 월드 노말을 꺼내서 연결

- 이렇게 노말의 형태를 볼 수 가 있음

- 메터리얼의 포스트 프로세스 메터리얼을 비폴 트렌슬런시로 변경

- 각 노드들을 씬텍스쳐 월드노멀에 연결

- 이런식으로 월드 노말값을 받아 테두리가 따진 것을 볼 수 있다. 이를 아웃라인 컬러로 변경

- 스플릿 컴포넌트 연결해서 흑백으로 만들어줌

- 값을 넣어서 맥스값을 추출

- 이후 러프 노드 사용하여 알파값으로 활용한 뒤 4벡터를 연결하여 아웃라인에 컬러를 넣어준다.

- 이런식으로 아웃라인이 들어간다.
메쉬 안쪽에도 아웃라인 넣기

- 상수 벡터에서 씬뎁스를 각각 연결한다. 맥스노드와 애드 노드로 나눠짐

- 이를 스무스 스텝으로 가져온다

- 아까와 똑같이 러프에다가 합친값을 연결해준다.

- 안쪽에도 아웃라인이 생김





