1. 서 론
볼륨 가시화(volume rendering)란 삼차원 볼륨 데이터를 읽어 영상을 생성하는 가시화 기법이다[1,2]. 주로 의학적, 공학적 가시화에 사용되며 의학용으로는 임상 진단이나 수술 모의실험 등에 사용된다. 볼륨 데이터는 일반적으로 복셀(voxel)이라고 부르는 스칼라(scalar)값의 삼차원 배열 형태로 구성되어 있다. 의학용 데이터 중, CT 볼륨 데이터는 스칼라 값이 X-선(X-ray) 흡수도를 의미하므로, 값이 커질수록 더 단단한 조직을 의미한다. 예를 들면 뼈를 나타내는 복셀의 스칼라 값은 피부를 나타내는 복셀의 스칼라 값보다 크다.
볼륨 가시화의 대표적인 방법인 광선 투사법(raycasting)[1-3]은 Fig. 1과 같이 영상을 구성하는 각 화소(pixel)에서 광선을 가상으로 발사하고, 육면체 형태의 볼륨 데이터를 관통하는 선분 영역의 색상을 종합하는 방법이다. 볼륨 데이터를 관통할 때, 광선이 만나는 복셀의 밀도 값은 사용자가 정의한 변환함수를 통해 색상과 투명도 값으로 변환된다. 색상은 조명 효과에 따라 더욱 실감나는 색상으로 변경되고, 광선이 진행함에 따라 얻는 색상과 투명도 값을 반복 누적하여 혼합한 결과를 최종 색상으로 결정한다[4].
Fig. 1.Ray-casting volume visualization.
빛에 의해 만들어지는 음영은 볼륨 데이터의 굴곡이나 깊이를 현실감 있게 가시화한다. 현실 세계와 동일한 음영처리는 물리적으로 계산이 불가능하게 복잡하기 때문에, 실용적으로는 컴퓨터 연산에서 실시간 처리가 가능하도록 간략하게 표현하고 있다. 최근 고속의 하드웨어가 등장하여[5-7] 다양한 조명 및 음영 효과가 시도되고 있으며, 본 연구도 이에 맞춰 복잡한 음영효과를 빠르게 처리하는 방법을 제안한다.
고전적으로 실시간 볼륨 가시화에서는 지역 조명기법을 사용하였다[1,5,6]. 대표적인 지역 조명 기법인 퐁 쉐이딩(phong shading)은 조명의 방향과 각 복셀이 가진 법선벡터만을 고려하여 음영을 결정한다. 구체적으로, 광선이 마주친 샘플 위치의 법선벡터를 구하고 법선벡터와 조명의 방향과의 관계를 이용하여 해당 샘플의 음영을 결정한다. 가시화 결과는 Fig. 2와 같이 물체의 윤곽이 잘 표현되지만, 상대적으로 빛을 덜 받는 안쪽 부분(원으로 표시)이 어둡게 표현되지 않기 때문에 깊이감이나 공간감이 떨어지는 문제가 있다.
Fig. 2.Conventional local illumination method.
이에 비해 전역 조명 기법은 샘플 주변의 상황을 고려하여 음영을 표현 할 수 있기 때문에 깊이감과 공간감이 향상된다. 하지만 샘플 주변의 다양한 조건을 고려해야 하므로 연산량이 증가하여 가시화 성능이 많이 감소한다. 본 연구는 지역 조명 기법의 깊이감 저하 문제와 전역 조명 기법의 성능 저하 문제를 개선하기 위한 방법을 제안한다. 연산량이 많아 속도가 느리다고 알려진 고화질 전역 조명 기법인 환경-광 가림 기법을 가속화하여 실시간 처리를 가능하게 하였다.
2. 관련 연구
2.1 환경-광 가림(ambient occlusion)
본 연구가 개선하려고 하는 환경-광 가림 기법[8]은 고품질의 음영을 생성하는 전역 조명 기법 중 하나이다. 이 기법은 어떤 지점의 음영을 처리할 때, 주위가 불투명 할수록 주변에서 입사하는 빛 에너지인 환경-광을 가리고 있다고 판단하여 음영을 어둡게 처리하는 기법이다. 볼륨 데이터를 가시화 할 때 움푹 패여 있는 부분은 빛을 덜 받기 때문에 어둡게 처리되어 현실감이 강화된 영상을 얻을 수 있다.
환경-광 가림의 수학적 정의는 다음과 같다[9].
식 (1)은 x지점의 법선벡터 n을 가진 점의 환경-광 가림을 구한다. 반구 Ω전체에 걸쳐 사영된 입체각(n•ω)에 대한 가시함수(Vx,ω)를 적분함으로써 계산한다. 단, x지점에서의 가시함수는 ω방향으로 완전히 가리워질 때 0이고 그 밖의 경우는 모두 1이다.
최근 해당 샘플 주변의 불투명도(opacity)를 효율적으로 계산하여 환경-광 가림 기법의 연산량을 줄이기 위한 여러 방안이 연구되고 있다. 해당 샘플에서 모든 방향으로 광선을 발사하여 광선들의 총 길이를 가림 깊이로 사용하는 방안[8]이 있고 해당 샘플에 인접한 주위 샘플의 밀도들을 히스토그램으로 만들어 해당 샘플의 밀도와의 차이를 고려하여 불투명도를 결정하는 방안[10] 이 있다. 그리고 조명을 가리는 방해물의 위치와 모양 등의 정보를 미리 계산하여 저장하고 이를 사용하는 방안[9], 해당 물체의 모양을 여러 개의 패치로 단순화 하여 모델링 후, 연산량을 줄이는 방안[11]등 많은 방안들이 제시 되고 있다.
하지만 기존 방법들은 광원이나 투명도, 색상 변환 함수 변경 시 속도가 크게 느려지거나[9-11], 볼륨 데이터의 몇 배에 해당하는 대량의 추가 메모리가 소요[9,10]되는 단점이 있다. 본 연구는 기존 방법과는 달리 투명도 및 색상 변환 함수의 변경이 일어나도 속도 저하가 없을 뿐만 아니라, 볼륨 데이터와 동일한 크기의 추가 메모리만을 소요하는 장점이 있다.
3. 연구방법
본 연구는 환경-광 가림을 효율적으로 수행하기 위해 볼륨 데이터의 지역정보인 밀도 분포를 이용한다. 환경-광 가림은 각 샘플 주변에 빛을 가리는 물체가 얼마나 존재하는지에 대한 근사함수라는 점에 착안하여, 본 연구는 각 샘플 주변의 입자 분포를 정규분포로 가정하여 근사하였다.
각 샘플 주변의 입자 분포를 정규분포로 연산할 때 많은 수의 평균과 표준편차를 획득해야 하는데, 이 연산을 효율적으로 수행하는 방법을 3.1절과 3.2절에 설명한다. 3.3절에서는 정규분포로 가정한 주변분포를 이용하여 효율적으로 환경-광 가림 음영연산을 수행하는 방법을 설명한다.
3.1 평균과 표준편차를 이용한 지역정보 생성
본 연구는 가시화 수행 중에 볼륨 데이터의 밀도 분포를 참조하기 위해, 평균과 표준편차를 계산하여 지역정보를 생성한다.
Fig. 3과 같이 각 복셀을 중심으로 인접한 영역인 블록의 크기를 정한다. 만약 블록의 크기가 n×n×n 이라면 볼륨 데이터의 각 복셀을 중심으로 크기가 n×n×n인 삼차원 블록을 가정한 후, 영역 안에 있는 밀도 값들의 평균과 표준편차를 계산한다. 확률변수 x에 대해 평균값을 E(x), 표준편차를 σ(x) 라고 하였을 때, 본 연구는 빠른 계산을 위해 분산을 이용한식 (2)를 사용한다.
Fig. 3.Block area with a voxel as the center.
E(x2)는 블록 내부에서 각 복셀 값을 제곱하여 평균을 구한 값이므로, 미리 각 복셀 값을 제곱한 볼륨 데이터를 임시로 생성하여 계산에 활용하였다. 각 복셀을 중심으로 한 블록의 평균과 표준편차를 구하기 위한 과정에서 삼차원 블록 영역 안의 모든 밀도의 합을 계산해야 한다. 전 처리 작업으로 생성된 평균과 표준편차는 별도의 공간에 저장하여 가시화 알고리즘을 수행할 때 볼륨데이터와 같은 방식으로 참조한다. 한편, 평균과 표준편차를 구하려면 크기 n 만큼 삼중 반복 연산을 해야 하고 연산량이 각 복셀에 대해 O(n3)이 되므로 수행 성능 향상을 위한 추가의 방법이 필요하다.
3.2 평균과 표준편차 생성을 위한 고속 알고리즘
평균과 표준편차를 빠르게 구하기 위해, 본 연구는 각 복셀을 중심으로 삼차원 블록안의 모든 밀도의 합을 구하는 효율적인 방법을 제안한다. 구체적으로, 중복되는 값을 재사용하여 불필요한 반복을 줄이며, 삼차원 블록을 이차원 및 일차원 영역으로 분해하여 값을 재사용한다.
먼저 볼륨 데이터의 한 복셀을 중심으로 크기 n×1×1 만큼의 일차원 선분 영역을 생성하고 밀도의 합을 구한다. 인접한 다음 위치를 중심으로 선분 영역의 합을 구할 때, (n-1)×1×1 만큼의 영역은 중복되므로 이전 단계에서 얻은 합계 값을 재사용할 수 있다. 이전 합에서 중복되지 않는 마지막 복셀의 밀도 값을 빼고 다음 만나는 새로운 복셀의 밀도 값을 더하면 빠르게 새로운 결과를 얻을 수 있다. 이렇게 모든 복셀을 중심으로 n×1×1 만큼의 일차원 선분 영역의 합계를 구한다.
이 후, 한 복셀을 중심으로 크기 n×n×1만큼의 이차원 면 영역을 생성하여 합을 구한다. 이전 단계에서 구한 선분 영역 n×1×1의 합계를 y축 방향으로 n번 더하면 얻을 수 있다. 게다가 중심이 인접한 다음 위치 면 영역은 이전 영역과 n×(n-1)×1 만큼이 중복된다. 진행 방향으로 중복되지 않는 이전 선분의 합을 빼고 새로운 선분의 합을 더하여 진행한다. 이렇게 각 복셀을 중심으로 n×n×1 영역의 이차원 평면 영역의 합계를 모두 구할 수 있다.
위와 같은 방법으로, 모든 복셀에서 면의 합을 구하면 이를 재사용하여 크기 n×n×n만큼의 삼차원 블록 영역을 생성하여 합을 구한다. 다음 위치 블록 영역의 합은 진행 방향으로 이전 면의 합을 빼고 새로운 면의 합을 더하여 최종으로 크기가 n×n×n인 삼차원 블록 영역안의 모든 밀도 합을 구한다.
예를 들어, Fig. 4는 크기가 5인 일차원 영역을 나타낸 그림이다. 중심인 2번 복셀의 밀도 값인 9를 포함하여 좌우로 인접한 복셀들의 밀도 값 4, 7, 9, 5, 8의 합을 구한다. 구한 합에서 진행 방향으로 0번 복셀의 밀도 값인 4를 빼고 5번 복셀의 밀도 값인 14를 더하면 중심 3번을 기준으로 크기가 5인 일차원 영역의 합을 구한 것과 같다. 이렇게 중심 일차원 영역안의 모든 밀도 합을 구하는 과정을 진행한다. 같은 방법으로 이차원, 삼차원 영역의 합을 구한다.
Fig. 4.Calculating the sum of density values in one dimension.
위 식 (3)은 본 연구에서 삼차원 블록을 이차원, 일차원으로 분해하여 구하는 방법을 나타낸 식이다. P는 복셀의 밀도를 나타내며 SL(line)은 선의 밀도 합, SF(face)는 면의 밀도 합, SC(cube)는 블록의 밀도 합을 나타낸다. Fig. 5와 같이 선의 합을 x축으로 진행하여 계산했다면, 면의 합은 y축으로 진행하고, 블록의 합은 z축으로 진행하여 계산한다. 이를 통해 삼차원 블록 영역의 합을 빠르게 구할 수 있는데, 이값을 고정된 크기인 영역의 부피, n3 으로 나누면 식 (2)의 계산이 빠르게 수행된다. 이러한 증분(incremental) 알고리즘에서 각 복셀에 대한 연산은 O(1) 가 되어 가속화 이전의 O(n3)보다 성능이 크게 향상된다.
Fig. 5.Calculating the sum of density values in three dimension.
이러한 결과로, 각 복셀을 중심으로 크기 n×n×n만큼의 삼차원 블록 영역에 대한 평균과 표준편차를 O(n3)이 아닌 O(1)에 계산할 수 있게 되었다. 이로서 각 샘플에 주변의 분포에 대한 정보를 빠른 시간에 획득할 수 있게 된다.
3.3 고속 환경-광 가림 가시화 알고리즘
본 연구의 가시화 알고리즘은 광선 추적법을 그대로 따르되, 각 샘플위치에서 환경-광 가림 효과를 추가하여 구현하였다. 환경-광 가림을 구현하려면, 각 샘플 위치에서 주변 물체가 현재 샘플을 얼마나 가리는지 측정해야 한다. 샘플 주변이 투명하다면 가리는 물체가 없으므로 현재 샘플은 밝게 표현될 것이고, 샘플 주변이 불투명하다면 가림 정도가 높아서 현재 샘플은 어둡게 표현될 것이다.
환경-광 가림을 계산하기 위해, 투명도 변환 함수(opacity transfer function)[1,4]와 확률 밀도 함수를 이용한다. 주어진 환경-광 가림 값은 식 (4)와 같이 계산할 수 있는데, α(x)는 투명도 변환 함수이고 ρ(x)는 샘플 주변의 확률 밀도 함수(probability density function)이다.
예를 들어, 모든 샘플을 불투명하게 관찰한다면, 함수는 x에 무관한 상수함수인 α(x)=1.0가 적용되고 식 (4)는 확률 밀도 함수의 전 구간에 대한 적분이 되어 그 결과는 1.0이 된다. 식 (4)의 결과 값은 0.0~1.0 사이의 범위를 갖게 되는데, 샘플 주변에서 빛을 가리는 성질을 나타내므로, 이 값이 클수록 음영을 더 어둡게 처리하면 더욱 현실감 있는 음영처리 영상을 얻을 수 있다.
단, 식 (4)의 적분을 그대로 계산하면, 각 샘플마다 볼륨 데이터의 밀도범위 크기만큼 반복 누적을 수행해야 하므로 오랜 시간이 소요되는 단점이 있다. 본 연구는 이 연산을 효율적으로 수행하는 방법을 제안한다. 투명도 변환 함수 α(x)가 Fig. 6과 같은 일반적인 형태[1,3]라고 가정하면, 식 (5)와 같이 조각적 선형 함수로 표현할 수 있다. 그리고 본 연구는 각 복셀을 중심으로 하는 블록 영역에 대해 저장된 평균(m) 과 표준편차(σ) 값을 이용하여, 영역의 분포를 정규 분포 N(m, σ2)로 가정하였다.
Fig. 6.Common opacity transfer function.
계산의 편의를 위해, 블록 영역의 분포를 정규분포 중 특수한 형태인 표준 정규분포 N(0, 1)로 가정하여 계산한다면 다음과 같다. 샘플 주변의 확률 밀도 함수인 ρ(x)가 표준 정규분포가 되기 때문에 식 (4)의 환경-광 가림은 식 (6)과 같이 전개가 가능하다.
위 식 (6)에서 N(x)는 표준 정규분포를 적분한 누적 표준 정규분포에 해당하며, 변하지 않는 값이므로 미리 표로 계산해 둘 수 있다. N(x)의 계산이 메모리 참조 한번으로 종료되므로, 식 (6)의 값은 반복계산없이 상수시간 O(1)에 연산을 수행할 수 있다. 이 때, 식 (6)은 Fig. 6의 a와 b에 관련한 함수가 된다.
한편, 본 연구는 블록의 밀도 분포를 표준 정규분포가 아닌 일반적인 정규분포 N(m, σ2)로 가정하였다. 이 경우, 식 (6)과 같이 발생 가능한 모든 정규분포의 경우의 수에 대해 누적 정규분포 N(x)를 만들어 두는 것은 가능하지 않다. 본 연구는 이 문제를 해결하기 위해, 정규분포의 표준화 변수 변환인 z = (x-m)/σ 식을 이용하여 a와 b값을 식 (7)으로 변형하였다. 그 결과, 각 블록의 분포를 일반적인 정규분포로 가정하였을 때, 식 (7)의 결과를 식 (6)의 a, b에 그대로 대입할 수 있다.
이 결과를 요약하면 다음과 같다. 환경-광 가림은 주변 물체의 투명도 분포의 적분으로 근사할 수 있으며 반복 연산이 필요하다. 본 연구는 밀도 분포를 정규분포로 가정하고 밀도와 투명도의 관계가 Fig. 6과 같은 조각적 선형으로 구성되었을 경우, 환-경광 가림이 식 (6)과 같이 반복 계산 없는 식으로 빠르게 연산이 가능함을 증명하였다.
실제 구현은 다음과 같다. 3.1절과 3.2절에서 제시한 바와 같이, 각 삼차원 블록 영역에 대해 평균과 표준편차를 전처리 과정에서 빠르게 계산하여 저장한다. 가시화 과정에서는 각 샘플을 중심으로 하는 영역의 평균(m)과 표준편차(σ), 그리고 사용자가 지정한 투명도 변환 함수 값인 a, b를 이용하여 식 (7)에 대입한다. 결과 값인 a', b' 값을 다시 식 (6)에 대입하면, 환경-광 가림 정도를 계산할 수 있다.
4. 실험 결과
본 연구에서 실험에 사용한 컴퓨터의 사양은 i5 CPU, 8GB RAM, Geforce GTX 680 GPU이다. 화면 출력은 DirectX10을 사용했으며[12], 광선 추적법 알고리즘 구현은 CUDA를 사용하였다. CUDA는 GPU 를 범용 C언어와 비슷하게 사용하기 위해 개발된 언어이며, GPU에 있는 수백 개의 코어를 이용하여 병렬처리 하기 때문에 CPU만을 사용했을 때에 비해 성능이 대폭 향상된다[13,14]. 볼륨 데이터는 CT에서 획득한 복부(512×512×278)와 머리(512×512×553) 데이터를 사용하였다.
광선 추적법 알고리즘에는 일반적으로 적용되는 빈 공간 도약 기법(empty space leaping), 조기 광선 종료 기법(early ray termination)을 통한 가속화를 적용했다[15-19]. 빈 공간 도약 기법은 광선 추적법 기반의 볼륨 가시화의 대표적인 가속화 기법으로써 출력 영상에 반영되지 않을 투명한 영역을 미리 추출하여 걸러내는 방법이다. 볼륨 데이터를 블록으로 나누어 각 영역의 최댓값, 최솟값 등을 검색하여 별도의 메모리에 저장한다. 이를 가시화 수행 중에 참조하여 광선이 진행 도중 마주친 블록이 투명한지를 판단하고 투명한 블록이라면 건너뛰어 가속화 한다[17,18]. 조기 광선 종료 기법은 광선 추적법에서 각 광선이 누적해 나가는 색상의 불투명한 정도가 매우 커지면 더 이상 광선의 진행이 불필요하므로 종료하는 방법이다.
평균과 표준편차 데이터를 생성하는 과정에서 볼륨 데이터는 정수 좌표에 저장되기 때문에, 기준 복셀의 인접한 영역의 크기를 일정하게 하려면 영역의 크기는 홀수로 지정하는 것이 편리하다. 실험에서는 5×5×5, 9×9×9, 15×15×15, 45×45×45 크기의 블록 영역을 사용했다.
Fig. 7과 Fig. 8은 각각 복부 데이터와 머리 데이터를 가시화 한 결과 영상이다. 왼쪽은 지역조명 효과만을 적용한 결과영상[1,6,10] 이고, 가운데는 본 연구에서 제안한 환경-광 가림 효과를 적용한 결과 영상이다. 오른쪽은 지역조명 효과와 환경-광 가림 효과를 혼합한 결과 영상이다.
Fig. 7.Rendering images of abdomen dataset (n=15).
Fig. 8.Rendering images of head dataset (n=15).
가시화 결과 영상을 보면 각 조명기법마다 차이가 나타나는데, 기존의 지역 조명 기법은 물체의 윤곽을 잘 드러낼 수 있지만 전역 조명의 효과를 나타내기 어려웠다. 환경-광 가림 결과 영상인 가운데 그림을 보면 Fig. 7의 척추 뒤쪽의 움푹 들어간 뼈마디 부분과 Fig. 8의 눈 주위, 귀 내부 등 상대적으로 조명을 받지 못하는 부분이 어두워져 현실감 있는 효과를 볼 수 있다.
본 연구에서는 지역조명 효과와 환경-광 가림 효과를 혼합하기 위해 식 (8)을 설계하여 사용했다. C1(Ambient), C2(Ambient occlusion), C3(Diffuse)는 각 조명효과의 상수로써 차례대로 (0.15, 0.45, 0.40) 을 대입하였고 AO는 환경-광 가림의 결과 값이다.
Fig. 9는 식 (8)의 각 조명 효과의 상수인 (C1, C2, C3)의 값을 변화하여 비교한 결과이다. 왼쪽부터 (0.15, 0.15, 0.70), (0.15, 0.45, 0.40), (0.15, 0.65, 0.20) 을 대입하였다. 본 연구에서 제안한 환경-광 가림 효과의 상수인 C2와 지역조명 효과의 상수인 C3의 비율에 따라 각 조명효과의 특징이 혼합되는 것을 볼 수 있다. C2 값을 증가 시킬수록 환경-광 가림 영상과 유사하며, C3 값을 증가시킬수록 지역 조명과 유사한 결과를 얻도록 설계하였다. 따라서 C2가 0인 경우 기존의 지역 조명[1]과 동일한 결과를 얻도록 하였다.
Fig. 9.Rendering images from various lighting coefficients (C1, C2, C3).
Table 1은 지역조명 기법과 환경-광 가림기법을 혼합한 볼륨 가시화의 속도를 나타낸 표이다. 대표적인 지역 조명 기법인 퐁 음영기법과 비교했을 때 본 연구에서 제안한 방법이 약 1.5배 정도 느린 것을 볼 수 있다. 하지만, 본 연구는 여전히 실시간 가시화가 가능한 속도이며, 영상의 출력 품질이 기존 방법에 비해 우수한 것을 고려하면 속도의 저하는 감내할 수 있는 정도이다.
Table 1.Rendering speed for proposed method and conventional method (frame per second)
Fig. 10, Fig. 11은 본 연구에서 제안한 환경-광 가림을 수행 시, 지역정보(평균, 표준편차)를 생성할 때 사용하는 블록 영역의 크기에 따른 적용 결과 영상이다. 왼쪽 상단부터 차례대로 5×5×5, 9×9×9, 15×15×15, 45×45×45 의 크기를 가진 블록 영역을 사용했다. 블록 영역의 크기가 커질수록 해당 샘플 주변 복셀들을 더 많이 참조하기 때문에 지역정보를 추출하기 위한 근거 자료들이 많아지게 되어 조직별 지역정보가 비슷해지고 안정성이 높아진다. 그렇기 때문에 더 정확한 음영 처리가 가능해진다. 하지만 Fig. 10과 Fig. 11의 오른쪽 하단 결과 영상처럼 블록 영역이 보통 조직의 크기보다 지나치게 클 경우엔 지역정보를 생성 할 때 다른 조직들도 포함되기 때문에 각 조직에 대한 대비효과가 점점 줄어들게 된다. Fig. 10, Fig. 11의 왼쪽 하단 영상과 오른쪽 하단 영상을 비교하면 척추의 움푹 들어간 관절 또는 귀 조직 안쪽 부분의 음영이 오른쪽 하단 영상에서는 자세히 표현되지 않는 것을 볼 수 있다. 조직의 자세한 표현을 나타내려면, 볼륨 데이터의 복잡도에 따라 적당한 크기의 블록 영역을 사용해야 한다.
Fig. 10.Rendering images from various block sizes (abdomen).
Fig. 11.Rendering images from various block sizes (head).
Table 2는 가시화 이전에 전처리로 수행하는 지역 정보(평균, 표준편차) 생성 후 저장하는 과정의 시간을 나타낸 표이다. 증분 알고리즘을 통한 가속화로 O(1)의 연산량을 가지기 때문에 영역 크기에 관계없이 데이터의 크기에만 영향을 받는 것을 볼 수 있다. 이 과정은 광원이나 투명도, 색상 변환함수에 영향을 받지 않으므로, 각 볼륨 데이터에 대해 단 한번 계산하면 된다. 따라서 15초 정도의 전처리 시간은 사용자에게 큰 부담이 되지 않는다.
Table 2.Preprocessing time to generate local statistics (sec)
5. 결 론
본 연구는 전처리로 볼륨 데이터의 지역정보를 빠르게 생성하고 가시화 수행 시 샘플 주변 영역의 분포를 정규 분포로 가정하여 환경광 가림 기법의 복잡한 연산을 단순화 하였다. 제안 방법은 볼륨 데이터를 기반으로 지역 정보를 생성하기 때문에, 가시화도중 사용자가 변환함수에 변화를 주어도 추가의 연산 없이 실시간 가시화가 가능하다. 구체적으로, 광선이 마주친 해당 샘플의 불투명도를 구하는 과정에서의 반복 계산을 제거하기 위해 사용자가 정의한 불투명도 함수를 조각적 선형으로 분해하여 적분을 수행하였다. 그 결과, 볼륨 가시화의 환경-광 가림을 빠른 시간에 실행 가능하였다.
현재 볼륨 데이터의 지역 정보를 생성할 때, 기준 복셀이 중심인 주위 영역의 크기를 볼륨 데이터의 복잡도에 따라 사용자가 정하여 사용해야 한다. 이는 사용자가 사용하기에 불편할 수 있기 때문에, 향후 과제로 볼륨 데이터를 미리 분석하여 복잡도에 따른 삼차원 영역의 크기를 자동으로 정하는 연구를 할 예정이다.
References
- M. Levoy, “Display of Surfaces from Volume Data,” IEEE Computer Graphics and Applications, Vol. 8, No. 3, pp. 29-37. 1988. https://doi.org/10.1109/38.511
- P. SabelIa, “A Rendering Algorithm for Visualizing 3D Scalar Fields,” Proceeding of the 15th Annual Conference on Computer Graphics and Interactive Techniques, pp. 51-58, 1988.
- K. Engel, M. Hadwiger, J. M. Kniss, C. Rezk-Salama, and D. Weiskopf, "Real-Time Volume Graphics," Wellesley, Massachusetts, 2006.
- N. Max, “Optical Models for Direct Volume Rendering,” IEEE Transactions on Visualization and Computer Graphics, Vol. 1, No. 2, pp. 99-108, 1995. https://doi.org/10.1109/2945.468400
- C.R. Salama, K. Engel, M. Bauer, G. Greiner, and T. Ertl, “Interactive Volume Rendering on Standard PC Graphics Hardware using Multi-Textures and Multi-Stage Rasterization,” Association for Computing Machinery Special Interest Group on GRAPHics and Interactive Techniques/EuroGraphics Workshop on Graphics Hardware 2000, pp. 109-118, 2000.
- J. Kruger and R. Westermann, “Acceleration Techniques for GPU-based Volume Rendering,” Proceeding of IEEE Visualization Conference (2003), pp. 287-292, 2003.
- R. Shen and P. Boulanger, “HardwareAccelerated Volume Rendering for Real-Time Medical Data Visualization,” Proceeding of the 3rd International Conference on Advances in Visual Computing, pp. 801-810, 2007.
- L. Bavoil, M. Sainz, and R. Dimitrov, “Image-Space Horizon-Based Ambient Occlusion,” Association for Computing Machinery Special Interest Group on GRAP Hics and Interactive Techniques 2008 Talks, Article No.22, 2008.
- J. Kontkanen and S. Laine, “Ambient Occlusion Fields,” Association for Computing Machinery Special Interest Group on GRAP Hics and Interactive Techniques 2005 Symposium, Interactive 3D Graphics and Games, pp. 41-48, 2005.
- T. Ropinski, J.M. Spradow, S. Diepenbrock, J. Mensmann, and K. Hinrichs, “Interactive Volume Rendering with Dynamic Ambient Occlusion and Color Bleeding,” Computer Graphics Forum, Vol. 27, No. 2, pp. 567-576, 2008. https://doi.org/10.1111/j.1467-8659.2008.01154.x
- M. Bunnell, GPU Gems 2, M. Pharr, Ed., Addison Wesley, Boston, MA, United States, 2005.
-
DirectX SDK,
http://msdn.microsoft.com/enus/directx (accessed Nov., 18, 2014). -
CUDA SDK,
https://developer.nvidia.com/cuda-zone (accessed Nov., 18, 2014). - Y. Jung, CUDA Parallel Programming, Freelec, Korea, 2011.
- F. Hernell, P. Ljung, and A. Tnnerman, “Local Ambient Occlusion in Direct Volume Rendering,” IEEE Transactions on Visualization and Computer Graphics, Vol. 16, No. 4, pp. 548-559, 2010. https://doi.org/10.1109/TVCG.2009.45
- L. Marsalek, A. Hauber, and P. Slusalled, “High-Speed Volume Ray Casting With CUDA,” IEEE Symposium Interactive Ray Triacing 2008, pp. 9-10, 2008.
- M. Levoy, "Efficient Ray Tracing of Volume Data," Association for Computing Machinery Transactions on Graphics, Vol. 9, No. 3, pp. 245-261, 1990.
- W. Li, K. Mueller, and A. Kaufman, "Empty Space Skipping and Occlusion Clipping for Texture-Based Volume Rendering," Proceeding of IEEE Visualization Conference (2003), pp. 317-324, 2003.
- J. Kim and H. Kye, “Acceleration techniques for GPGPU-based Maximum Intensity Projection,” Journal of Korea Multimedia Society, Vol. 14, No. 8, pp. 981-991, 2011. https://doi.org/10.9717/kmms.2011.14.8.981
Cited by
- Load Balanced Volume Rendering System for Concurrent Users in Multi-CPU Server Environment vol.18, pp.5, 2015, https://doi.org/10.9717/kmms.2015.18.5.620
- 다중 영역 통계량을 이용한 환경-광 가림 볼륨 가시화 vol.21, pp.3, 2015, https://doi.org/10.15701/kcgs.2015.21.3.27
- Real-Time Computed Tomography Volume Visualization with Ambient Occlusion of Hand-Drawn Transfer Function Using Local Vicinity Statistic vol.25, pp.4, 2015, https://doi.org/10.4258/hir.2019.25.4.297