KR101090660B1 - 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법 - Google Patents

포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법 Download PDF

Info

Publication number
KR101090660B1
KR101090660B1 KR1020110092451A KR20110092451A KR101090660B1 KR 101090660 B1 KR101090660 B1 KR 101090660B1 KR 1020110092451 A KR1020110092451 A KR 1020110092451A KR 20110092451 A KR20110092451 A KR 20110092451A KR 101090660 B1 KR101090660 B1 KR 101090660B1
Authority
KR
South Korea
Prior art keywords
point
primitive
points
volume rendering
volume
Prior art date
Application number
KR1020110092451A
Other languages
English (en)
Inventor
신병석
강동수
Original Assignee
인하대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인하대학교 산학협력단 filed Critical 인하대학교 산학협력단
Priority to KR1020110092451A priority Critical patent/KR101090660B1/ko
Application granted granted Critical
Publication of KR101090660B1 publication Critical patent/KR101090660B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Abstract

포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법이 개시된다. 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법은 가시화 하고자 하는 볼륨 데이터의 복셀(voxel) 개수만큼 포인트 집합을 생성하는 단계; 불투명도 전이 함수(opacity transfer function)를 통해 포인트 집합에서 유효 포인트를 선별하는 유효성 검사를 수행하는 단계; 유효 포인트로 이루어진 유효 포인트 집합을 뷰(view) 공간으로 이동시켜 그래픽 처리 장치에서 사용하는 그리기의 최소 단위인 포인트 프리미티브(point-primitive)를 생성하는 단계; 및 포인트 프리미티브를 이미지 평면 상에 투영하는 단계를 포함할 수 있다.

Description

포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법{METHOD FOR REAL-TIME VOLUME RENDERING USING POINT-PRIMITIVE}
본 발명의 실시예들은 볼륨 렌더링 방법에 관한 것으로, 더욱 상세하게는 포인트 프리미티브를 이용하여 실시간 렌더링을 수행하는 직접 볼륨 렌더링 방법에 관한 것이다.
볼륨 렌더링은 컴퓨터 그래픽스 분야 중 하나로서, 3차원 데이터에 대한 효과적인 분석과 통찰력을 갖게 해주는 도구다. 볼륨 렌더링은 크게 표면 렌더링과 직접 볼륨 렌더링으로 나뉜다. 표면 렌더링은 3차원 볼륨 데이터를 기하정보로 재구성한 후, 해당 기하정보를 범용 그래픽 가속기를 이용하여 렌더링하는 기법이다. 반면에, 직접 볼륨 렌더링은 3차원 볼륨 데이터를 다른 형태로 바꾸지 않고 직접 볼륨 데이터로부터 영상을 얻는 기법이다.
표면 렌더링 기법의 경우, 반투명한 물체를 표현하는 것이 어려울 뿐만 아니라, 불투명도 전이함수(Opacity Transfer Function)(이하, 'OTF'라 칭함)로부터 특정 밀도 값을 갖는 복셀들을 추출하여 메쉬(mesh)로 재구성하는 비용이 크기 때문에 OTF의 변화에 실시간으로 대처할 수 없다.
직접 볼륨 렌더링은 크게 화상순서 기반 기법과 객체순서 기반 기법으로 나뉜다. 화상순서 볼륨 렌더링 기법은 화상의 스캔라인 순서대로 각 화소의 값을 차례로 결정해 나가는 방식이다. 화상순서 알고리즘의 대표적인 예로, 볼륨 광선 투사법이 있다. 광선 투사법은 영상에서 가상의 광선이 발사된다고 가정하여 광선들이 볼륨 내부를 지나면서, 이와 교차하는 복셀들로부터 샘플링한 값을 합성하여 각 화소의 색상 값을 결정한다. 하지만, 광선을 따라가며 일정 간격으로 재샘플링하는 연산은 3차원 텍스처를 반복해서 참조해야 하고 각 샘플점에서 얻은 색상정보를 최종색상에 반영하기 위해서는 누적연산을 반복적으로 수행해야 한다. 이것은 고속의 렌더링을 어렵게 하며, GPU(Graphics Processing Unit) 기반의 가속화 알고리즘을 이용하여도 광선 투사법이 갖는 과도한 연산량 때문에 속도향상에는 한계가 있다.
객체순서 볼륨 렌더링은 전향 매핑(forward mapping) 방식으로 볼륨 데이터를 직접 영상에 투영하는 기법이다. 이것은 볼륨 데이터의 저장순서에 따라 탐색하며 각 샘플점들을 일정 모양의 커널로 만들고 이를 이미지 평면에 투영하여 각 화소들의 색상을 결정하는 기법이다. 객체순서 알고리즘의 대표적인 기법에는 스플래팅(splatting)이 있다. 이것은 볼륨 데이터를 일정 간격으로 샘플링한 후, 전처리 과정에서 OTF를 이용하여 투영할 샘플점들을 선별한다. 그리고 선별된 샘플점들을 육면체, 구 또는 타원체(ellipsoid) 형태의 풋프린트(footprint)로 만들어 컨볼루션(convolution) 연산으로 누적한다. 이것은 메모리에 저장된 순서대로 처리할 수 있다는 장점을 갖지만, 선-분류(pre-classification) 방식을 사용하기 때문에 분류한 볼륨의 해상도가 낮은 경우 뿌옇게(blurry) 보이는 단점이 있다.
본 명세서에서는 기존 기법들의 단점들을 보완하기 위해 포인트 프리미티브(point-primitive)를 이용한 새로운 볼륨 렌더링 기법을 제안한다.
포인트 프리미티브를 이용하여 직접 볼륨 렌더링을 수행하는 실시간 볼륨 렌더링 방법을 제공한다.
반투명 물체의 표현이 가능하고, 전처리 과정 및 추가적인 텍스처 메모리를 사용하지 않으면서 기존의 렌더링 방법들보다 고속으로 볼륨 데이터를 가시화 할 수 있는 볼륨 렌더링 방법을 제공한다.
볼륨 렌더링을 수행하는 그래픽 처리 장치에서의 볼륨 렌더링 방법은 가시화 하고자 하는 볼륨 데이터의 복셀(voxel) 개수만큼 포인트 집합을 생성하는 단계; 불투명도 전이 함수(opacity transfer function)를 통해 포인트 집합에서 유효 포인트를 선별하는 유효성 검사를 수행하는 단계; 유효 포인트로 이루어진 유효 포인트 집합을 뷰(view) 공간으로 이동시켜 그래픽 처리 장치에서 사용하는 그리기의 최소 단위인 포인트 프리미티브(point-primitive)를 생성하는 단계; 및 포인트 프리미티브를 이미지 평면 상에 투영하는 단계를 포함할 수 있다.
일 측면에 따르면, 포인트 집합을 생성하는 단계는 볼륨 데이터를 일정 간격으로 샘플링 하여 포인트 프리미티브를 생성할 후보 샘플점(sampling point)을 추출하고 후보 샘플점을 그래픽 처리 장치의 정점 버퍼에 저장한다.
다른 측면에 따르면, 포인트 집합은 그래픽 처리 장치의 정점 버퍼에 저장되며, 유효성 검사를 수행하는 단계는 그래픽 처리 장치의 기하 쉐이더(geometry shader)에서 불투명도 전이 함수를 이용하여 정점 버퍼에 저장된 포인트 중 불투명도를 가진 유효 포인트를 남기고 나머지 포인트를 삭제한다.
또 다른 측면에 따르면, 포인트 프리미티브를 생성하는 단계는 유효 포인트를 모델 좌표계에서 뷰 공간으로의 행렬 연산을 통해 포인트 프리미티브의 좌표로 변환한다. 이때, 포인트 프리미티브는 3차원 공간 좌표 값과 볼륨 데이터로부터 샘플링된 밀도(density) 값을 포함하는 4개의 부동소수점으로 구성된 벡터로 저장될 수 있다.
또 다른 측면에 따르면, 포인트 프리미티브를 이미지 평면 상에 투영하는 단계는, 그래픽 처리 장치의 프래그먼트 쉐이더(fragment shader)에서 밀도 값을 투명도로 하여 알파 블렌딩(alpha blending) 연산을 통해 포인트 프리미티브를 각 화소 별 투영 공간에 투영할 수 있다.
볼륨 데이터를 샘플링 하여 포인트 프리미티브를 생성하고 이를 이미지 평면 상에 투영함으로써 렌더링 수행 속도가 빠르다. 다시 말해, GPU 광선 투사법은 프레그먼트 쉐이더(fragment shader)에서 반복적인 텍스쳐의 참조와 누적연산을 수행하는 반면에, 본 발명에 따른 볼륨 렌더링 방법은 포인트 프리미티브에 대하여 한 번의 텍스쳐 참조만을 하기 때문에 수행속도가 매우 빠르다. 또한, 포인트 프리미티브를 실행시간에 추가 및 삭제할 수 있기 때문에 OTF가 바뀌어도 즉각적으로 영상을 생성할 수 있다. 따라서, 본 발명에 따른 볼륨 렌더링 방법은 렌더링 단계에서 실시간으로 유효 프리미티브 집합을 변환하고 갱신할 수 있기 때문에 시변 볼륨 데이터의 고속 렌더링이 가능하며, 포인트 프리미티브의 개수를 실시간으로 조절할 수 있기 때문에 효과적으로 렌더링 성능과 결과영상의 화질을 관리할 수 있다.
도 1은 본 발명의 일실시예에 있어서, 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법의 전체 수행 과정을 도시한 흐름도이다.
도 2는 GPU 상에서 정점 버퍼의 피드백을 설명하기 위한 도면이다.
도 3은 이미지 평면 상에 각 화소 별로 투영되는 포인트 프리미티브의 집합을 설명하기 위한 도면이다.
도 4는 포인트 프리미티브를 이용한 볼륨 렌더링 방법의 결과 영상을 도시한 것이다.
도 5는 포인트 프리미티브를 이용한 렌더링 결과 영상(왼쪽)과 광선 투사법을 이용한 렌더링 결과 영상(오른쪽)을 비교한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예에서는 포인트 프리미티브(point-primitive)를 이용한 새로운 볼륨 렌더링 기법을 제공한다. 이것은 객체순서 기반의 렌더링 기법으로 기존의 볼륨 스플래팅과는 다르게, 특정한 모양의 커널을 대신해 포인트 프리미티브를 사용하여 볼륨 데이터를 가시화한다. 포인트 프리미티브는 특정 형태의 커널을 이용할 때 발생하는 추가적인 정점의 개수를 최소화할 수 있으며, 적은 정점들로 이루어진 정점버퍼(vertex buffer)를 이용해 보다 빠르게 영상을 생성할 수 있다. 또한, 본 발명의 볼륨 렌더링 방법은 기존의 스플래팅에서 사용하는 선-분류 방식과는 다르게, 렌더링 단계에서 복셀 당 매핑되는 유효 포인트 집합을 GPU상에서 분류한다. 따라서 OTF의 변화에 따른 복셀의 분류를 실시간에 처리 할 수 있다. 또한, 객체순서 기반의 렌더링 기법들이 그런 것처럼 그래픽 가속기에 최적화된 투영방식의 단순한 렌더링 파이프 라인을 사용하기 때문에 참조와 누적을 반복하는 화상순서 기반의 기법들보다 렌더링 속도가 빠르다. 특히, 이런 기법은 시간에 따라 변하는 4D 볼륨 데이터의 렌더링 분야에 유용하게 사용될 수 있다. 본 발명에 따른 볼륨 렌더링 방법은 시간에 따라 변하는 영역만을 실행시간에 포인트 프리미티브로 변환할 수 있고, 이를 GPU의 렌더링 파이프라인에서 제공하는 단순한 연산을 통해 가시화할 수 있기 때문에 대화식 수준의 4D 볼륨 렌더링이 가능하다.
본 발명에 따른 볼륨 렌더링 방법의 구체적인 과정을 설명하기에 앞서, 볼륨 렌더링과 관련된 가속화 기법들과 스플래팅 및 GPU 기반의 볼륨 렌더링 가속화 기법에 관하여 설명하기로 한다.
일반적으로 볼륨 데이터는 크기가 방대하기 때문에 렌더링 시간이 오래 걸린다. 따라서, 대화식 수준의 볼륨 렌더링을 위해서는 하드웨어적인 지원이 요구되며, 최근에는 GPU를 이용한 볼륨 렌더링 가속화 기법에 관한 연구들이 활발히 진행되고 있다. 특히, GPU의 정점 쉐이더(vertex shader) 및 기하 쉐이더(geometry shader), 그리고 프래그먼트 쉐이더(fragment shader)를 사용하면 렌더링 속도가 매우 빨라진다.
볼륨 렌더링을 가속화하는 대표적인 방법으로는 GPU 기반 광선 투사법이 있다. 광선 투사법의 가속화 기법 중 빈 공간 도약 기법으로는 팔진트리(octree) 기반의 볼륨 렌더링 기법이 있다. 이것은 볼륨을 일정 크기의 브릭(brick)들로 나누고 시점 변화에 따라 팔진트리를 생성하여 실행시간에 빈 공간 탐색을 효율적으로 수행한다. 하지만, 이 방법은 시점에 종속적인 단점이 있다. 다른 가속화 기법으로는 kd-트리 기반의 광선 투사법이 있다. 이것은 전처리 단계에서 OTF를 기반으로 사전에 kd-트리를 생성하여 유효 노드들을 미리 필터링하는 기법이다. 전처리 단계에서 생성한 트리구조를 통해 렌더링 속도를 향상할 수 있지만, 트리구조를 저장하기 위한 추가적인 메모리가 필요하고, OTF가 변할 때마다 트리를 재구성해야하는 문제가 있다. 또 다른 가속화 기법으로는 임의의 구형 기하를 사용한 가속화 기법이 있다. 이 방법은 전처리 시간에 생성한 밉맵(mip-map) 피라미드를 이용하여 관심 있는 복셀들을 찾고, 기하 쉐이더를 이용하여 해당 복셀에 일정한 크기의 구를 생성한다. 구는 깊이 맵(depth map)을 통해 각 화소에서 발사된 광선의 시작 위치와 종료 위치를 계산하는데 사용된다. 이것은 광선 투사법에서 관심 영역에 최대한 밀착된 빈 공간 탐색과 광선을 조기종료를 수행할 수 있기 때문에 고속 렌더링이 가능하다.
고속 볼륨 렌더링 기법들은 4D 볼륨 렌더링 분야에서 시간에 따라 변하는 시변(time-varying) 볼륨 데이터를 가시화하는데 많이 사용된다. 하지만, GPU의 성능 향상에도 불구하고, 현재까지 일반 PC상에서 실시간으로 입력되는 시변 데이터를 대화식의 속도로 가시화하는 것은 어렵다. 시변 볼륨 데이터를 가시화 하기 위한 방법으로는 차등 볼륨 렌더링(differential volume rendering) 기법이 제안된 바 있다. 이것은 이전 시간에 입력된 볼륨 데이터와 현재 입력된 볼륨 데이터를 비교하여 변하지 않는 영역의 중복연산을 피하기 위해 시간 일관성(temporal coherence)을 사용한다. 시간 일관성 기법은 시간 축에 따라 변화된 복셀들을 참조하는 화소들에 대해서만 광선 투사를 실시하고, 변하지 않은 복셀을 참조하는 화소에 대해서는 이전 장면에서 계산된 화소의 색상을 재사용한다. 한편, 팔진트리를 사용한 공간 일관성(spatial coherence) 기법은 복셀 단위로 화소의 갱신여부를 계산하지 않고, 팔진트리 구조로 검색하여 경신여부에 대한 탐색시간을 줄인다. 또한, 시간과 공간 일관성을 모두 사용하는 시공간 분할 트리(TSP: Time-space Partitioning Tree) 기법을 사용할 경우 4D 볼륨 데이터 렌더링의 성능과 화질을 개선할 수 있다.
최근에는 GPU 기반의 압축 방법 또는 시공간 일관성을 이용한 4D 볼륨 데이터의 가속화 기법들이 많이 연구되고 있다. 하지만, 이들은 기본적으로 광선 투사법을 사용하기 때문에 빈번한 텍스처 참조와 샘플링이 반복되는 누적연산을 볼륨의 시작부터 끝까지 모두 수행해야만 한다. 이것은 높은 해상도의 영상을 제공할 수 있지만 아직까지 대화식 속도에는 미치지 못한다. 광선 투사를 기반으로 하는 방법들에서 나타나는 과도한 연산을 줄이기 위해 객체순서 기반의 차등 스플래팅(differential splatting) 기법을 사용하고 있다. 이것은 2차원의 풋프린트 커널을 생성하여 변형된 복셀에 대해서만 커널을 이미지 평면에 투영시키는 방식이다. 이 방법은 광선 투사법 기반의 접근방식들 보다는 빠르게 영상을 생성할 수 있지만, CPU 기반의 알고리즘을 사용하기 때문에 1283의 데이터에서 약 3fps의 속도를 보인다. 또한, 직교투영에만 중점을 두었기 때문에 투시투영의 경우 결과영상의 화질이 저하된다.
이하에서는, 본 발명에 있어 포인트 프리미티브를 생성하는 과정과 볼륨 렌더링을 수행하는 과정을 상세하게 설명하기로 한다. 본 발명에 따른 볼륨 렌더링 방법은 멀티미디어 영상 처리를 위한 그래픽 처리 시스템에 적용될 수 있다.
본 실시예에서는 추가적인 메모리 사용 및 전처리 과정을 사용하는 기존의 볼륨 렌더링 기법과는 다르게, 그래픽 장치에서 사용하는 그리기의 최소 단위인 포인트 프리미티브 집합의 투영만으로 볼륨 데이터를 빠르게 가시화하는 볼륨 렌더링 방법을 제공한다. 본 발명에서 고속의 렌더링을 위해 기존의 고정 그래픽스 파이프라인을 이용하지 않고, GPU 내의 파이프라인을 직접 프로그래밍할 수 있는 쉐이더 아키텍처를 사용한다. 우선, 입력 정점들의 행렬 연산을 주로 담당하는 정점 쉐이더를 통해 이미지 평면에 최종적으로 투영시킬 유효 포인트 프리미티브의 위치를 계산하여 생성하고, 입력된 정점의 삭제와 생성 및 변형을 담당하는 기하 쉐이더를 이용하여 유효 포인트 프리미티브를 실시간에 선별하는 방법을 적용한 것이다. 이는, 실시간으로 변화되는 OTF에 빠르게 대응하는 것을 가능하게 한다. 또한, 3차원 모델의 레스터화(rasterization)를 수행하는 프레그먼트 쉐이더 단계에서 최종적으로 선별된 포인트 프리미티브의 밀도값을 이미지 평면상에 투영하여 각 화소의 색상 값을 알파 블렌딩을 통해 계산한다. 이것은 기존의 방법들과는 다르게 그래픽 하드웨어에서 제공하는 알파 블렌딩과 3차원 정점의 투영 연산만으로 최종 영상을 생성할 수 있기 때문에 연산속도가 매우 빠르다.
도 1은 본 발명의 일실시예에 있어서, 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법의 전체 수행 과정을 도시한 흐름도이며, 도 2는 GPU 상에서의 실시간 볼륨 렌더링 시 정점 버퍼의 피드백을 설명하기 위한 도면이다.
우선, 첫 번째 단계에서는 볼륨 텍스처 업로드(101)를 통해 입력된 볼륨 데이터의 복셀 개수만큼 임의의 포인트 리스트를 생성한다(102). 해당 단계(102)는 정점 쉐이더(201)에서 수행되며, 반복 없이 한 번의 연산으로 빠르게 수행된다. 두 번째 단계에서는 기하 쉐이더(202)를 통해 OTF에 의해 불투명한 것으로 정해진 포인트 리스트들만을 선별하는 유효성 검사를 수행한다(103)(104). 유효한 포인트들의 집합은 실제로 GPU 메모리상의 정점버퍼(204)로 업데이트된다(105). 마지막 단계에서는 유효 포인트 리스트를 행렬연산을 통해 뷰(view)공간으로 이동시켜 포인트 프리미티브를 생성하고(106), 프래그먼트 쉐이더(203)에서 객체순서 기반의 투영연산을 수행하여 입력된 볼륨 데이터를 가시화한다(107).
포인트 프리미티브 생성
기존의 GPU에서 사용하는 쉐이더는 렌더링 과정에서 정점 쉐이더로부터 마지막 단계인 프레그먼트 쉐이더까지 순차적으로 수행해야만 했다. 하지만 DirectX 10 이후의 쉐이더 아키텍처는 도 2와 같이 중간 단계인 기하 쉐이더까지만 수행하는 것이 가능하며, 파이프라인 내에서 원하는 쉐이더 단계를 반복 수행하는 것도 가능하다. 이것은 렌더링 단계에서 입력된 정점 데이터의 생성, 삭제, 이동을 가능하게 한다.
본 실시예에서는 렌더링 단계에서 정점 쉐이더와 기하 쉐이더 단계의 반복을 이용하여 정점 버퍼에 저장된 포인트 프리미티브 리스트를 생성하거나 삭제한다. 이때, 포인트 리스트의 생성과정은 다음과 같다. 우선, 볼륨 데이터를 일정 간격으로 샘플링 하여 포인트 프리미티브를 생성할 후보 샘플점들을 추출한다. 실제로 후보 샘플점들은 GPU 메모리상의 정점 버퍼에 저장되고, 다음 단계인 기하 쉐이더로 보내진다. 기하 쉐이더에서는 미리 입력된 OTF를 이용하여 불비투명도를 갖는 유효 포인트 집합을 선별한다. 이것은 기하 쉐이더의 스트림 아웃(SO: stream out)기능을 이용하여 정점 버퍼에서 유효하지 않은 포인트들은 삭제하고 최종적으로 유효 포인트만을 남긴다. 이 과정은 각 포인트가 하나의 쓰레드(thread)가 되어 GPU상에서 병렬로 수행된다.
포인트 프리미티브를 이용한 볼륨 렌더링
정점 버퍼에 저장된 유효 포인트들은 모델 좌표계에서 뷰 공간으로의 행렬연산을 통해 포인트 프리미티브의 좌표로 변환된다. 각각의 포인트 프리미티브는 4개의 부동소수점으로 구성된 벡터에 저장되는데 처음 세 개의 필드에는 변환된 3차원 공간상의 (x, y, z)의 좌표 값을, 그리고 마지막 필드(w)에는 볼륨 데이터로부터 샘플링한 밀도(density) 값을 저장한다. 포인트 프리미티브는 프래그먼트 쉐이더로 이동하여 w값을 투명도로 간주하여 알파 블렌딩을 수행하며, 도 3과 같이 각 화소별 투영 공간에 최종적으로 그려진다. 도 3에서 P k 는 이미지 평면상의 한 화소이며, S k P k 에 투영될 뷰 공간상의 포인트 프리미티브의 집합이다. 이때, 각 화소는 수학식 1과 같이 프래그먼트 쉐이더에서 제공하는 알파 블렌딩 연산을 통해 프레임 버퍼로 투영된다.
Figure 112011071168458-pat00001
여기서, C' i 는 화소에 현재까지 누적된 포인트 프리미티브 집합들의 색상 값이며, C i 는 현재 입력된 포인트 프리미티브의 색상 값, A i 는 현재 샘플링된 포인트 프리미티브의 밀도 값, C' i -1는 이전까지 누적된 색상 값을 나타낸다.
OTF 의 실시간 변경
포인트 프리미티브 기반의 볼륨 렌더링은 실행시간에 OTF가 변경될 경우, 기하 쉐이더의 스트림 아웃기능을 이용하여 변경된 샘플점들을 빠르게 찾아 생성하고 삭제할 수 있다. 하지만 기존 스플래팅의 경우에는 OTF가 변경될 때마다 CPU상에서 순차적으로 볼륨 데이터 전체를 탐색하여 유효 커널들을 다시 선별하여 생성해야만 한다. 일반적으로 의료분야 응용에서는 사용자인 의사의 요구에 따라 수시로 OTF가 변경된다. 기존의 스플래팅 기법은 이런 요구에 취약할 뿐만 아니라, 볼륨 데이터의 용량이 클 경우 전처리 시간이 선형적으로 증가하기 때문에 대화식 속도의 렌더링은 불가능하다. 하지만, 본 발명의 볼륨 렌더링 방법은 도 1에서 보는 것과 같이 사용자에 의해 OTF가 변경될 경우에 실시간으로 기하 쉐이더를 이용해 손쉽게 필요한 포인트 프리미티브 집합들을 선별하여 삭제하거나 재생성하는 것이 가능하기 때문에 실시간 렌더링이 가능하다.
NVIDIA GeForce GTX260 그래픽 카드를 장착한 Intel Core2Duo 6400 2.13GHz PC에서의 실험 결과는 다음과 같다. 해당 실험에서 뷰 포트(viewport)의 크기는 512?512을 사용하고, DirectX 10 라이브러리를 사용하며, 아래 표 1과 같이 4가지의 볼륨 데이터에 적용하였다. 포인트 프리미티브 기반의 볼륨 렌더링 방법에 대한 성능평가는 Kruger가 제안한 광선 조기종료기법이 적용된 GPU 광선 투사법과 동일한 데이터에 대해 수행속도(fps)을 비교하여 평가한 것이다. 그리고, 도 4는 주어진 4가지 데이터(표 4)에 대해 포인트 프리미티브 기반의 볼륨 렌더링 방법을 적용하여 가시화 한 결과 영상이다.
Figure 112011071168458-pat00002
포인트 프리미티브 기반 볼륨 렌더링의 성능은 표 2에서 보는 것과 같이 광선 투사법에 비해 약 두 배 빠르다.
Figure 112011071168458-pat00003
객관적인 비교를 위해 포인트 프리미티브 기반 볼륨 렌더링 방법의 결과 영상과 유사하도록 광선 투사법의 샘플링 간격을 늘려서 렌더링 하고 이때의 속도를 비교한 것이다. 일반적으로 광선 투사법은 특별한 자료구조를 사용하지 않는 한 입력 데이터의 크기에 비례하여 렌더링 시간이 증가한다. 하지만, 포인트 프리미티브 기반 볼륨 렌더링 방법의 성능은 데이터의 크기 보다는 유효 포인트 프리미티브의 개수와 밀접한 관계가 있다. 즉, 입력된 데이터의 크기보다는 OTF에 의해 분류된 포인트 프리미티브의 개수가 렌더링 속도를 결정한다.
도 5는 포인트 프리미티브를 이용한 렌더링 결과 영상(왼쪽)과 광선 투사법을 이용한 렌더링 결과 영상(오른쪽)을 비교한 도면이다. 도 5에서 보는 것과 같이, 포인트 프리미티브 기반의 볼륨 렌더링 방법이 광선 투사법에 비해 색상이 어두운 것을 알 수 있다. 결과 영상의 밝기의 차이는 광선 투사법의 경우 후향 맵핑으로 색상을 혼합(compositing)하는 방식을 사용하고, 포인트 프리미티브 기반 볼륨 렌더링 방법의 경우는 전향 맵핑인 스플래팅 방식을 사용하기 때문이다. 일반적으로, 광선 투사법에서 샘플링 간격을 작게 하여 생성한 영상과 스플래팅 기반 볼륨 렌더링 기법의 화질을 비교하면 상대적으로 후자의 방법이 보다 거칠게 표현된다. 이것은 이미지 평면으로 투영되는 포인트 프리미티브의 크기가 이미지 평면상의 한 화소의 크기보다 작기 때문에 생기는 구멍(hole) 때문이다. 이것을 화소 오차(pixel error)라고 부른다. 결과영상에 구멍이 나타나지 않도록 하기 위해서는 화소 오차가 발생하지 않도록 실시간으로 유효 프리미티브의 개수를 조절해야 한다. 하지만, 유효 프리미티브의 증가는 렌더링 속도를 저하시키기 때문에 화질과 성능 사이의 적절한 균형 유지가 중요하다.
따라서, GPU 광선 투사법은 프레그먼트 쉐이더에서 반복적인 텍스쳐의 참조와 누적연산을 수행하는 반면에, 포인트 프리미티브 기반의 볼륨 렌더링 방법은 포인트 프리미티브에 대하여 한 번의 텍스쳐 참조만을 하기 때문에 수행속도가 매우 빠르다. 또한, 포인트 프리미티브를 실행시간에 추가 및 삭제할 수 있기 때문에 OTF가 바뀌어도 즉각적으로 영상을 생성할 수 있다. 이런 특징들은 4D 볼륨 렌더링 분야에서 시간차를 두고 입력되는 시변 데이터에 대하여 변화된 부분만을 갱신하고 나머지 부분은 재사용할 수 있도록 한다. 기존의 방법들은 과도한 연산량과 추가적인 전처리 단계 그리고 선-분류 기법 등이 필요하기 때문에 시변 볼륨 데이터의 실시간 렌더링이 어렵다. 이에 비하여, 포인트 프리미티브 기반의 볼륨 렌더링 방법은 렌더링 단계에서 실시간으로 유효 프리미티브 집합을 변환하고 갱신할 수 있기 때문에 시변 볼륨 데이터의 고속 렌더링이 가능하다. 이것은 최근 큰 이슈가 되고 있는 4D 초음파 렌더링이나 입자 시뮬레이션 분야에 매우 유용하다. 향후, 이런 문제점들은 점 기반의 상세단계(LOD: Level-Of-Detail) 선택 기법을 이용하여 해결할 수 있으며, 이것은 포인트 프리미티브의 개수를 실시간으로 조절할 수 있기 때문에 효과적으로 렌더링 성능과 결과영상의 화질을 관리할 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 또한, 상술한 파일 시스템은 컴퓨터 판독이 가능한 기록 매체에 기록될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (5)

  1. 볼륨 렌더링을 수행하는 그래픽 처리 장치의 볼륨 렌더링 방법에 있어서,
    가시화 하고자 하는 볼륨 데이터의 복셀(voxel) 개수만큼 포인트 집합을 생성하는 단계;
    불투명도 전이 함수(opacity transfer function)를 통해 상기 포인트 집합에서 유효 포인트를 선별하는 유효성 검사를 수행하는 단계;
    상기 유효 포인트로 이루어진 유효 포인트 집합을 뷰(view) 공간으로 이동시켜 상기 그래픽 처리 장치에서 사용하는 그리기의 최소 단위인 포인트 프리미티브(point-primitive)를 생성하는 단계; 및
    상기 포인트 프리미티브를 이미지 평면 상에 투영하는 단계
    를 포함하는 포인트 프리미티브를 이용한 볼륨 렌더링 방법.
  2. 제1항에 있어서,
    상기 포인트 집합을 생성하는 단계는,
    상기 볼륨 데이터를 일정 간격으로 샘플링 하여 상기 포인트 프리미티브를 생성할 후보 샘플점(sampling point)을 추출하고 상기 후보 샘플점을 상기 그래픽 처리 장치의 정점 버퍼에 저장하는 것
    을 특징으로 하는 포인트 프리미티브를 이용한 볼륨 렌더링 방법.
  3. 제1항에 있어서,
    상기 포인트 집합은 상기 그래픽 처리 장치의 정점 버퍼에 저장되며,
    상기 유효성 검사를 수행하는 단계는,
    상기 그래픽 처리 장치의 기하 쉐이더(geometry shader)에서 상기 불투명도 전이 함수를 이용하여 상기 정점 버퍼에 저장된 포인트 중 불투명도를 가진 상기 유효 포인트를 남기고 나머지 포인트를 삭제하는 것
    을 특징으로 하는 포인트 프리미티브를 이용한 볼륨 렌더링 방법.
  4. 제1항에 있어서,
    상기 포인트 프리미티브를 생성하는 단계는,
    상기 유효 포인트를 모델 좌표계에서 상기 뷰 공간으로의 행렬 연산을 통해 상기 포인트 프리미티브의 좌표로 변환하며,
    상기 포인트 프리미티브는,
    3차원 공간 좌표 값과 상기 볼륨 데이터로부터 샘플링된 밀도(density) 값을 포함하는 4개의 부동소수점으로 구성된 벡터로 저장되는 것
    을 특징으로 하는 포인트 프리미티브를 이용한 볼륨 렌더링 방법.
  5. 제4항에 있어서,
    상기 포인트 프리미티브를 이미지 평면 상에 투영하는 단계는,
    상기 그래픽 처리 장치의 프래그먼트 쉐이더(fragment shader)에서 상기 밀도 값을 투명도로 하여 알파 블렌딩(alpha blending) 연산을 통해 상기 포인트 프리미티브를 각 화소 별 투영 공간에 투영하는 것
    을 특징으로 하는 포인트 프리미티브를 이용한 볼륨 렌더링 방법.
KR1020110092451A 2011-09-14 2011-09-14 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법 KR101090660B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110092451A KR101090660B1 (ko) 2011-09-14 2011-09-14 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110092451A KR101090660B1 (ko) 2011-09-14 2011-09-14 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법

Publications (1)

Publication Number Publication Date
KR101090660B1 true KR101090660B1 (ko) 2011-12-07

Family

ID=45505764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110092451A KR101090660B1 (ko) 2011-09-14 2011-09-14 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법

Country Status (1)

Country Link
KR (1) KR101090660B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442505B1 (ko) 2012-11-28 2014-10-20 한국과학기술정보연구원 필드라인 생성 장치 및 방법
KR101467735B1 (ko) * 2014-06-25 2014-12-02 인하대학교 산학협력단 볼륨데이터를 위한 4차원 실시간 렌더링 방법 및 장치
KR101501172B1 (ko) * 2013-09-27 2015-03-11 알피니언메디칼시스템 주식회사 입체영상 생성방법 및 그 장치
WO2019025829A1 (en) * 2017-07-31 2019-02-07 Ecole Polytechnique Federale De Lausanne (Epfl) METHOD FOR LAUNCHING SCENE VOXEL RAYS ON AN ENTIRE SCREEN
KR20210066074A (ko) * 2019-11-27 2021-06-07 기초과학연구원 3차원 해부학적 기준점 검출 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107518A (ja) 2004-10-08 2006-04-20 Mitsubishi Electric Research Laboratories Inc 複数のボクセルを含むボリュームデータセットをレンダリングする方法
JP2006260408A (ja) 2005-03-18 2006-09-28 Nara Institute Of Science & Technology ボリュームデータレンダリングシステムおよびボリュームデータレンダリング処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107518A (ja) 2004-10-08 2006-04-20 Mitsubishi Electric Research Laboratories Inc 複数のボクセルを含むボリュームデータセットをレンダリングする方法
JP2006260408A (ja) 2005-03-18 2006-09-28 Nara Institute Of Science & Technology ボリュームデータレンダリングシステムおよびボリュームデータレンダリング処理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442505B1 (ko) 2012-11-28 2014-10-20 한국과학기술정보연구원 필드라인 생성 장치 및 방법
KR101501172B1 (ko) * 2013-09-27 2015-03-11 알피니언메디칼시스템 주식회사 입체영상 생성방법 및 그 장치
KR101467735B1 (ko) * 2014-06-25 2014-12-02 인하대학교 산학협력단 볼륨데이터를 위한 4차원 실시간 렌더링 방법 및 장치
WO2019025829A1 (en) * 2017-07-31 2019-02-07 Ecole Polytechnique Federale De Lausanne (Epfl) METHOD FOR LAUNCHING SCENE VOXEL RAYS ON AN ENTIRE SCREEN
US11132829B2 (en) 2017-07-31 2021-09-28 Ecole polytechnique fédérale de Lausanne (EPFL) Method for voxel ray-casting of scenes on a whole screen
KR20210066074A (ko) * 2019-11-27 2021-06-07 기초과학연구원 3차원 해부학적 기준점 검출 방법 및 장치
KR102271614B1 (ko) 2019-11-27 2021-07-02 연세대학교 산학협력단 3차원 해부학적 기준점 검출 방법 및 장치

Similar Documents

Publication Publication Date Title
US11804002B2 (en) Techniques for traversing data employed in ray tracing
US11663770B2 (en) Hardware-based techniques applicable for ray tracing for efficiently representing and processing an arbitrary bounding volume
US11282261B2 (en) Ray tracing hardware acceleration with alternative world space transforms
US11816783B2 (en) Enhanced techniques for traversing ray tracing acceleration structures
US11373358B2 (en) Ray tracing hardware acceleration for supporting motion blur and moving/deforming geometry
US20220383583A1 (en) Hardware acceleration for ray tracing primitives that share vertices
JP2009525526A (ja) ビーム放出によって仮想画像を合成するための方法
US11854141B2 (en) Early release of resources in ray tracing hardware
JP6864495B2 (ja) 3dシーンのグローバル・イルミネーションの描画
Liu et al. Octree rasterization: Accelerating high-quality out-of-core GPU volume rendering
KR101090660B1 (ko) 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법
Wyman et al. Frustum-traced raster shadows: Revisiting irregular z-buffers
Olsson et al. More efficient virtual shadow maps for many lights
Scheibel et al. Attributed vertex clouds
US20240095996A1 (en) Efficiency of ray-box tests
US20240087211A1 (en) Generation and Traversal of Partial Acceleration Structures for Ray Tracing
US20240009226A1 (en) Techniques for traversing data employed in ray tracing
CN116993894B (zh) 虚拟画面的生成方法、装置、设备、存储介质及程序产品
Kaufman et al. Volume visualization and volume graphics
Mykhaylov et al. Interactive Volume Rendering Method Using a 3D Texture
Xue Volume Visualization Using Advanced Graphics Hardware Shaders
Pethrus Engström Volumetric Terrain Genereation on the GPU: A modern GPGPU approach to Marching Cubes
NIGAM Efficient Ray Tracing of Parametric Surfaces for Advanced Effects
Pavia et al. Animating ultra-complex voxel scenes through shell deformation
Jianmin Fast visualization of complex 3D models using displacement mapping

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160912

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170829

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee