KR102218860B1 - 비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법 - Google Patents

비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법 Download PDF

Info

Publication number
KR102218860B1
KR102218860B1 KR1020190094491A KR20190094491A KR102218860B1 KR 102218860 B1 KR102218860 B1 KR 102218860B1 KR 1020190094491 A KR1020190094491 A KR 1020190094491A KR 20190094491 A KR20190094491 A KR 20190094491A KR 102218860 B1 KR102218860 B1 KR 102218860B1
Authority
KR
South Korea
Prior art keywords
gpu
array
ray
buffer
ray casting
Prior art date
Application number
KR1020190094491A
Other languages
English (en)
Other versions
KR20210015509A (ko
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 KR1020190094491A priority Critical patent/KR102218860B1/ko
Publication of KR20210015509A publication Critical patent/KR20210015509A/ko
Application granted granted Critical
Publication of KR102218860B1 publication Critical patent/KR102218860B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅의 상기 GPU 기반 레이 캐스팅 시스템은, 볼륨 렌더링을 위한 레이 캐스팅 시스템에 있어서, CPU 측에서 교차 목록을 구성하되, GPU에서 상기 교차 목록을 구성하는 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록을 생성하며, 상기 GPU가 상기 교차 목록을 생성하면 모든 광선에 대해 레이 캐스팅을 병렬로 수행하며, 이미지 타일 기반의 광선 분배 방법에 의해 스레드 블록에서 광선 일관성을 높이고 메모리 액세스 효율을 높일 수 있다.

Description

비정렬 격자 데이터의 렌더링을 위한 GPU 기반 레이 캐스팅 시스템 및 방법{GPU Ray-Casting System for Volume Rendering Unstructured Grid Data and Method thereof}
본 발명은 컴퓨터 볼륨 렌더링을 위한 레이 캐스팅 시스템 및 방법에 관한 것으로 더욱 상세하게는 비정렬 격자 데이터의 렌더링을 위한 GPU 기반 레이 캐스팅 시스템 및 방법에 관한 것이다.
볼륨 렌더링(Volume Rendering)은 3차원 데이터를 2차원 영상으로 가시화 하는 기술로, 최근 컴퓨터 단층촬영(CT), 자기공명영상(MRI) 또는 3D 프린터 등의 기술이 발달하며 각광받는 분야이다. 특히 직접 볼륨 렌더링 (DVR)은 가장 기본적인 시각화 방법 중 하나이며 의료 이미징, 과학 시뮬광선션 등 다양한 분야에서 널리 사용된다. 또한 레이 캐스팅은 일반성과 정확성 때문에 DVR에서 가장 널리 사용되는 알고리즘이다.
또한 셀 투영은 비정렬 격자 데이터를 볼륨 렌더링하는데 널리 사용되는 방법 중 하나이다. 볼륨 렌더링을 수행하기 위해, 셀을 다면체 세트(예 : 정사면체)로 분해하고 다면체의 면을 이미지 평면에 투영한다. 투영 프로세스는 그래픽 하드웨어(즉, GPU)의 삼각(tri-angle) 래스터화 성능을 활용할 수 있으며, GPU 기반 셀 투영 알고리즘이 적극적으로 제안되고 있다.
셀 투영 방법에서 렌더링 품질은 동일한 픽셀에 투영된 평면의 가시성 정렬 정확도에 따라 달라진다. 종래에는 Steven P Callahan 등이 GPU를 이용하여 가시성 정렬을 가속화하는 HAVS(Hardware-Assistant Visibility Sorting) 알고리즘을 제안하였으며, 정렬을 위해 CPU를 사용하는 것보다 높은 성능을 보였으나 정렬 정확도는 k 버퍼 크기에 의해 제한되며 동시에 텍스처 메모리 액세스에 대한 경쟁 조건 문제가 있다.
셀 투영 방법과 달리 레이 캐스팅 알고리즘은 정확한 렌더링 결과를 보장하지만 많은 양의 연산이 필요하다. 종래에는 셀 연결 정보에 기반하여 비정렬 격자 데이터를 위한 레이 캐스팅 방법을 구현했다. 그러나 많은 메모리 공간이 필요했고 대규모 데이터 세트에 적용하기가 어려웠다.
따라서, 전술한 문제를 해결하기 위하여 GPU에서 레이 캐스팅을 수행하고 GPU 스레드가 각 광선을 처리함과 아울러, 스레드 블록에서 광선 일관성을 높이고 메모리 액세스 효율을 높이기 위해 이미지 타일 기반의 광선 분배 방식의 비 정렬 격자 데이터를 볼륨 렌더링하기 위한 새로운 GPU 기반 레이 캐스팅 알고리즘에 대한 연구가 필요하게 되었다.
(비특허문헌 001) Steven P Callahan, Milan Ikits, Joao Luiz Dihl Comba, and Clau- dio T Silva, Hardware-assisted visibility sorting for unstructured volume rendering, IEEE Transactions on Visualization and Com- puter Graphics 11 (2005), no. 3 (비특허문헌 002) Paul Bunyk, Arie Kaufman, and Claudio T Silva, Simple, fast, and robust ray casting of irregular grids, Scientific Visualization Conference, 1997, IEEE, 1997 (비특허문헌 003) Duksu Kim, Memory efficient parallel ray casting algorithm for unstructured grid volume rendering on multi-core CPUs, Journal of KIISE 43 (2016)
본 발명의 목적은 레이 캐스팅 방법을 사용하며, 비볼록 메쉬를 지원하기 위해 픽셀별 교차 목록 개념을 사용하며, GPU의 목록에 대한 효율적인 메모리 액세스를 위해 새로운 표면 알고리즘을 사용하여 모든 면의 교차 목록을 어레이로 나타내며, 교차 목록을 사용하여 GPU에서 레이 캐스팅을 수행하고 GPU 스레드가 각 광선을 처리하며, 스레드 블록에서 광선 일관성을 높이고 메모리 액세스 효율을 높이기 위해 이미지 타일 기반의 광선 분배 방식의 GPU 기반 레이 캐스팅 시스템 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅의 상기 GPU 기반 레이 캐스팅 시스템은, 볼륨 렌더링을 위한 레이 캐스팅 시스템에 있어서, CPU 측에서 교차 목록을 구성하되, GPU에서 상기 교차 목록을 구성하는 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록을 생성하며, 상기 GPU가 상기 교차 목록을 생성하면 모든 광선에 대해 레이 캐스팅을 병렬로 수행하는 것을 특징으로 한다.
상기에 있어서, 상기 GPU의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 생성하며, 광선 그룹을 사용 가능한 스레드 블록에 분배하여 이미지 타일 기반 광선 분배를 수행하고 상기 스레드 블록의 스레드가 주어진 광선을 처리하여 레이 캐스팅을 병렬로 수행하는 것을 특징으로 한다.
상기에 있어서, 상기 GPU는 상기 레이 캐스팅 알고리즘에서 주문형 VDFI 연산을 위한 스레드 로컬 버퍼를 포함하는 VDFI 버퍼를 더 포함하며, 상기 VDFI 버퍼는 워프 내의 모든 스레드가 버퍼에서 필요한 버퍼 히트를 발견할 때에만 VDFI 버퍼를 이용하며, 워프 내의 하나 이상의 스레드가 버퍼에서 필요한 정보를 찾을 수 없는 버퍼 미스의 경우, 워프 직렬화는 다른 스레드에 대한 버퍼 히트의 효과를 무효화하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅 방법은 볼륨 렌더링을 위한 레이 캐스팅 방법에 있어서, CPU 측에서 교차 목록을 구성하되, GPU에서 상기 교차 목록을 구성하는 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록을 생성하는 단계; 상기 GPU의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 생성하는 단계; 광선 그룹을 사용 가능한 스레드 블록에 분배하여 이미지 타일 기반 광선 분배를 수행하는 단계; 상기 스레드 블록의 스레드가 주어진 광선을 처리하여 레이 캐스팅을 병렬로 수행하는 단계;를 포함한다.
상기에 있어서, 상기 어레이 기반 교차 목록을 생성하는 단계는, 모든 경계면을 이미지 면에 순차적으로 투영하고, 경계면에 의해 투영된 모든 픽셀에 대해 픽셀의 ID를 Arrayp에 추가하고 깊이가 있는 경계면 ID를 Arrayi에 각각 추가하는 단계; 픽셀의 ID로 어레이를 정렬하고 각 픽셀의 교차 정보를 한 곳으로 모으는 단계; 크기가 픽셀 수와 같은 Arrayl라는 새 어레이를 생성하는 단계; 각 픽셀에 대한 교차 목록을 깊이별로 정렬하여, 교차 목록인 Arrayi와 Arrayl를 얻는 단계; 를 더 포함한다.
상기에 있어서, 상기 GPU에 포함된 스레드 로컬 버퍼를 포함하는 VDFI 버퍼는 레이 캐스팅 알고리즘에서의 주문형 VDFI 연산을 수행하는 단계; 를 더 포함한다.
상기에 있어서, 상기 VDFI 버퍼는 워프 내의 모든 스레드가 버퍼에서 필요한 버퍼 히트를 발견할 때에만 VDFI 버퍼를 이용하며, 워프 내의 하나 이상의 스레드가 버퍼에서 필요한 정보를 찾을 수 없는 버퍼 미스의 경우, 워프 직렬화는 다른 스레드에 대한 버퍼 히트의 효과를 무효화하는 것을 특징으로 한다.
본 발명의 GPU 기반 레이 캐스팅 시스템 및 방법은 교차 목록을 사용하여 GPU에서 레이 캐스팅을 수행하고 GPU 스레드가 각 광선을 처리하며, 이미지 타일 기반의 광선 분배 방법에 의해 스레드 블록에서 광선 일관성을 높이고 메모리 액세스 효율을 높일 수 있는 장점이 있다.
또한, 레이 캐스팅이 정확한 렌더링 결과를 보장하며, 픽셀별 교차 목록에 의해 비볼록 메쉬를 지원하며, 중복 연산을 허용하는 경우에도 더 나은 성능을 달성하는 주문형 연산 전략을 사용할 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅 시스템의 개념을 전체적으로 설명하기 위한 블록도이다.
도 2은 본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅 방법의 어레이 기반 교차 목록 생성 알고리즘에 대한 순서도이다.
도 3은 광선 그룹에서 광선 분배 방법을 예시적으로 보여주는 도면이다.
도 4는 크기와 특성이 서로 다른 세 개의 비정렬 격자 데이터 세트에 본 발명의 방법을 적용한 결과를 보여주는 도면이다.
도 5는 본 발명과 종래 기술을 비교하여 도 4의 데이터 세트 3의 렌더링 결과를 예시적으로 보여주는 도면이다.
도 6은 본 발명과 종래 기술을 비교하여 레이 캐스팅의 개선 성능을 보여주는 그래프이다.
도 7는 본 발명과 종래 기술을 비교하여 도 4의 데이터 세트 1에 대하여 레이 캐스팅 시간을 보여주는 그래프이다.
도 8은 볼륨 데이터 경계면의 영상평면 투영을 설명하기 위한 도면이다.
도 9는 영상 평면에 투영된 경계면을 설명하기 위한 도면이다.
도 10은 경계면과 교차하는 픽셀의 집합을 설명하기 위한 도면이다.
도 11은 도 2의 어레이 기반 교차 목록 생성 알고리즘에서 새로운 픽셀/경계면을 등록하기 전을 설명하기 위한 도면이다.
도 12는 도 2의 어레이 기반 교차 목록 생성 알고리즘에서 새로운 픽셀/경계면을 등록한 후를 설명하기 위한 도면이다.
도 13은 픽셀 ID를 이용해서 어레이를 정렬한 후를 설명하기 위한 도면이다.
도 14는 어레이 계산결과를 설명하기 위한 도면이다.
도 15는 어레이 정렬결과를 설명하기 위한 도면이다.
이하에서는 도면을 참조하여 본 발명의 구체적인 실시예를 상세하게 설명한다. 다만, 본 발명의 사상은 제시되는 실시예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서 다른 구성요소를 추가, 변경, 삭제 등을 통하여, 퇴보적인 다른 발명이나 본 발명 사상의 범위 내에 포함되는 다른 실시예를 용이하게 제안할 수 있을 것이나, 이 또한 본원 발명 사상 범위 내에 포함된다고 할 것이다. 또한, 각 실시예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조부호를 사용하여 설명한다.
본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅 시스템은 기본적으로 CPU(100)측과 GPU(200)측의 연동에 의해 기능을 수행하며, 종래의 Bunyk 알고리즘의 픽셀별 교차 목록 개념을 사용하여 비볼록 메시의 정확한 렌더링 결과를 보장한다.
GPU 기반 레이 캐스팅 시스템은 도 1을 참조하여 구체적으로 설명하면, CPU(100) 측에서 교차 목록을 구성한다. 이때, CPU(100)는 현재 시점에서 교차 목록을 생성하는 광선-면 교차목록 생성기(110)로부터 광선-면 교차목록을 제공받거나 광선-면 교차목록 생성기를 내부적으로 구비하도록 더 포함할 수도 있다.
또한, GPU(200)에서는 CPU측과 연동하여 장치 메모리로의 효율적인 데이터 전송 및 효율적인 메모리 접근을 위해 교차 목록을 전송받아 교차 목록을 구성하는 후술할 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록(광선-면 교차 목록)을 생성한다.
GPU(200)가 뷰(시점) 독립적인 정보(예를 들면, 교차 목록)을 얻으면 모든 광선에 대해 레이 캐스팅을 병렬로 수행한다.
보다 자세하게는, GPU(200)의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 생성하고 광선 그룹을 사용 가능한 스레드 블록에 분배하는 이미지 타일 기반 광선 분배를 수행할 수 있으며, 스레드 블록의 스레드가 주어진 광선을 처리하는 레이 캐스팅을 병렬로 수행할 수 있으며, 결과적으로 렌더링 이미지가 생성된다.
이때, 광선에 대한 레이 캐스팅 프로세스는 Bunyk 알고리즘 일부를 따르지만, 모든 면에 대해 VDFI를 유지 관리하지는 않는다. 대신 최근 GPU(200)에 대한 적절한 접근 방법으로써, 주문형 VDFI 연산 전략을 사용한다.
본 발명이 어레이 기반 교차 목록을 구성하는 것에 대하여 보다 자세히 설명하면, 다음과 같다.
각 광선이 교차하는 경계면을 식별하기 위해 모든 경계면을 이미지면에 투영한다. 픽셀 당 교차 목록을 작성하는 단순하고 직접적인 방법은 각 픽셀에 대해 연결된 목록를 사용한다.
주어진 경계면의 경우, 삽입된 정렬을 사용하여 깊이별로 목록를 정렬하면서 평면이 투영된 픽셀 목록에 평면 ID를 추가한다. 그러나, 링크된 목록는 불규칙한 메모리 액세스 패턴을 이끌어 내기 때문에, GPU(200)에 바람직한 데이터 구조가 아니다. 또한 링크된 목록를 장치 메모리로 전송하려면 메모리를 할당하고 각 요소에 대해 데이터를 하나씩 복사하는 등의 복잡한 프로세스가 필요하다. 따라서 연결된 목록를 어레이 집합으로 변환하는 것이 바람직하다. 그러나 변환 과정은 모든 노드를 하나씩 방문해야 하므로 복잡한 과정을 거친다.
픽셀별 교차 목록을 효율적으로 작성하기 위해 후술할 어레이 기반 교차 목록 생성 알고리즘을 이용한다.
본 발명의 GPU(200) 기반 레이 캐스팅 방법은 CPU(100) 측에서 교차 목록을 구성하되, GPU(200)에서 상기 교차 목록을 구성하는 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록을 생성하는 단계와, 상기 GPU(200)가 상기 교차 목록을 생성하면 레이 캐스팅을 병렬로 수행하는 단계와, 상기 GPU(200)의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 생성하는 단계와, 광선 그룹을 사용 가능한 스레드 블록에 분배하고 블록의 스레드가 주어진 광선을 처리하는 단계를 포함한다.
도 2는 본 발명의 일 실시예에 따른 GPU 기반 레이 캐스팅 방법의 어레이의 교차 목록 생성 알고리즘에 대한 순서도이다.
상술한 GPU(200) 기반 레이 캐스팅 방법에서 어레이 기반 교차 목록 생성하는 단계는 도 8 내지 도 15를 참조하여 설명하면, 다음과 같은 단계를 더 포함한다.
또한 어레이 기반 교차 목록 생성 알고리즘에서는 픽셀의 ID (예 : X와 Y)를 포함하는 Arrayp과 요소가 픽셀의 표면 ID와 깊이로 구성된 Arrayi의 두 어레이를 사용한다.
먼저, 첫 번째 단계에서는 볼륨 데이터를 구성하는 각각의 셀에서 모든 외부로 노출된 면(경계면, 도 9 참조)을 이미지 면에 순차적으로 투영한다(S200). 경계면을 투영한 후 경계면에 의해 투영된 모든 픽셀에 대해 픽셀의 ID를 Arrayp에 추가하고 깊이가 있는 경계면 ID를 Arrayi에 각각 추가한다.
보다 상세히 설명하면, 영상평면에 투사한 경계면과 교차하는 픽셀의 ID는 Arrayp, 경계면의 ID는 Arrayi 에 각각 저장한다. 즉, 도 11 및 도 12를 참조하면, 이미 저장되어 있던 Arrayp 와 Arrayi의 내용은 그대로 유지한 상태에서 새로운 값을 추가(append)하는 방식으로 저장한다.
여기서, Arrayp는 영상평면에 투영된 경계면과 교차하는 픽셀의 ID 목록(중복 가능)을 포함하며, Arrayi는 Arrayp의 픽셀과 교차하는 경계면 ID 및 해당 픽셀로부터의 거리를 포함한다.
이 첫 번째 단계 후에 두 어레이(Arrayp, Arrayi)는 모든 픽셀에 대한 모든 교차 정보를 수집하지만 아직 정렬되지는 않는다.
두 번째 단계에서는 픽셀의 ID로 어레이를 정렬하고 각 픽셀의 교차 정보를 한 곳으로 모은다(S202).
바람직하게는, 도 13에 도시된 바와 같이 Arrayp의 픽셀 ID로 Arrayp, Arrayi를 동시에 정렬(sort by key)한다.
그런 다음 크기가 픽셀 수와 같은 Arrayl이라는 새 어레이를 생성한다(S204).
또한 새로 생성된 Arrayl에는 Arrayl을 구성하는 특정 픽셀 ID에 대한 정보의 시작점과 개수를 저장한다. 도 14를 참조하여 Arrayl(P1, P2, P3, P6)을 구성하는 (x,y)값을 살펴보면, x는 Arrayp와 Arrayi내에서 특정 픽셀의 정보가 처음 시작되는 위치, y는 해당 픽셀 정보의 개수를 의미한다.
또한 Arrayl의 각 요소에는 픽셀의 인터럽션 목록에 직접 액세스하기 위한 메타 정보가 있다. 메타 정보에는 Arrayi의 시작 인덱스와 픽셀의 인터 섹션 목록 길이가 포함된다.
마지막으로, 도 15를 참조하면 각 픽셀에 대한 교차 목록을 깊이(거리)별로 정렬하고, 완전한 교차 목록인 Arrayi와 Arrayl를 얻는다(S206).
이때 각 픽셀의 목록이 각각 독립적이므로 마지막 정렬을 병렬로 수행할 수 있다.
또한 GPU(200)가 뷰 독립적인 정보(예 : 교차 목록)을 얻으면 모든 광선에 대해 레이 캐스팅을 병렬로 수행한다.
GPU(200)의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 만든다. 광선 그룹을 사용 가능한 스레드 블록에 분배하고 블록의 스레드가 주어진 광선을 처리한다.
광선에 대한 레이 캐스팅 프로세스는 Bunyk 알고리즘을 따르지만 모든 면에 대해 VDFI를 유지 관리하지는 않는다. 대신, 최근의 GPU(200) 아키텍처에 대한 적절한 접근 방법으로서, 주문형 VDFI 연산 전략을 사용한다.
종래 기술과의 비교(벤치 마크)를 위한 데이터 세트의 경우, 구축 알고리즘이 30% 연결된 목록 기반 방법과 비교할 때 평균적으로 더 많은 시간이 소요된다(1-86 %). 그러나 데이터 세트의 크기가 커짐에 따라 성능 격차가 줄어들었고 그 차이는 수치적으로 100 밀리 초 미만이었다.
또한, 어레이 기반 교차 목록을 갖는 CPU(100) 레이 캐스팅 알고리즘(예 : Bunyk 알고리즘)은 링크된 목록을 사용하는 것보다 더 나은 성능을 나타내었다. 결과적으로 전체 볼륨 렌더링 프로세스에 연결된 목록을 사용하는 것과 호환되는 성능(± 1 %)을 달성했다.
본 발명의 레이 캐스팅 알고리즘에 대해 보다 자세히 설명하면 다음과 같다.
본 발명에서 광선은 서로 독립적이며, GPU(200)는 광선을 병렬로 처리한다.
더 효율적인 메모리 액세스를 위해 광선 일관성을 고려하면서 광선을 스레드에 분배하는 방법에 대해 후술하여 자세히 설명하며 그런 다음 왜 주문형 VDFI 연산 전략을 채택하는지 후술하기로 한다.
먼저 이미지 타일 기반 광선 분배에 대해서 설명하면, L1과 L2 캐시의 이용 효율을 높이려면 스레드 블록에서 스레드의 메모리 액세스 지역성을 향상시켜야 한다. 레이 캐스팅 프로세스의 경우 높은 지역성을 얻기 위해 그룹의 광선 간 광선 응집력을 증가시켜 안내할 수 있다.
종래의 VF-GPU(200)는 가시성면을 기반으로 광선을 분배하여 스레드 블록에 의해 처리되는 광선 응집력을 증가시킨다. 그러나, 이 접근법은 다수의 가시적 인면들이 동일한 픽셀에 투영될 수 있기 때문에 비 볼록 메시를 가진 아티팩트를 생성할 수 있다.
본 발명에서는 비볼록 메쉬에 대한 정확한 결과를 보장하기 위해 이미지 평면을 기반으로 광선 그룹을 만든다.
이미지 평면을 사용하는 하나의 단순한 광선 분포는 픽셀의 순서에 따라 광선을 스레드에 할당한다(도 3의 (a)). 그러나 GPU(200)의 스레드 블록에 의해 처리된 광선은 낮은 일관성을 생성하고 캐시 활용 효율성을 낮춘다.
스레드 블록에서 광선 간 일관성을 높이기 위해 종래의 선행기술 3과 유사한 이미지 타일을 사용한다. 이미지 타일은 도 3의 (b)에 도시된 바와 같이 특정 크기 (예를 들어, 8x8)를 갖는 정사각형 이미지이다.
본 발명의 레이 캐스팅 방법에서, 이미지 타일로부터의 광선은 광선 그룹을 포함하고 그들은 스레드 블록에 고르게 분배된다. 더 많은 병렬 처리를 이용하기 위해 크기가 이미지 타일 크기와 동일한 2D 스레드 블록을 사용한다. 하나의 블록에 있는 각 스레드는 타일을 스레드에 할당하는 선행기술 3과 달리 하나의 광선을 처리한다. 본 발명에서는 이미지 타일 기반의 광선 분배 방법이 간단한 픽셀 순서 광선 분배 접근법을 사용하는 것에 비해 캐시 트랜잭션을 덜 필요하게 된다.
본 발명에서의 주문형 VDFI 연산에 대해서 자세히 설명하면, 중복 VDFI 연산을 줄이면서 Bunyk 알고리즘의 높은 메모리 오버 헤드를 해결하기 위해 VF-GPU(200)는 스레드 로컬 VDFI 버퍼를 사용할 수 있다.
VF-GPU(200)에서 스레드는 다중 광선을 처리하고 이전 광선에 대해 이미 연산된 경우 표면의 VDFI를 재사용한다. 그러나 이 방법이 최근의 GPU(200) 아키텍처의 특성을 충족시키지 못하기 때문에 GPU(200) 스레드는 워프(warp) 단위로 실행되며 분기가 있을 경우 작업이 직렬화된다. 워프 내의 모든 스레드가 버퍼에서 필요한 정보 (즉, 버퍼 히트)를 발견할 때에만 VDFI 버퍼를 이용할 수 있다. 워프 내의 하나 이상의 스레드가 버퍼에서 필요한 정보를 찾을 수 없는 경우(즉, 버퍼 미스), 워프 직렬화는 다른 스레드에 대한 버퍼 히트의 효과를 무효화한다. 이 경우 버퍼 검사가 오버 헤드가 된다. 따라서 모든 스레드에 대해 높은 버퍼 적중률을 나타낼 만큼 버퍼 크기가 크지 않으면 스레드 로컬 버퍼로 성능 향상을 얻는 것이 어렵게 된다.
VF-GPU(200)(예 : NVIDIA 사의 GeForce 8800 Ultra, 128 코어, 768 MB)에 사용된 이전 GPU(200)와 달리 최근 GPU(200)에는 수천 개의 코어가 있다 (예 : Nvidia사의 GTX 1080, 2560 코어, 8 GB).
현재 GPU(200)의 대대적인 병렬 처리를 완전히 활용하려면 수십 또는 수천 개의 스레드를 실행해야 한다. 장치 메모리의 크기도 증가했지만 코어의 증분 수를 충족시키지 못하고 비정렬 격자 데이터의 크기도 증가했다. VTK 의 구현에서, 표면에 대한 VDFI는 72 바이트를 취한다. 선행기술 3에서 70 %의 적중률을 달성한 크기인 256 개의 슬롯을 각 버퍼에 할당하면 수십만 개의 스레드(예 : 262,144)를 시작할 때 수 기가 바이트(예 : 4GB)가 필요하다. 따라서 가능한 버퍼 크기는 수십 개의 슬롯으로 제한되며 모든 스레드에 대해 높은 적중률을 기대하기는 어렵다.
본 발명의 실험에서 또한 VDFI 광선이 표면을 만날 때마다 스레드 로컬 버퍼를 사용하는 것보다 성능이 향상되지만, 연산이 중복될 수 있다. 이 이론적 및 실험적 관찰을 바탕으로 본 발명에서는 GPU(200) 기반 레이 캐스팅 알고리즘에서 주문형 VDFI 연산 전략을 사용한다.
본 발명에서는 32GB 메인 메모리를 갖춘 GPU(200) (Nvidia사의 GTX 1080, 2560 코어, 8GB)와 쿼드 코어 CPU(100) (Intel사의 Xeon, i7-8700)로 구성된 Windows 시스템에서 볼륨 렌더링 시스템을 구현하여 종래 기술들과 비교했다.
본 발명에서는 CPU(100)와 GPU(200)에 대한 병렬 알고리즘을 구현하기 위해 OpenMP와 CUDA를 사용하였다.
표 1은 각 벤치 마크의 다른 통계를 도시하고 있다. 각 열은 정점, 면, 정사면체 및 경계면의 수와 정보를 저장하는 데 필요한 메모리 공간을 도시하고 있다.
서로 다른 볼륨 렌더링 방법을 세 가지 벤치 마크 (표 1)와 비교하여 테스트했다. 모든 벤치 마크에서 본 발명에서는 1024 x 1024 이미지 해상도를 사용하고 주어진 회전축을 중심으로 5 도 회전시켜 72 시점(뷰포인트)의 볼륨 렌더링 시간을 측정했다. 표 1에서 도 4 (a)는 선행기술 2(Bunyk)에 대한 것이고, 도 4 (b)는 선행기술 1(HAVS)에 대한 것이고, 도 4 (c)는 본 발명에 대한 것이다.
Figure 112019079649155-pat00001
표 2는 3 개의 벤치 마크 데이터 세트에 대한 프레임 당 평균 렌더링 시간 (초)을 보여준다.
Figure 112019079649155-pat00002
표 2에서 Ours-Pixel은 본 발명의 접근 방식 중 하나이다. 이 방법에서는 광선 그룹을 만들기 위해 픽셀 순서를 사용한다(도 3의 (a)). 본 발명에서는 64 개의 스레드를 가진 스레드 블록을 만들었고, 본 발명에서는 262,144 개의 스레드 (4,096 개의 스레드 블록)를 사용했다.
표 2에서 Ours-Tile은 Ours-Pixel에서 사용된 광선 분배 방법을 8 x 8 크기의 이미지 타일 기반 접근 방식 (그림 3의 (b))으로 대체하여 구현되었다.
접근 방법의 효율성과 정확성을 비교하기 위해 이전 연구를 토대로 다음과 같은 세 가지 대체 방법도 구현했다.
표 2에서 Bunyk은 선행기술 2에서 Bunyk 등이 제안한 비규칙 격자 레이 캐스팅의 구현이다. 종래에는 이 비규칙 격자 레이 캐스팅 알고리즘을 위해 단일 CPU(100) 코어를 사용했다. Bunyk-Parallel은 선행기술 3에서 Kim 등이 제안한 CPU(100) 기반 병렬 Bunyk 알고리즘을 구현한 것이다. 전처리 단계로 모든면의 VDFI를 연산하고 레이 캐스팅 과정에서 이를 사용한다. 본 발명에서는 이 방법에 4 개의 CPU(100) 스레드를 사용했다. HAVS는 선행기술 2에서 Callahan 등이 제안한 가장 잘 알려진 GPU(200) 기반 셀 투영 방법 중 하나이다.
나중에 VTK 버전에는 이 방법이 없으므로 VTK 6.3 구현을 사용했다. 모든 알고리즘은 VTK 필터로 구현되었으며 VTK 시각화 프레임 워크에서 실행되었다.
표 2의 볼륨 렌더링 시간에는 섹션 목록 작성 및 레이 캐스팅 프로세스에 대한 시간이 포함된다. Ours-Pixel 및 Ours-Tile은 CPU(100) 코어를 사용하는 Bunyk보다 각각 15.0 배 및 18.1 배 더 높은 성능을 나타냈다.
Bunyk-Parallel과 비교하여 Ours-Pixel 및 Ours-Tile은 각각 최고 4.3 및 5.1 배(평균 3.0 및 3.4 배) 높은 성능을 나타냈다. 데이터 세트 3의 경우 CPU(100)에서 실행되는 교차 목록 구성에 약 0.9 초가 걸리므로 Bunyk-Parallel의 전체 볼륨 렌더링 시간의 약 35 %를 차지하므로 이 방법의 성능이 상대적으로 낮아졌다. 본 발명의 방법과 동일한 GPU(200)를 사용하는 HAVS Bunyk-Parallel for Datasets 1 및 2에 비해 각각 최대 2.8 및 1.2 배 높은 성능을 보였다. 그러나 본 발명의 레이 캐스팅 방법은 일반적으로 종래의 HAVS보다 우수한 성능을 제공한다. 예를 들어, Ours-Tile은 세 개의 데이터 세트에 대해 각각 1.8, 2.6 및 8.2 배 더 높은 성능을 보였다. 이 결과는 본 발명의 접근법의 이점을 입증한다.
본 발명에서는 GPU(200) 기반 레이 캐스팅 알고리즘이 최신 GPU(200) 아키텍처의 특성을 적절히 고려하기 때문에, 그러한 높은 볼륨 렌더링 성능을 얻을 수 있었다. 데이터 세트 3에서 세포는 특정 지역에 밀집되어 있다.
본 발명에서는 레이 캐스팅 프로세스를 수행하는 동안 초기 광선 종단 방법 을 사용하여 픽셀의 불투명도가 최대값을 만족할 때 광선에 대한 프로세스를 종료 할 수 있다.
따라서 Dataset 3의 경우 Bunyk-Parallel 조차도 모든 표면을 고려해야 하는 HAVS 보다 우수한 성능을 보였다.
렌더링 정확도 : 도 4는 크기와 특성이 서로 다른 세 개의 비정렬 격자 데이터 세트에 본 발명의 방법을 적용한 결과를 보여주는 도면이며, 도 5는 종래의 Bunyk, HAVS 및 본 발명의 레이 캐스팅 방법에 대한 Dataset 3의 렌더링 결과를 비교하고 있다.
도 6은 본 발명과 종래 기술을 비교하여 레이 캐스팅의 개선 성능을 보여주는 그래프로서, Bunyk(베이스 라인)에서 달성된 각 알고리즘의 성능 향상을 보여준다.
종래의 HAVS가 픽셀로 투영된 평면을 깊이별로 정렬하지만 정렬 결과는 k 버퍼의 크기와 종래의 Callahan 등이 언급한 텍스처 메모리 액세스의 동기화 문제에 따라 올바르지 않을 수 있다.
결과적으로 데이터 세트 3의 렌더링 결과에서 관찰된 아티팩트(도 5의 (b)). 반면에 본 발명의 레이 캐스팅방법은 Bunyk에서와 같이 GPU(200)에 정확한 레이 캐스팅 알고리즘을 구현하여 정확한 렌더링 이미지를 생성했다.
레이 캐스팅 성능 : 본 발명의 이점을 확인하려면 GPU(200) 기반 레이 캐스팅 알고리즘을 사용하여 레이 캐스팅 프로세스의 처리 시간만 측정하고 교차 목록 작성 시간과 같은 CPU(100)의 일반적인 처리 시간은 제외했다. 종래의 Bunyk 및 Bunyk-Parallel의 경우 모든 표면에 대해 VDFI가 연산되는 전처리 시간이 포함되었다. 본 발명의 방법에는 CPU(100)와 GPU(200) 사이의 데이터 통신 시간이 포함되었다.
Ours-Tile은 Bunyk보다 36.5 배(평균 25.5 배) 높은 레이 캐스팅 성능을 보였다. 또한 3 개의 벤치 마크 데이터 세트에 대해 Bunyk-Parallel보다 각각 5.9, 3.7 및 12.5 배 더 높은 성능을 보였다.
더 자세히 설명하자면, 본 발명에서는 데이터 세트 3에 대해 훨씬 더 높은 성능 향상을 보였다. 이것은 광선이 실제 레이 캐스팅 프로세스동안 작은 비율의 표면을 방문하고 모든 표면에 대한 VDFI를 연산하기 위한 사전 처리 시간이 오히려 오버 헤드가 되기 때문이다.
Ours-Pixel과 비교할 때 Ours-Tile은 25 %, 23 %3 개의 벤치 마크에 대해 14 % 뛰어난 레이 캐스팅 성능을 제공한다. Professional cuda c programming의 Nsight Profiler를 사용하여 두 개의 레이 캐스팅 커널을 프로파일링했으며 Our-Tile이 Our-Pixel보다 L2 캐쉬 트랜잭션을 적게 차지한다는 것을 발견했다(예 : 데이터 집합 1의 트랜잭션이 21 % 감소). 이 결과는 이미지 타일 기반의 광선 분포 접근법이 스레드 블록에서 광선 일관성을 증가시키고 실제로 캐시 활용 효율성을 향상시킨다는 것을 보여준다.
표 3은 서로 다른 타일 크기의 평균 레이 캐스팅 시간을 나타낸다.
Figure 112019079649155-pat00003
표 3의 결과에서 볼 수 있듯이, 8 X 8 타일은 일반적으로 좋은 성능을 보여준다. 본 발명에서는 서로 다른 버퍼 크기로 데이터 집합 1의 레이 캐스팅 시간을 보여준다.
본 발명에서는 큰 이미지 타일 크기는 스레드 블록에 대해 많은 수의 자원 (예 : 레지스터)을 필요로 하고 병렬 블록의 수를 감소시키기 때문에, 병렬 처리 수준(예 : 명령 처리량)을 낮추는 것을 발견했다. 한편, 8 ㅧ 4 (또는 더 작은) 이미지 타일의 경우, 각 스레드 블록은 워프만 포함하고 SM에서 사용 가능한 리소스를 완전히 활용하지 못했다.
VDFI 연산과 관련하여 보다 자세히 설명하면, 데이터 세트 1은 NVIDIA 사의 GTX 1080의 장치 메모리를 사용하여 모든면에 대해 VDFI를 로드할만큼 충분히 작다.
종래의 Maxio 등이 제안한 Memory efficient gpu-based ray casting for unstructured volume rendering의 접근 방식과 비교하여 주문형 VDFI 연산 전략의 효율성을 검증하기 위해 다음과 같이 수행하였다.
본 발명에서는 또한 다음의 두 알고리즘을 구현했다. GBunyk-Buffer는 각 스레드에 대해 VDFI 버퍼를 저장한다. 스레드는 VDFI 버퍼를 이용하기 위해 여러 개의 광선을 처리해야 하기 때문에 이미지 타일을 스레드에 할당했다. 그러나 스레드에 대한 많은 수의 광선이 병렬 처리를 낮추기 때문에 4 x 4 타일을 사용했다.
Ours-Full VDFI는 Our-Tile의 수정된 버전이다. 모든 표면에 대한 VDFI를 미리 연산하여 레이 캐스팅 중에 사용한다. 또한 GPU(200)에서 VDFI 연산을 수행하고 결과를 장치 메모리에 유지한다. VDFI 연산은 데이터 세트 1에 대해 약 23ms가 걸렸다. 본 발명에서는 두 알고리즘과 Ours-Tile의 레이 캐스팅 시간을 측정했다. 그 결과를 도 7에 나타낸다.
GBunyk-Buffer의 경우 각 버퍼의 슬롯 수를 4에서 256 (장치 메모리가 허용하는 최대 크기)으로 변경했다. Ours-FullVDFI는 VDFI에 대한 중복 연산을 제거하므로 Ours-Tile보다 약 8 % 향상된 성능을 보였다. 256 슬롯의 GBunyk-Buffer는 Ours-Tile과 비교하여 약 1.5 배 더 많은 메모리 액세스 요청과 최대 4.8 배의 L2 캐시 트랜잭션을 처리하는 것으로 나타났다. 모든 스레드에 대해 높은 버퍼 히트 비율을 얻기에는 버퍼 크기가 충분하지 않기 때문에 버퍼를 검사하는 데 추가적인 오버 헤드가 발생하고 많은 수의 메모리(또는 캐시) 트랜잭션이 발생한다. 본 발명에서는 L1 캐시 히트 비율도 주문형 전략에 비해 약 18.5 % 감소함을 발견했다. 이는 스레드 당 버퍼 크기가 증가함에 따라 캐시 사용 효율이 감소했기 때문이다. 이 결과는 주문형 VDFI 연산 전략이 VDFI 버퍼를 사용하는 것보다 최신 GPU(200) 아키텍처에 더 적합한 선택임을 확인할 수 있다.
100 : CPU 110 : 광선-면 교차목록 생성기
200 : GPU

Claims (7)

  1. 볼륨 렌더링을 위한 레이 캐스팅 시스템에 있어서,
    CPU 측에서 교차 목록을 구성하되, GPU에서 상기 교차 목록을 구성하는 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록을 생성하며,
    상기 GPU가 상기 교차 목록을 생성하면 모든 광선에 대해 레이 캐스팅을 병렬로 수행하되,
    상기 어레이 기반 교차 목록 생성시
    모든 경계면을 이미지 면에 순차적으로 투영하고, 경계면에 의해 투영된 모든 픽셀에 대해 픽셀의 ID를 Arrayp에 추가하고 깊이가 있는 경계면 ID를 Arrayi에 각각 추가하고,
    픽셀의 ID로 어레이를 정렬하고 각 픽셀의 교차 정보를 한 곳으로 모으며,
    크기가 픽셀 수와 같은 Arrayl라는 새 어레이를 생성하고,
    각 픽셀에 대한 교차 목록을 깊이별로 정렬하여, 교차 목록인 Arrayi와 Arrayl를 얻는 것을 특징으로 하는 GPU 기반 레이 캐스팅 시스템.
  2. 제1항에 있어서,
    상기 GPU의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 생성하며,
    광선 그룹을 사용 가능한 스레드 블록에 분배하여 이미지 타일 기반 광선 분배를 수행하고 상기 스레드 블록의 스레드가 주어진 광선을 처리하여 레이 캐스팅을 병렬로 수행하는 것을 특징으로 하는 GPU 기반 레이 캐스팅 시스템.
  3. 제2항에 있어서,
    상기 GPU는 상기 레이 캐스팅 알고리즘에서 주문형 VDFI 연산을 위한 스레드 로컬 버퍼를 포함하는 VDFI 버퍼를 더 포함하며,
    상기 VDFI 버퍼는 워프 내의 모든 스레드가 버퍼에서 필요한 버퍼 히트를 발견할 때에만 VDFI 버퍼를 이용하며, 워프 내의 하나 이상의 스레드가 버퍼에서 필요한 정보를 찾을 수 없는 버퍼 미스의 경우, 워프 직렬화는 다른 스레드에 대한 버퍼 히트의 효과를 무효화하는 것을 특징으로 하는 GPU 기반 레이 캐스팅 시스템.
  4. 볼륨 렌더링을 위한 레이 캐스팅 방법에 있어서,
    CPU 측에서 교차 목록을 구성하되, GPU에서 상기 교차 목록을 구성하는 레이 캐스팅 알고리즘을 이용하여 어레이 기반 교차 목록을 생성하는 단계;
    상기 GPU의 스레드 블록에서 광선 간 일관성을 향상시키기 위해 이미지 타일을 기반으로 광선 그룹을 생성하는 단계;
    광선 그룹을 사용 가능한 스레드 블록에 분배하여 이미지 타일 기반 광선 분배를 수행하는 단계; 상기 스레드 블록의 스레드가 주어진 광선을 처리하여 레이 캐스팅을 병렬로 수행하는 단계를 포함하되,
    상기 어레이 기반 교차 목록을 생성하는 단계는,
    모든 경계면을 이미지 면에 순차적으로 투영하고, 경계면에 의해 투영된 모든 픽셀에 대해 픽셀의 ID를 Arrayp에 추가하고 깊이가 있는 경계면 ID를 Arrayi에 각각 추가하는 단계;
    픽셀의 ID로 어레이를 정렬하고 각 픽셀의 교차 정보를 한 곳으로 모으는 단계;
    크기가 픽셀 수와 같은 Arrayl라는 새 어레이를 생성하는 단계; 및
    각 픽셀에 대한 교차 목록을 깊이별로 정렬하여, 교차 목록인 Arrayi와 Arrayl를 얻는 단계를 더 포함하는 GPU 기반 레이 캐스팅 방법.
  5. 삭제
  6. 제4항에 있어서,
    상기 GPU에 포함된 스레드 로컬 버퍼를 포함하는 VDFI 버퍼는 레이 캐스팅 알고리즘에서의 주문형 VDFI 연산을 수행하는 단계를 더 포함하는 GPU 기반 레이 캐스팅 방법.
  7. 제6항에 있어서,
    상기 VDFI 버퍼는
    워프 내의 모든 스레드가 버퍼에서 필요한 버퍼 히트를 발견할 때에만 VDFI 버퍼를 이용하며, 워프 내의 하나 이상의 스레드가 버퍼에서 필요한 정보를 찾을 수 없는 버퍼 미스의 경우, 워프 직렬화는 다른 스레드에 대한 버퍼 히트의 효과를 무효화하는 것을 특징으로 하는 GPU 기반 레이 캐스팅 방법.
KR1020190094491A 2019-08-02 2019-08-02 비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법 KR102218860B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190094491A KR102218860B1 (ko) 2019-08-02 2019-08-02 비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190094491A KR102218860B1 (ko) 2019-08-02 2019-08-02 비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210015509A KR20210015509A (ko) 2021-02-10
KR102218860B1 true KR102218860B1 (ko) 2021-02-23

Family

ID=74560731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190094491A KR102218860B1 (ko) 2019-08-02 2019-08-02 비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102218860B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826123B1 (ko) * 2017-07-14 2018-02-07 한국과학기술정보연구원 비정렬 격자 볼륨 렌더링 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101824646B1 (ko) * 2016-06-07 2018-02-01 한국과학기술정보연구원 비정렬 격자 볼륨 렌더링 병렬처리 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826123B1 (ko) * 2017-07-14 2018-02-07 한국과학기술정보연구원 비정렬 격자 볼륨 렌더링 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김덕수, Journal of KIISE, Vol. 43, No. 3, pp. 304-313, 2016. 3(2016.03.31. 공개). 1부.*

Also Published As

Publication number Publication date
KR20210015509A (ko) 2021-02-10

Similar Documents

Publication Publication Date Title
DE102013204062B4 (de) Voll-Parallel-am-Platz-Konstruktion von 3D-Beschleunigungs-Strukturen in einer Grafik-Verarbeitungs-Einheit
DE102018132468A1 (de) Multi-gpu-frame-rendern
Xu et al. High-performance iterative electron tomography reconstruction with long-object compensation using graphics processing units (GPUs)
Guennebaud et al. Dynamic sampling and rendering of algebraic point set surfaces
Pantaleoni et al. Pantaray: fast ray-traced occlusion caching of massive scenes
Bolitho et al. Parallel poisson surface reconstruction
DE102013017639B4 (de) Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichten L2-Cache-Speicher mit Oberflächenkomprimierung
Palenstijn et al. A distributed ASTRA toolbox
US20140340403A1 (en) System, method, and computer program product for utilizing a wavefront path tracer
Peng et al. A GPU‐based approach for massive model rendering with frame‐to‐frame coherence
US10529049B2 (en) Efficient parallel algorithm for integral image computation for many-core CPUs
DE102013202173A1 (de) Einheitliche Lade-Verarbeitung für Teilsätze von parallelen Threads
DE102013224160A1 (de) System, Verfahren und Computer-Programm-Produkt zum Optimieren des Managements von Thread-Stapel-Speicher
DE102013020810A1 (de) Effiziente Super-Abtastung mit Schattierungs-Strängen pro Pixel
DE102013020968A1 (de) Technik zum Zugreifen auf einen inhaltsadressierbaren Speicher
DE102010050430A1 (de) Das Durchführen paralleler Schattierungsoperationen
DE102020131852A1 (de) Vorrichtung und verfahren zum ausführen eines stabilen sortiervorgangs mit kurzer latenz
Zhang Speeding up large-scale geospatial polygon rasterization on GPGPUs
Lindholm et al. Hybrid data visualization based on depth complexity histogram analysis
Wenger et al. Visualization of astronomical nebulae via distributed multi-GPU compressed sensing tomography
KR102218860B1 (ko) 비정렬 격자 데이터의 렌더링을 위한 gpu 기반 레이 캐스팅 시스템 및 방법
Okuyan et al. Direct volume rendering of unstructured tetrahedral meshes using CUDA and OpenMP
Kim et al. T-ReX: Interactive global illumination of massive models on heterogeneous computing resources
Zheng et al. A distributed multi-GPU system for high speed electron microscopic tomographic reconstruction
DE102023105554A1 (de) Schnelle Datensynchronisation in Prozessoren und Speicher

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant