- 툰쉐이딩
- 아웃라이너
- 포스트 프로세스를 사용한 툰쉐이더(Blinn)
- phong
- Detect edge
- 포스트 프로세스 - 비네트
<툰쉐이딩>
- 머티리얼 생성
- 결과노드 디테일 > 셰이딩 모델을 unlit으로 변경
- Sky Atmosphere Light Direction 노드 생성
- Dot 생성
- Dot의 B에서 핀을 뽑아 Vertex Normal WS를 생성
- Dot에 Multiply, Add순으로 연결하고 각각 0.5를 더하고 곱해준다
- toon 텍스쳐의 설정에 들어가 압축 세팅을 User Interface 2D로 바꿔준다
- 디테일 > 텍스쳐 > sRGB 비활성화
- Add에 Append를 달아주고 파라미터도 함께 달아준다
> 이 파라미터로 툰 쉐이더를 조절할 수 있다.
- Toon 텍스쳐를 Append 와 연결하고 Multiply를 연결한다.
- B에 색상노드를 연결해 색을 곱해준다
- 이미시브 컬러와 연결
= 톤이 나뉜 머티리얼
* 파라미터를 만진 모습
* 노드 기능 정리
아웃라이너
- Pixel Normal WS 생성하고 Dot과 연결해준다.
> Vertex Normal은 면의 개수에 영향을 받기 때문에 면의 영향을 받지 않는 Pixel Normal을 사용
- Camera Vector WS를 B에 연결
- Dot에 1-x 노드 연결
= 중앙이 검은색인 머티리얼
- Dot에 If를 연결
- 콘스탄트를 3개 만들고 각각 0.15, 1, 0을 입력한다
- 0.15를 B에, 1을 A>B, A==B에 연결
- 0을 A<B에 연결한다.
= 아웃라인 생성된 모습 (0과 1로 이루어짐)
- Multiply로 툰셰이더와 아웃라인을 연결한다
= 아웃라인이 생김
* 큐브모양일시 넘어가는 면도 검은색이 됨
> 포스트 프로세스를 사용하여 만들면 해결할 수 있음
포스트 프로세스를 사용한 툰쉐이더
- Sky Atomo sphere light Direction 생성
- Add 연결 후 B에 Camera vector 생성
- Add에 Normalize 연결
- Normalize에 Dot을 연결하고 Dot의 B에 Pixel Normal 연결
= 이런 모습
- Dot에 Saturate 연결 후 Power 연결
- 파라미터도 함께 달아준다
- Multiply를 연결하고 콘스탄스 연결
= 흰 부분이 하이라이트가 될 부분
- Round를 달아주고 Add연결, B에는 위에서 만든 텍스쳐를 연결한다
- 아웃라이너 노드와 Add를 Multiply로 곱한다
= 하이라이까지 생긴 툰셰이더
* 노드 기능 정리
Phong
= Blinn과 다른 느낌의 반사
= 빛맺힘이 림라이트 같은 질감
* 노드 기능 정리
- Add, Multiply, Multiply를 순서대로 생성한다
- Add의 B에 툰 텍스쳐를 연결
- Multiply의 B에 툰 텍스쳐의 색상 연결
- Multiply2의 B에 위에 제작한 If 노드 연결
- Switch Param을 생성하여 위의 Multiply2와 툰셰이더 + 아웃라이너 Multiply를 연결
> Multiply2를 False에, 툰세이더 + 아웃라이너를 True에 연결
- Switch를 이미시브에 연결
=
<Detect edge>
- 머티리얼 생성
- 머티리얼 도메인을 Post Process로 변경
- Screen Position 노드 생성
- View Size 노드 생성
- 2콘스탄트 4개를 만들고 각각 Multiply 연결
- Multiply의 B에 각각 콘스탄트 1을 연결한다
> 외각선의 굵기
- Divide를 4개 생성하고 Multiply를 A에, B에 View Size를 연결
- Add를 생성하고 A에 Screen Position을 A에 연결한다
- 위에걸 4개를 만들고, Divide를 Add의 B에 연결
* 중간 노드 정리
- Scene Texture 생성
- Scene Texture의 씬 텍스쳐를 World Normal로 변경
- 포스트 프로세스 볼륨 생성
- 포스트 프로세스 볼륨 > 디테일 > 렌더링 기능 > 포스트 프로세스 머티리얼
- + 버튼을 눌러 배열 추가
- 추가된 배열에 에셋 레퍼런스 선택
- 만든 머티리얼을 추가한다
= 노말처럼 보임
> 예시를 위해 Scene Texture의 Color를 이미시브에 연결함
- 머티리얼로 돌아와 포스트 프로세스 머티리얼의 블렌더블 위치를 Before Tonemapping으로 변경
- Add에 Scene Texture를 각각 UVs에 연결
- Scene Texture의 Color에 multiply를 각각 A에 연결하고 B에 0.5를 입력
- Multiply에 Add를 연결하고 Add의 B에 0.5를 입력
- Subtract를 생성하여 Add를 각각 두개씩 묶어준다
- Subtract에 각각 Abs를 연결하고 Add로 합쳐준다
- Add를 이미시브에 연결
= 알록달록한 라인 생성
- Split Components를 생성해 Add와 연결
- Max를 두개 생성하여 하나엔 R-A / G-B를 연결하고, Max-A, B-B를 연결한다
= 흑백으로 변함
- Smooth Step을 생성하고 콘스탄트 2개 생성 후 하나엔 0.2, 나머지 하나엔 0.5 입력
- Add로 0.2와 0.5를 더해준다
- Smooth Step의 Min에 0.2를 Max에 Add를 연결
- 위에 Split Components를 연결한 Max를 Value값으로 사용한다
> Min 값보다 작으면 0이되고, Max값보다 크면 1이 된다
= 흰색과 검은색으로 딱 나뉨
- Scene Texture 생성
- Scene Texture의 씬 텍스처를 Post Process Input 0으로 변경
- Lerp와 4백터를 생성하여 Lerp의 A엔 Scene Texture를, B엔 백터 4를 연결한다
> 백터 4가 아웃라인의 색을 정함
= 기본 뷰포트에 아웃라인이 생김
- Smooth Step에 Multiply를 연결하고 B에 0.2를 더해준다
- 위에서 만든 Multiply를 Lerp의 Alpha값으로 사용한다.
- 초반에 만든 Add에 Scene Depth를 연결한다
-Scene Depth를 Subtract를 만들어 AB를 각각 묶어준다
- Subtract에 각각 Abs를 연결하고 Add로 더해준다
- Scene Depth 맨 위 두개를 Max로 연결
- 세번째 Scene Depth와 첫번째 Max를 Max로 연결
- 네번째 Scene Depth와 두번째 Max를 Max로 연결
- Add와 Max를 Divide로 연결
- Divide에 Saturate 연결
- 위에 만든 Smooth Step을 복사 붙여넣기 하고 Saturate를 Smooth Step의 Value 값으로 사용한다
- 위에 있는 Smooth Step과 밑에 있는 Smooth Step 연결
- 연결한 Max값을 텍스처의 Lerp에 연결되어있는 노드들을 제거하고 연결
= 내부 색상 유지한채 외각 라인 생성
* 노드 기능 정리
포스트 프로세스 비네트
- 머티리얼 생성
- 머티리얼 도메인을 Post Process로 변경
- Tex Coord 생성
- Multiply 2개 생성하고 위에는 A에 바로 연결, 아래는 1-x를 거치고 A에 연결
- Multiply의 B값에 각각 콘스탄트 5를 연결
- Multiply에 Saturate를 각각 연결
- Saturate를 Multiply로 곱해준다
- Multiply를 Mask 기능을 사용해 각각 R과 G의 값으로 나눠준다
- Mask G와R을 Multiply로 합치고 Saturate를 연결한다.
- Saturate와 이미시브컬러를 연결
= 비네트 효과
* 노드 기능 정리
'언리얼 > 머티리얼' 카테고리의 다른 글
2024 언리얼 엔진 실무 기반 교육 과정 49일차 (0) | 2024.06.13 |
---|---|
2024 언리얼 엔진 실무 기반 교육 과정 39일차 (0) | 2024.05.30 |
2024 언리얼 엔진 실무 기반 교육 과정 21일차 (0) | 2024.05.02 |
2024 언리얼 엔진 실무 기반 교육 과정 17일차 (0) | 2024.04.25 |
2024 언리얼 엔진 실무 기반 교육 과정 12일차 (0) | 2024.04.18 |