학교수업에서 병렬처리에 대해 발표를 준비하면서 좀 더 빠르게 kd-tree를 처리할 수 없을까 해서 ray-tracing에 대한 최적화 기법을 정리한 Ingo Wald의 Realtime Raytracing and Interactive Global Illumination 문서(6,7장)를 보고 간략하게 만들었다.
간만에 ray tracing 작업을 해서 그런지 밤새가면서 정말 잼나게 작업한 것 같다. SIMD로 Ray 4개를 하나로 묶어 하는건 Global Illumination 환경에서는 그다지 효율적이지 않을 것 같아서 일단 패스. 멀티 스레드 환경에서 mailboxing 하는 것을 좀 더 보려고한다.
길성이 조교실 컴이 i7이라고 해서 성능을 비교 했는데 내 구닥다리 듀얼코어 2.0GHz 보다 약 4배 빠르다;;;
요건 샘플개수 4096개. 둠3 모델은 역시 유용하다.
덧. mailboxing을 사용해봤는데 애초에 kd-tree를 잘 짜면 교차되는 삼각형의 수가 적기 때문에 크게 효율이 오르진 않았다. 멀티 스레드 환경에서는 hash table을 이용해서 mailboxing을 수행한다.
너무 어둡게 나와서 directional light 하나 추가하고 노출값 조절함.