ray marching 1
이전에 ray casting에 대해 다루어 보았다.
ray casting을 이해해 보자..
목표 ray를 이해하고 구현해보자. ray(광선) casting(투사)는 무었인가? 레이캐스팅에 대해 알기 위해서는 이 기술의 탄생 배경을 좀 살펴봐야 한다. GI(전역 조명모델)와 LI(지역 조명모델)을 보면 GI
mgun.tistory.com
사실 ray casting, ray tracing, ray marching 이라는 용어에서 볼 수 있듯이 전부
3d 공간에서 ray를 투사하여 픽셀을 계산하는 방법인데 어디까지 어떻게 계산하냐에 따라
이름만 다른거라 생각하면 된다.
쉽게 정리해 보면 아래와 같다.
1. Ray Casting
- 광선을 scene으로 투사하여 첫번째 충돌하는 객체만 렌더링.
- 깊이정보 없이 단순한 광선-객체 교차 계산만 수행
- 단순한 충돌 감지
2. Ray Tracing
- Ray Casting의 확장판으로 빛의 경로를 추적하여 실제 빛과 유사한 결과를 생성.
- 고품질 렌더링으로 비용이 높으며 경로추적(Path Tracing)과 결합하여 사실적인 GI 표현 가능.
- 물리적으로 정확한 빛 표현
3. Ray Marching
- Ray Casting과 유사하지만 장면에 대한 SDF(Signed Distance Field)사용.
- 객체와의 충돌 대신 점진적으로 전진(marching)하여 거리를 평가.
- 거리 필드 기반으로 특수효과 생성
레이마칭을 위한 알고리즘의 순서는 아래와 같다.
1. Ray Direction 구하기 (현재 eye point가 어느 픽셀을 바라보고 있는가)
2. 레이마칭 수행.
3. ray를 반복 전진시키면서 surface에 도달했는지 여부 체크. (SDF)
4. max distance까지 정해진 횟수만큼 전진했는데 아무것도 없음
max distance까지를 목표로 전진하고 있는데 물체를 만나거나 물체내부임.
shader toy code : https://www.shadertoy.com/view/3f2SDw
Error - Shadertoy BETA
Sorry! :-( We either didn't find the page you were looking for, or there was an internal error. If you encounter this problem repeatedly, feel free to send us feedback.
www.shadertoy.com

나머지는 2부에서.
'Study > Graphics ' 카테고리의 다른 글
ray marching 3 (0) | 2025.03.29 |
---|---|
ray marching 2 (0) | 2025.03.23 |
ray casting을 이해해 보자.. (0) | 2023.01.10 |
(OpenGL) 도넛,큐브,원,사각형 그리기 (0) | 2022.11.19 |
Chromatic Aberration 4 (색수차) (0) | 2020.12.31 |