Notice
Recent Posts
Recent Comments
«   2025/05   »
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
Archives
관리 메뉴

일상

Fresnel Coefficient 적용해보기 -03 본문

computer graphics

Fresnel Coefficient 적용해보기 -03

Mysteryu 2021. 10. 8. 22:25

이전 포스팅에서 Fresnel 방정식을 이용하여 이미지를 생성해보는 것을 잠정적으로 중단한다고 했는데 사실 그때부터 뭔가.. 뭔가 더 하면 Ray Tracing in One Weekend에 있는 소스코드를 수정해서 프레넬 계수를 적용한 이미지를 생성할 수 있다는 느낌을 받았다.

 

다만 계속 이 주제에 매달릴 수는 없어서 잠시 중단한다고 했었는데 어제 저녁에 원래의 소스코드에서 내가 만든 Ray Tracer에 있는 코드를 가져와서 수정을 한 후에 이미지를 생성을 해 보았다.

 

놀랍게도 정상적으로 이미지가 생성이 되었다!!

 

그래서 바로 Ray Tracing in One Weekend 10.5 까지의 소스코드로 만든 이미지와 내가 추가/수정한 소스코드로 만든 이미지를 비교를 해 보았다.

 

참고로 Ray Tracing in One Weekend 10.5까지의 코드는 Schlick Approximation을 이용한 소스코드이고

내가 추가/수정한 소스코드는 fresnel equation을 이용한 소스코드이다.

 

(1). 위. fresnel equation 이용 / 아래. Schlick Approximation 이용

 

 

(2). 위. fresnel equation 이용 / 아래. Schlick Approximation 이용

 

(3). 위. fresnel equation 이용 / 아래. Schlick Approximation 이용

 

(4). 위. fresnel equation 이용 / 아래. Schlick Approximation 이용

 

 

첫번째 비교 이미지들을 제외하고는 각각의 비교 이미지마다 차이가 있다는 것을 볼 수 있었다.

무엇이 더 photorealistic한 이미지인가를 생각해봤는데.. 생각해보니 현실에서 유리구슬을 유심하게 본 기억이 없다.

...

 

그래도 내가 만든 이미지라 그런지는 몰라도 위아래 이미지 중에서는 위의 이미지가 좀 더 나은것 같다 ㅎㅎ;

 

다만 문제점이 있었는데 Ray Tracing in One Weekend에서 제공하는 소스코드의 경우 이미지를 생성하는 시간이 아무리 길어봐야 1분도 걸리지 않았다.

 

문제는 내가 추가/수정한 이미지는 이미지를 생성하는 시간이 너~~무 오래걸렸다. 특히 (3)의 위 이미지는 이미지를 생성하는데 약 5시간정도 걸렸고 (4)의 위 이미지는 무려 약 6시간 30분 정도의 시간이 소비되었다.

 

그러다보니 안티엘리어싱을 위한 샘플의 개수와 최대 recursive 횟수를 낮출 수 밖에 없어서 아쉬웠다.

BVH 알고리즘을 공부하기는 했지만 적용하기에는 아직 공부가 덜 되었기 때문에 이후에 시간이 생긴다면 BVH 알고리즘을 적용하여 샘플의 갯수와 최대 recursive 횟수를 늘려봐야겠다.

 

.

.

.

 

여튼 목표로 했던 fresnel equiation을 이용한 photorealistic한 이미지를 생성하는것을 완료를 하게 되었다.

 

느낀점은 사실 이 작은 프로젝트를 하기 전에 생각을 했던 것은 무조건 fresnel equiation을 이용한 이미지가 더 좋은 결과가 나올것이다 라고 생각했다. 왜냐하면 Schlick Approximation을 적용한 이미지는 사실 반사/굴절의 경우를 디테일하게 설정하지 않았기 때문이다. 

 

물론, 이미지를 비교를 해 보니 fresnel equiation을 적용한 이미지가 더 좋아보이기는 하였다. 다만 이미지를 생성을 하는데 너무 많은 시간이 걸리고 두 이미지를 비교해볼때 photorealistic함?이 크게 차이가 나는것 같지는 않았다. 그러다 보니 조금 더 photorealistic한 이미지를 만들기 위해 상대적으로 엄청 많은 시간을 더 들여야 한다면 과연 이게 괜찮은 방법일까? 라는 의문이 들게 되었다. 

 

그래도 내가 직접 생각해서 소스코드를 작성하고 이미지를 생성해보니 단순히 제공하는 소스코드를 공부만 하는것보다는 재미있었고 의미있는일이 된 것 같다. 지금은 Ray Tracing the Next Week를 공부하고 있고 공부를 하다가 이번처럼 또 소스코드를 직접 작성해서 기존의 이미지와 비교해 볼 수 있도록 해봐야겠다. 

 

 

 

 

 

 

 

'computer graphics' 카테고리의 다른 글

bvh 적용해보기 - 01  (0) 2021.11.12
Cornell box 만들어보기  (0) 2021.11.06
Fresnel Coefficient 적용해보기 -02  (0) 2021.10.03
Fresnel Coefficient 적용해보기 -01  (0) 2021.09.30
프레넬 방정식 적용해보기  (0) 2021.09.30
Comments