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 Shader
- URP로 변경
- Windows Build
- Rim Light
- 작업 집합
- Three(Two) Tone Shading
- URP
- OculusMotionVectorPass
- 가상 바이트
- ColorGradingLutPass
- Cartoon Rendering
- ASW(Application SpaceWarp)
- 3d
- AppSW
- 개인 바이트
- Toon Shader
- 게임 수학
- 메모리 누수
- VR
- Private Bytes
- 프로그래밍 기초
- Specular
- 벡터
- C언어
- Cell Look
- Virtual Byte
- working set
Archives
- Today
- Total
WinCNT
셰이더 본문
3가지의 3대 행렬이 반드시 필요함
월드 행렬, 카메라 행렬, 투영 행렬
셰이더 안에서 프로그래머가 직접 연산을 하게 해줘야 한다
버텍스 셰이더, 픽셀 셰이더를 가장 많이 사용하고
최신작으로는 컴퓨팅 셰이더까지 존재한다
버텍스 셰이더로 공간을 연산하고
거기에 어떤 색으로 픽셀를 찍을 것인지 픽셀 셰이더로 정한다
다른 셰이더가 없어도 화면상에 표시할 수 있지만
버텍스 셰이더랑 픽셀 셰이더가 없으면 아예 그려지지 않는다
버텍스 셰이더는 월드 행렬, 카메라 행렬, 투영 행렬를 반드시 곱해야 한다
카툰 렌더링 꿀팁
ramp shader의 기법 중 하나
펙셀 셰이더는 if문(분기) 등의 효율이 떨어지는 코드는 피해야 한다
모니터의 모든 픽셀에 대해서 연산하니 엄청난 비용이 드는데
분기를 타게 되면 캐시 히트율이 떨어지기 때문에 실행 속도가 느려진다
N dot L을 하면 0~1(음수는 보통 무시)의 값이 나오며,
보통은 이것을 이용해서 밝기 값으로 사용하고 있었다
텍스처 맵핑에 필요한 UV좌표 값도 0~1의 값이다
(DX에서는 U가 X축, V가 Y축?)
그럼 N dot L의 값으로 텍스처의 값을 가져오면
픽셀 연산을 하지 않고도 값을 가져올 수 있지 않을까!라는 발상에서
전혀 다른 룩을 만들 수 있게 되었다!
그것이 바로 Toon shader이다
SSS
'게임 프로그래밍(학습 내용 정리) > 게임 수학' 카테고리의 다른 글
Matcap Texture (0) | 2022.04.05 |
---|---|
법선 매핑(Normal Mapping) (0) | 2022.03.22 |
Direct2D - 흑백 쉐이더 만들기 (0) | 2022.01.19 |
PBR (0) | 2022.01.11 |
조명 처리 (0) | 2022.01.11 |