Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Cell Look
- 게임 수학
- Cartoon Rendering
- URP로 변경
- OculusMotionVectorPass
- 작업 집합
- Private Bytes
- Toon Shader
- ASW(Application SpaceWarp)
- Virtual Byte
- ColorGradingLutPass
- Three(Two) Tone Shading
- 메모리 누수
- 개인 바이트
- URP
- 가상 바이트
- VR
- Specular
- AppSW
- 벡터
- 프로그래밍 기초
- C언어
- Windows Build
- 3d
- Rim Light
- working set
- Cell Shader
Archives
- Today
- Total
WinCNT
NPR(None Photo Realistic) - Cartoon 본문
예전 카툰 렌더링은 Outer Line이 정말 중요하게 여겨졌지만
현재는 딱히 중요하게 여기지 않은 것이 트랜드가 되었다
현재는 딱히 중요하게 여기지 않은 것이 트랜드가 되었다
Cartoon의 3요소
- Specular Reflection
- (Two)Tone Shading
- Rim Lighting
Toon shading의 3가지 방법
1. 전통적인 Texture LUT사용
N dot L을 밝기 값으로 사용하지 않고 텍스처의 U 좌표로 사용하는 법
이 방법의 장점은 텍스처를 바꾸기만 해도 다양한 효과를 나타낼 수 있다는 것
(팀 포트리스에서도 적용함)
2. ceil() 혹은 floor()함수 사용
N dot L의 값을 경계로 나눠서 구분한다
음영이 너무 칼같이 끊어지기 때문에 현재 트렌드에는 좀 맞지 않는다
3. smoothstep()함수 사용
smoothstep은 경계면을 적절히 보간해준다
Specular Reflection
일반적으로 Specular를 그대로 사용하면 카툰 렌더링에는 어울리지 않는다
smoothstep 등으로 카툰 렌더링에 어울리는 하이라이트로 바꿔야 한다
Rim Lighting
일반적인 Rim Light(시선벡터와 법선 벡터의 내적)
Rim Light를 모든 외곽선에 처리하는 것이 아니라 조명이 닿는 부분에만 처리
Rim Light가 적용되는 부위를 조정하도록 외부 변수 _RimThreshold추가
Rim Light의 굵기를 조정하도록 외부 변수 _RimAmount추가
Toon+Specular+Rim 처리 후 최종 결과
카툰 렌더링에서 Normal Map, Lim Lighting 적용시 주의점
노멀 맵의 경우 버텍스 노말을 노멀맵에 넘겨줘서 사용해야 예쁘게 나온다
림 라이트의 경우도 그냥 평범하게 할 경우
노멀 맵이 적용된 부분에도 림 라이트가 생기기 때문에
버텍스의 노멀을 사용해야 예쁘게 나온다
SSS
'게임 프로그래밍(학습 내용 정리) > 게임 수학' 카테고리의 다른 글
Radial Blur (0) | 2022.06.14 |
---|---|
Blur (0) | 2022.06.14 |
PBR - 2회차 (0) | 2022.06.07 |
VRAM과 PCI express (0) | 2022.06.07 |
Tonemaping (0) | 2022.05.10 |