CPU 레이트레이서에 3D 파일을 불러서 CPU로 렌더링을 하려고 하니까,

샘플 모델을 이루는 삼각형들이 15000개나 되서 이걸 레이가 충돌할 때마다 O(n) 으로 하나하나 충돌하는지 아닌지 확인하려고 하니 속도가 오질라게 느리더라고


그래서 어찌어찌 인터넷에서 KD트리를 활용해서 광선 충돌이 되는 영역의 탐색을 최적화 하는 방법을 구현해서

기존에는 218초~230초 정도 되는걸 같은 설정에서는 14~16초로 줄어들게 했음.


그래서 거의 같은 렌더링 시간으로 샘플 수를 높여서 렌더링할 수 있게 됨 개굿.





위에는 KD트리를 적용하지 않았을 때, 픽셀 당 샘플 수 2개로 230초 정도 걸림. 밑에껀 KD트리를 적용한 후에 픽셀 당 샘플 수를 32개로 정했는데 270초밖에 안나옴.

KD트리를 적용 안하고 32 샘플링을 했으면 렌더링하는 데 1시간 정도 걸렸을 듯.


일단 KD트리만 적용해서 보자는 심정으로 무대뽀로 코딩을 해서, 리팩터링 하면 처리시간이 더 줄어들면 줄어들었지 늘지는 않을 듯 싶음. ㅇㅇ