속도를 향상시키기 전에 현재 얼마나 걸리는 지 측정해보자.
VolumeRendererDoc.cpp
내 컴퓨터에서 시간은 약 14.04 초 로 나온다.
시간을 줄여보자 시간이 가장 많이 잡아먹는 부분은 함수 RenderMIPAnyDirection에서 3중반복문 안의
view_vector 만큼 진행되면서 1000번 반복하는 부분이다. 이 부분을 적당한 값만큼 반복하는 것으로 만들 수 있다면 걸리는
시간이 줄어들 것이다.
cur_coord = cur_coord + k*view_vector 이라면 k 값을 구하여 반복횟수를 줄일 수 있을 것이다.
- x,y,z 각각 cur_coord 가 volume에 접근하는 k 값을 구한다.
- x,y,z 각각 cur_coord 가 volume에서 나가는 k 값을 구한다.
- 접근할 때의 k 값은 1의 max 값이다.
- 나갈 때의 k 값은 2의 min 값이다.
이를 구현해보자.
Renderer.cpp
RenderMIPAnyDirection 함수도 수정한다.
실행하면 결과는 약 10.55 초 가 나온다. 약 4초 줄어든 것을 확인할 수 있다.