Ray Tracing in One Weekend
컴퓨터그래픽스에 관심이 생기고 실제로 무언가를 해보고 싶은 마음이 있어서 찾아보던 중
간단하게 레이트레이싱을 공부할 수 있는 사이트를 발견하게 되었다.
https://raytracing.github.io/books/RayTracingInOneWeekend.html
Now we can change our main to use this: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight #include "color.h" #include "vec3.h" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
raytracing.github.io
제목에서는 One Weekend 라고 되어있지만 나는 다 따라하고 코드 이해하는데만 2주넘게 걸린 것 같다.
사실, 아직도 defocus blur쪽은 이해가 가질 않는다. (다른 부분도 사실은 음..)
밑에는 내가 직접 생성해본 이미지들이다
첫번째, 두번째 이미지는 땅을 metal material로 설정하고 생성한 이미지이다.
사실 metal이라고는 하지만 그냥 80%의 반사율을 가진 material이라고 해도 될 듯 하다.
직접 생성해본 이미지라고는 하지만 사실 코드 몇줄 수정한게 전부이다.
위의 사이트에는 이외에도 굴절을 다루게 되는데 사실 현실에서는 굴절과 반사가 같이 일어나게 된다.
다만 위 사이트에서는 굴절따로, 반사따로 다루고 두개를 같이 다루는 코드는 없기 때문에 내가 직접 코드를 작성해보면
의미가 있을 것 같아서 진행을 해보려고 한다. 주어진 코드를 따라가는것도 힘들었지만 그래도 직접 생각하고 실패도 하면서 작성을 해보는게 더 도움이 될 것이라고 생각이 된다.
지금은 scratchapixel 이라는 사이트에서 프레넬 방정식을 공부를 한 상태이고 Raytracing in oneweekend 에서는
Schlick Approximation 라는 프레넬 방정식과 근사한 값을 나타내주지만 계산량은 훨씬 괜찮은 방법을 소개한다.
어차피 적용 방법을 비슷할 것이라고 생각해서 프레넬방정식과 Schlick Approximation을 적용한 이미지를 각각
생성해본 다음 비교해본다면 의미 있는 일이 될 것 같다.
그리고 성공적으로 된다면 "Rendering of wet material"의 경우도 한번 직접 생각해서 작성해보고 싶다.
남은 시간이 얼마 없기 때문에 열심히 해야겠다.