반투명 DVR 에서 Clipped 표면의 투명도가 높을 경우 해당 표면의 Shading 이 최종 Rendering 결과에 미치는 영향이 미비하여 이를 무시할 수 있다. 그러나 Clipped 표면이 반투명에 가깝게 가시화될 경우, 다음과 같이 경계가 지저분하게 가시화된다.

<타이어 휠 데이터에 대한 Clipping 가시화>
이 경우 Clipped 단면을 '깨끗히' 가시화하기 위해 단면의 Voxel 이 정의하는 normal vector를 Clipping plane의 normal vector 로 사용하여 가시화하거나, normal vector에 영향을 받는 shading factor를 적용 안 한 Unshading mode를 사용하는 방법있다.
전자의 경우 Clipping Box가 회전함에 따라 Shading 이 Clipped 표면에서 일괄적으로 바뀌는 가시화가 이루어지는데, Clipped 표면 자체에 집중할 경우 보기가 불편할 수 있다는 단점이 있다.
하여, 여기서는 후자인 Unshading mode를 사용하였다.
<Unshading Mode를 적용한 가시화 결과>
그러나 문제는 큰 사이즈의 볼륨을 가시화하기 위해 Chunk 자료 구조를 사용할 경우, 다음과 같이 예기치 못한 문제에 봉착할 수 있다는 것이다.
물론 학술적으로 전혀 의미가 없지만 프로그램의 완성도를 위해 이를 처리할 필요가 있었다.
Chunk 단위의 가시화를 위해 Sample Box를 Chunk와 Clipping Box의 교집합으로 정의할 경우, 이러한 Chunk 경계에서 예기치 않은 unshading 으로 인한 줄무늬가 발생한다.
이를 해결하기 위해 Chunk 경계가 Clipping Box 안에 있는가를 확인하는 루팅을 두었고, 이는 최초 Sample Box의 시작점에 대해서만 판정해 주면 되기 때문에 별도의 overhead도 거의 없는 효과적인 방법이다.
다음은 이 문제를 해결한 최종 결과이다.
![]() |
-_-v |
No comments:
Post a Comment