이번 단계에서는 '레이 트레이싱'이 무엇인지 얇게나마 알아보면서 프로젝트의 방향과 의미를 생각해본다.
레이트레이싱?
이번 프로젝트에서는 C 언어만으로 레이트레이싱(ray-tracing)을 구현해보도록 한다. 레이트레이싱은 단순히 말하자면 '눈'을 시뮬레이션하는 것이다. 인간은 어떻게 사물을 볼 수 있을까? 광원으로부터 반사된 빛이 눈으로 들어와 상을 맺기 때문이다. 레이트레이싱은 이를 최대한 모방해서 현실과 가까운 이미지를 얻는다.
(참고: Future of Gaming : Rasterization vs Ray Tracing vs Path Tracing)
Ray-tracing in C?
C를 통해서 레이트레이싱을 구현하는 일은 쉽지 않다. 무엇보다 C에는 클래스가 없기 때문에 좀 지저분하게 코드를 짜야하는 경향이 있다.
하지만 그만큼 빠른 속도를 가져올 수 있다는 장점이 있다. 또한 스크래치 단계에서부터 레이트레이싱을 구현해보면서 벡터, 근의 공식 등을 코드로 표현하는 방법을 배워볼 수 있을 것이다.
이 프로젝트는 42서울의 mini-rt를 기반으로 한다. 그렇기에 mlx와 같은 42에서 제공하는 라이브러리를 사용한다.
'Coding > Toy Project' 카테고리의 다른 글
[python] 웹 크롤링으로 게시판 업데이트 확인하기 (1) (0) | 2021.05.05 |
---|---|
[Ray Tracing in C] 2. 벡터 (0) | 2021.04.13 |