KR100980449B1 - 병렬 전역조명 렌더링 방법 및 시스템 - Google Patents

병렬 전역조명 렌더링 방법 및 시스템 Download PDF

Info

Publication number
KR100980449B1
KR100980449B1 KR1020070132544A KR20070132544A KR100980449B1 KR 100980449 B1 KR100980449 B1 KR 100980449B1 KR 1020070132544 A KR1020070132544 A KR 1020070132544A KR 20070132544 A KR20070132544 A KR 20070132544A KR 100980449 B1 KR100980449 B1 KR 100980449B1
Authority
KR
South Korea
Prior art keywords
parallel
processing
parallelism
data
random number
Prior art date
Application number
KR1020070132544A
Other languages
English (en)
Other versions
KR20090065100A (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 KR1020070132544A priority Critical patent/KR100980449B1/ko
Priority to PCT/KR2008/005887 priority patent/WO2009078561A1/en
Priority to US12/808,517 priority patent/US8384723B2/en
Publication of KR20090065100A publication Critical patent/KR20090065100A/ko
Application granted granted Critical
Publication of KR100980449B1 publication Critical patent/KR100980449B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Abstract

본 발명은 병렬 전역조명 렌더링 기술에 관한 것으로, 데이터 병렬성이 용이한 병렬 난수를 생성하고, 생성된 병렬 난수 중에서 후보 난수를 선정하여 표본으로 생성하며, 생성된 표본을 토대로 몬테카를로 적분을 수행하고, 공통 호출 인터페이스에서 표본 생성, 난수 생성 및 몬테카를로 적분 수행 기능을 호출할 수 있도록 처리할 작업별로 알고리즘 병렬성과 데이터 병렬성의 속성을 가지는 연산에 대한 공통된 응용프로그램 인터페이스(API)를 제공하며, 시스템 호출부로 처리할 작업에 대한 연산을 요청하고, 시스템 호출부에서 공통 호출 인터페이스로부터 요청된 연산 작업을 수행하는 경우, 처리 작업의 속성에 따라 연산 하드웨어로의 스케쥴링을 통하여 병렬처리를 수행하며, 연산 하드웨어에서 시스템 호출부로부터 전달된 처리 작업을 수행하는 것을 특징으로 한다. 본 발명에 의하면, 단일 CPU 병목현상으로 속도저하를 야기하는 표본 생성, 난수 생성, 몬테카를로 적분 등의 연산부를 다양한 하드웨어 자원들(멀티코어 CPU, GPU, 전용 SIMD 하드웨어)을 이용하여 연산을 수행하는 알고리즘 병렬화 및 데이터 병렬화를 통해 병목현상을 현저히 줄일 수 있으며, 실행시간에 해당 병렬화 속성을 판별하여 다양한 하드웨어 자원에 대한 호출을 제어하여 병렬성을 높여 빠른 처리속도를 제공받을 수 있다.
병렬 전역조명 렌더링, 멀티코어 CPU, GPU, 전용 SIMD 하드웨어

Description

병렬 전역조명 렌더링 방법 및 시스템{METHOD AND SYSTEM FOR RENDERING OF PARALLEL GLOBAL ILLUMINATION}
본 발명은 전역조명기반 렌더링을 수행하는 기술에 관한 것으로서, 특히 전역조명기반 렌더링이 단일 중앙처리장치(이하 CPU라 한다)를 통해 수행될 때, 병목을 일으키는 필수요소 연산들(난수생성, 몬테카를로 적분)을 공통된 인터페이스를 통해, 멀티코어 CPU, 고속의 그래픽스 처리 장치(이하 GPU라 한다), 전용 단일 명령 복수 데이터 방식(SIMD:Single Instruction Multiple Data) 하드웨어 등에서 수행함으로써 처리 속도 개선을 수행하는데 적합한 병렬 전역조명 렌더링 방법 및 시스템에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-045-02, 과제명: 기능 확장형 초고속 랜더러 개발].
일반적으로 전역조명(Global Illumination) 알고리즘은 3차원 그래픽스에서 3차원 장면에 사실적인 빛의 효과를 추가하기 위해 주로 사용하는 알고리즘이다. 물리적으로 타당한 렌더링 결과를 얻기 위해서는 사실감 있는 빛의 작용 계산이 필 요하다. 하지만, 장면내의 객체와 빛과의 작용을 정확하게 시뮬레이션하는 데에는 몇 시간에서 많게는 며칠이 소요될 만큼 복잡한 계산을 요구한다. 빛을 시뮬레이션하기 위해 가장 잘 알려진 방법들로는 광선 추적법(ray tracing), 레디오시티(radiosity), 입자 추적법(particle tracing) 등이 있다. 이 중 광선추적법이 렌더링 기술로 가장 많이 사용되고 있다.
광선 추적법은 카메라에서 빛이 들어오는 역방향으로 추적하여 그 광선의 굴절(refraction), 반사(reflection)를 계산한 후 픽셀값을 결정하여 그려나가는 방법이다. 물리기반 전역조명 렌더러에서 실사 수준의(photo-realistic) 렌더링 결과를 얻기 위해서, 주로 확률적인 적분방법인 몬테카를로(Monte-Carlo, 이하 MC라 한다) 수치 적분방법을 이용한다. 하지만, 고품질의 렌더링 이미지를 얻기 위해서는 많은 표본(sample)과 계산이 필요하기 때문에 처리속도가 저하된다는 문제를 가지고 있다. 또한, 몬테카를로 적분과 쿼시-몬테카를로(Quasi-MC) 적분에 대한 단일 CPU 기반 알고리즘의 최적화에도 한계가 있어, 높은 성능 향상을 기대하기가 힘든 것이 현실이다.
광선 추적법에서 한 픽셀에 대한 계산은 다른 픽셀의 계산과 완전히 독립적이므로, 광선추적 알고리즘 자체는 병렬처리 환경에 가장 적합하다. 따라서 멀티프로세서(Multi-processor)를 이용한 광선 추적법인 병렬 광선 추적법이 주로 사용되어 왔다. 광선 추적법에 있어서 처리속도개선은, 근본적으로 물체를 구성하고 있는 요소와 빛과의 교차검출에 드는 시간과 몬테카를로 적분시간을 줄이는 데 있다. 이는 물체를 구성하고 있는 요소를 빠르게 탐색하기 위한 공간탐색 구조 생성보다 공 간탐색 구조 순회(traversal)와 교차검출 연산시간, 그리고 몬테카를로 적분에서 수행되는 난수생성 및 적분계산 시간이 오래 걸리기 때문이다.
하지만, 극사실적인 렌더링 이미지를 생성하는 응용에서는 몬테카를로 적분 계산이 여전히 병목지점이 되고 있다.
상기한 바와 같이 동작하는 종래 기술에 의한 실시간 렌더링 시스템에 있어서는, 광선 추적법을 가속할 수 있는 하드웨어 개발에 대한 연구 결과가 나오고 있으나, 이는 2차광선(secondary ray)부터는 추적기능을 지원하지 않아, 극사실적인 렌더링 이미지 생성 분야에서는 적용하기 어렵다. 또한, 몬테카를로 적분을 위한 전용 하드웨어도 구현되지 않고 있어, 전역조명 렌더링 이미지 생성시 처리속도를 크게 개선하지 못하고 있으며, 여전히 실시간처리를 위한 효과적인 방법은 제안되지 않았다.
이에 본 발명은, 물리기반(Physically-based) 전역조명 렌더러에서 장면내의 객체들과 빛의 상호작용을 빠르게 수행하여 렌더링 시간을 단축할 수 있는 병렬 전역조명 렌더링 방법 및 시스템을 제공한다.
또한 본 발명은, 전역조명기반 렌더링이 단일 중앙처리장치를 통해 수행될 때, 병목을 일으키는 필수요소 연산들(난수생성, 몬테카를로 적분)을 공통된 인터페이스를 통해, 멀티코어 CPU, 고속의 그래픽스 처리 장치, 전용 SIMD 하드웨어 등에서 수행함으로써 처리 속도 개선을 수행할 수 있는 병렬 전역조명 렌더링 방법 및 시스템을 제공한다.
또한 본 발명은, 전역조명 렌더링 입력장면을 영역별로 나누고, 공통된 인터페이스를 제어하는 시스템 호출부를 통해 실행시간에 작업을 배분 및 스케쥴링하여 병렬처리 함으로써 처리속도를 현저히 개선할 수 있는 병렬 전역조명 렌더링 방법 및 시스템을 제공한다.
본 발명의 일 실시예 방법은, 사실적인 렌더링 이미지를 얻기 위한 전역조명 렌더링을 수행하는 방법으로서, 데이터 병렬성이 용이한 병렬 난수를 생성하는 과정과, 상기 생성된 병렬 난수 중에서 후보 난수를 선정하여 표본으로 생성하는 과정과, 상기 생성된 표본을 토대로 몬테카를로 적분을 수행하는 과정과,공통 호출 인터페이스에서 상기 표본 생성, 상기 난수 생성 및 상기 몬테 카를로 적분 수행 기능을 호출할 수 있도록 처리할 작업별로 알고리즘 병렬성과 데이터 병렬성의 속성을 가지는 연산에 대한 공통된 응용프로그램 인터페이스(API)를 제공하는 과정과, 상기 공통 호출 인터페이스에서 시스템 호출부로 상기 처리할 작업에 대한 연산을 요청하는 과정과, 상기 시스템 호출부에서 상기 공통 호출 인터페이스로부터 요청된 연산 작업을 수행하는 경우, 처리 작업의 속성에 따라 연산 하드웨어로의 스케쥴링을 통하여 병렬처리를 수행하는 과정과, 상기 연산 하드웨어에서 상기 시스템 호출부로부터 전달된 처리 작업을 수행하는 과정을 포함한다.
본 발명의 일 실시예 시스템은, 사실적인 렌더링 이미지를 얻을 수 있는 전역조명 렌더링을 위해 데이터 병렬성이 용이한 병렬 난수를 생성하는 병렬 난수 생성부와, 상기 생성된 난수 중에서 후보 난수를 선정하여 표본으로 생성하는 표본 생성부와,상기 생성된 표본을 토대로 몬테카를로 적분을 수행하는 몬테카를로 적분 계산부와, 상기 표본 생성부와, 병렬난수 생성부와, 적분 계산부의 기능을 호출할 수 있도록 구성되며, 처리할 작업별로 알고리즘 병렬성과 데이터 병렬성의 속성을 가지는 연산에 대한 공통된 응용프로그램 인터페이스(API)를 제공하고, 상기 시스템 호출부로 상기 작업에 대한 연산을 요청하는 공통 호출 인터페이스와, 상기 공통 호출 인터페이스로부터 요청된 연산 작업을 수행하는 경우, 처리 작업의 속성에 따라 연산 하드웨어로의 스케쥴링을 통하여 병렬처리를 수행하는 시스템 호출부와, 상기 시스템 호출부로부터 전달된 작업에 대한 병렬 처리를 수행하는 상기 연산 하드웨어를 포함한다.
본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 단일 CPU 병목현상으로 속도저하를 야기하는 표본 생성, 난수 생성, 몬테카를로 적분 등의 연산부를 다양한 하드웨어 자원들(멀티코어 CPU, GPU, 전용 SIMD 하드웨어)을 이용하여 연산을 수행하는 알고리즘 병렬화 및 데이터 병렬화를 통해 병목현상을 현저히 줄일 수 있으며, 실행시간에 해당 병렬화 속성을 판별하여 다양한 하드웨어 자원에 대한 호출을 제어하여 병렬성을 높여 빠른 처리속도를 제공받을 수 있다.
따라서 실시간 전역조명 렌더링, 인터액티브(interactive) 광선추적법 분야 등에서 신속하고 간편하게 수행될 수 있으며, 사용자가 쉐이더 프로그램을 통해 제어가 가능하므로 프로그래머블(programmable)한 유연성도 제공한다. 또한, 교차검사에 있어서, 가속화 계층 구조를 통해 검사대상을 미리 현저히 줄여서 연산을 수행하므로 교차검사에 소요되는 시간을 하드웨어를 통해 가속화 할 수 있다는 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 전역조명기반 렌더링이 단일 중앙처리장치를 통해 수행될 때, 병목을 일으키는 필수요소 연산들(난수생성, 몬테카를로 적분)을 공통된 인터페이스를 통해, 멀티코어 CPU, 고속의 그래픽스 처리 장치, 전용 SIMD 하드웨어 등에서 수행함으로써 처리 속도를 개선하는 것이다.
이를 위해 전역조명 렌더링 입력장면을 영역별로 나누고, 공통된 인터페이스를 제어하는 시스템 호출부를 통해 실행시간에 작업 배분 및 스케쥴링하여 병렬처리를 수행한다.
도 1은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 구조를 도시한 도면이다.
도 1을 참조하면, 병렬 전역 조명 렌더링 시스템(100)은, 사실적인 렌더링 이미지를 얻기 위한 전역조명 렌더링 처리부(102), 효율적인 표본추출(sampling) 기능을 담당하는 표본 생성부(104), 병렬 프로세서 코어 내에서 빠른 난수 생성을 수행할 수 있는 병렬 난수생성부(106), 몬테카를로 적분기능을 수행하는 몬테카를로 적분처리부(108), 그리고 하드웨어에 독립적으로 언급한 표본 생성부(104), 병렬 난수생성부(106), 몬테카를로 적분 처리부(108) 기능을 호출 할 수 있도록 구성된 공통 호출 인터페이스(application programming interface, API)(110), 공통 호출 인터페이스(110)에 대한 각 기능을 실행시간의 상황에 따라 하드웨어를 호출 및 제어하는 시스템 호출 제어부(112), 실제 사용자가 호출한 기능을 수행하는 멀티코어 CPU(114), GPU(116), 전용 SIMD 하드웨어(118), 최종 렌더링 결과를 출력하는 화면 출력부(120)를 포함한다.
상기와 같은 병렬 전역조명 렌더링 시스템(100)은, 광원에 대한 물리적인 현상에 기반한(physically-based) 고품질 렌더링을 수행하기 위해 물체의 기하 정보를 입력받고, 이를 메인 기억장치(main memory)에 저장한 뒤, 다양한 하드웨어 자원들 멀티코어 CPU(114), 프로그래머블 GPU(116), 전용 SIMD 하드웨어(118)을 통해 병렬적으로 처리되어 빠른 렌더링 속도를 제공한다. 이러한, 전역조명 렌더링시 병목지점인 광선 생성을 위한 난수 생성 및 몬테카를로 적분의 성능을 확장된 병렬 난수 생성방법과, 실행시간 상황에 따른 시스템 호출 제어 방법을 통해 현저히 개선할 수 있다.
전통적인 렌더링 응용시스템의 처리 방식은 물리기반 전역조명 렌더링을 위해 단일 CPU에서 담당하여 처리하였으며, GPU는 사용자 화면상에 3차원 장면을 디스플레이해 주는 기능을 제공하였다. 여기서, 단일 CPU에서 담당했던 렌더링 연산 중에서 난수 생성기능이 SIMD 전용 하드웨어에 비해 현저히 처리 속도가 느리며, 몬테카를로 적분 기능 부분의 주요 병목지점이었다. 이러한 단점을 극복하고자 본 발명의 렌더링 시스템(100)에서는 단일 코어를 가진 CPU가 아닌, 멀티코어 CPU(114)를 적용하여 함수 기능별 병렬화(functional parallelism)를 수행하였다.
하지만, 단순한 하나의 명령에 대해 다수의 데이터를 처리하는 데이터 병렬성(data parallelism)으로는 만족할만한 속도개선을 얻지 못했다. 이에 멀티코어 CPU(114)뿐만 아니라, GPU(116), 전용 SIMD 하드웨어(118)를 이용하여 함수기능(알고리즘)별 병렬화와 데이터 병렬화를 최대화하여 전역조명 렌더링 속도를 개선할 수 있도록 한다.
병렬 전역 조명 렌더링 시스템(100)은, 전역조명 렌더링 처리부(102)에서 사실적인 렌더링 이미지를 얻기 위한 전역조명 렌더링을 수행하는 것으로서, 수치적인 몬테카를로 적분(Monte Carlo Integration) 계산을 통해 렌더링하는 이미지의 각 픽셀에 대한 색상(color)값을 구한다. 몬테카를로 적분은 임의의 함수를 처리하는 일반적이고 강력한 기법이다. 함수 f(x) 에 대한 적분
Figure 112009043973335-pat00001
는 확률분포 함수 (PDF:Probability Distribution Function) P(x)를 이용하여 몬테카를로 예측치 (estimator)를 하기 <수학식 1>과 같이 계산할 수 있다.
Figure 112007090705136-pat00002
여기서, 예측치에 대한 분산(variance)은 하기 <수학식 2>와 같다.
Figure 112007090705136-pat00003
몬테카를로 계산은 다음 세 단계로 구성된다.
- 확률분포함수(PDF)에 따른 표본 생성(sampling) 단계와,
- 생성된 표본에서의 함수 평가 단계와,
- 위에서 생성된 적당한 가중치를 가진 표본들에 대한 평균 계산 단계로 구성된다.
여기서, 표본 생성부(104)는 병렬 난수생성부(106)를 통해 생성된 난수들 중에서 특정 난수를 표본으로 선택하는 데에는 다양한 방법이 있으며, 한 예로 도 9에 도시한 바와 같이 리젝션 샘플링(Rejection sampling) 기법의 경우 생성된 난수들(x, y)에 대해, p(x)<y 인 경우의 표본은 제외(reject)하는 방법이다. 따라서 병렬 난수생성부(106)는 표본 생성부(104)의 표본 생성을 위한 후보 난수를 생성하는 기능을 수행한다.
표본 생성부(104)에서는 전역 렌더링 수행에서 필요한 샘플링 기능을 수행한다. 병렬 난수생성부(106)는 데이터병렬성이 용이한 난수를 병렬적으로 생성해 주는 기능을 수행한다. 단순히, 단일 CPU에서 동작하는 난수 생성 알고리즘을 멀티코어 CPU(114)에 적용하게 되면, 각 코어별로 동일한 주기를 갖는 난수들이 발생하게 되어 난수의 무작위성(randomness)에 대한 문제가 발생한다. 따라서 병렬 난수생성 알고리즘이 별도로 구현되어야 한다. 그리고 몬테카를로 적분 처리부(108)에서는 확률적인 적분방법인 몬테카를로 적분 기능을 수행한다.
공통 호출 인터페이스(110)는 표본 생성부(104), 병렬 난수 생성부(106), 몬테카를로 적분처리부(108), 그리고 함수기능 병렬성과 데이터 병렬성을 가지는 일반적인 연산에 대한 공통된 API를 제공한다. 공통 호출 인터페이스(110)의 목적은 하위의 하드웨어와는 독립적으로 상위 응용에서 사용될 수 있으며, 다양한 하드웨어를 상위 응용프로그램의 수정 없이 사용할 수 있다는 장점을 제공한다.
시스템 호출 제어부(112)는 공통 호출 인터페이스를 통해 요구된 기능을 실행시간에 기능 속성을 판별하여 적절한 하드웨어를 호출하는 기능을 제공한다. 이러한 기능을 제공하기 위해서는 실행시간에 해당 기능에 대한 속성을 크게 데이터 병렬성 및 함수 알고리즘 병렬성으로 구분할 수 있는 알고리즘이 필요하다. 예를 들어, 데이터 병렬형의 연산은 멀티코어 CPU(114) 보다 GPU(116)와 SIMD 하드웨어(118)에 특화된 연산이므로, 이러한 연산의 경우 GPU(116)와 SIMD 하드웨어(118)에서 수행될 수 있도록 호출을 제어해 준다.
도 2는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템에서의 렌더링 수행 작업별 하드웨어 호출 방식을 도시한 도면이다.
도 2를 참조하면, 병렬 전역 조명 렌더링 시스템(100)을 통하여 렌더링 수행시 데이터 병렬화(200)에 의해 데이터 병렬성을 가지는 연산에 대해서는 GPU(116)와 전용 SIMD 하드웨어(118)를 통해 수행하고, 알고리즘 병렬화(202)에 의해 알고리즘 병렬성을 가지는 연산에 대해서는 멀티코어 CPU(114)를 통해 연산을 수행한다.
도 3은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 멀티코어 CPU의 구조를 도시한 블록도이다.
도 3을 참조하면, 멀티코어 CPU(114)는 하나의 프로세서 다이(die)에 다수의 프로세서 코어가 탑재되는 형태로서, 하나의 코어는 슈퍼스칼라(super-scalar) 구조로된 복수개의 스칼라 연산 장치(Scalar Unit)(300, 302)와, 로드/스토어 명령어 처리 장치(Load/Store Unit)(304)와 복수개의 데이터를 처리할 수 있는 SIMD 장치(SIMD Unit)(306, 308)를 포함한다. 멀티 코어 CPU(114)의 경우, 각각의 CPU 코어가, 각각의 실행 장치에 대하여 서로 다른 명령을 발행(issue)한다. 따라서 다수의 명령을 여러 코어를 통해 병렬적으로 수행할 수 있으므로, 병렬 전역조명 렌더링 시스템(100)에서 알고리즘 병렬성을 가지는 작업은 멀티코어 CPU(114)를 호출함으로써 효과적으로 처리할 수 있다.
도 4는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 GPU 구조를 도시한 블록도이다.
도 4를 참조하면, GPU(116)의 연산 장치인 프로그래머블 쉐이더(programable shader) 프로세서(400, 402, 404)는 여러 장치당 바인드 된 클러스터로서 관리되고 있다. 그 중 하나의 클러스터를 보여 주고 있다. 일반적인 GPU(116) 구성은 4개 ~ 16개의 쉐이더 클러스터를 하나의 클러스터에 정리하는 것이다. GPU(116) 명령 실행 구조는 매우 간략화 되어 있다.
전체로 보면, 쉐이더 클러스터 전체가 하나의 명령으로 복수의 데이터에 대해서 처리를 행하는 SIMD 형태 프로세서의 대형화된 형태로 되어 있다. 따라서, 이러한 형태는 데이터 병렬성을 가지는 연산에 적합하다. 하지만, 전용 SIMD 하드웨어에 비해서는 데이터 저장 공간이 적다는 단점이 있다. 따라서 대용량의 SIMD 연 산은 전용 SIMD 하드웨어를 통해 수행되는 것이 바람직하며, GPU(116)에서는 데이터 병렬성을 가지는 작업 중 기 설정된 데이터 용량이하의 저용량 데이터에 대해서 병렬 연산을 수행하도록 한다.
도 5는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 전용 SIMD 하드웨어의 구조를 도시한 블록도이다.
도 5를 참조하면, 전용 SIMD 하드웨어(118)는 배열 프로세서(array processor) 형태로 구성되며, 각 배열 프로세서에 해당되는 프로세서 장치(PE; poly execution unit)(500)와, 이러한 PE(500)들의 실행을 관리하는 장치(mono execution unit)(502)로 구성된다. 이러한 전용 SIMD 하드웨어(118)는 GPU(116) 보다 많은 데이터의 저장이 가능하므로, 데이터 병렬성을 가지는 작업 중 기 설정된 데이터 용량 이상의 대용량 데이터에 대한 병렬 연산이 가능하다.
도 6는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템에서 수행되는 광선 추적법에 의한 렌더링 처리 흐름을 도시한 도면이다.
도 6을 참조하면, 광선 추적법은 광자의 움직임과 크기를 벡터화하여 광자의 운동 경로를 수학적으로 예측하기 위한 것으로서, 먼저, 광선 생성부(600)에서는 렌더링하게 될 이미지의 각 픽셀 당 광선을 생성하게 되는데, 이때, 1차광선 (primary ray)과 입력 장면내에 있는 객체의 충돌지점을 구하고, 또 다시 이 충돌지점을 시작점으로 2차광선(secondary ray)을 생성하게 된다. 도 10을 참조하면, 이러한 광선 생성을 위해 임의의 광선 시작점 x에 대해 반구상에 생성될 수 있는 광선을 확률적으로 계산하게 된다. 이러한 광선에 대한 표본 생성기법을 반구상의 표본 생성법(Sampling of hemisphere)이라고 한다. 따라서 광선 생성시에 표본 생성부(104), 병렬 난수 생성부(106)의 연산들이 수행되고, 충돌지점에 대한 색상값의 계산은 몬테카를로 적분처리부(108)의 연산들이 수행된다.
예를 들어, 광선추적시 데이터 병렬성을 가지는 1차광선은 생성된 병렬난수를 통해 생성된 병렬난수를 이용하여 1차광선의 서브픽셀(sub-pixel) 위치를 생성하고, 1차광선에 따라 발생한 2차광선은 반구 샘플링을 통한 표본 생성을 수행하며, 각 광선과 장면객체간의 충돌지점에 대한 색상값은 몬테카를로 적분을 수행함으로써 빛의 반사 특성을 반영하여 렌더링을 수행하는 것이다.
공간 탐색 가속구조 순회부(602)에서는 생성된 광선을 이용하여 공간 탐색을 수행하게 되며, 이때, 계층적 탐색구조를 이용한다. 컴퓨터 그래픽스에서 3차원 장면에 대한 공간탐색 구조는 보통 계층적으로 구성되며, 공간 탐색 가속구조 순회부(602)에서 사용되는 계층적 탐색구조는 이와 같은 것이다. 즉, 최상위 레벨의 내용이 그 아래 레벨의 내용을 포함하고, 그 레벨은 또 다시 아래 레벨의 내용을 포함하고 있다는 것을 의미한다.
따라서 이러한 구조는 중첩되고 반복되는 속성을 가진다. 계층적 구조를 사용함으로써 여러 가지 유형의 검사들이 신속하게 처리할 수 있다. 통상 O(n)의 비용 연산을 계층적 구조로 생성하여 처리하면 O(logn)으로 개선된다. 계층적 탐색구조는 바운딩 볼륨 계층구조(bounding volume hierarchies), BSP 트리, k-d 트리, 8진 트리(octree), 방향성 바운딩 박스(oriented bounding box;OBB) 트리, k-DOP(discrete orientation polytope) 트리 등의 이미 잘 알려진 알고리즘을 선택하여 적용할 수 있다. 한편, 공간탐색 가속구조 순회부(602)는 광선과 객체의 충돌여부를 판별할 때 상세 충돌검사 대상을 선별할 때 이용된다.
삼각형 교차계산부(604)는 객체들이 교차했는지 여부와 만약 교차했을 경우 해당 교차점을 계산하는 역할을 담당한다. 교차검사에 대상이 되는 객체들로는 삼각형이나 삼각형 리스트 등이 있다. 쉐이딩 계산부(606)는 계산된 교차점을 이용하여 3차원 상의 물체 표면의 성질에 따라 빛이 어떻게 반사되어 나타나는 객체 표면의 색상을 계산하는 기능을 수행하며, 이때, 쉐이딩 계산부(606)는 초기 사용자가 프로그램한 쉐이더 프로그램(shader program)을 입력 받아 처리하게 된다. 쉐이더 프로그램에는 3차원 장면상의 각 객체에 대한 표면속성을 기술한 것으로 표준 OpenGL Shading Language(OGSL)나 상용 CG와 같은 언어를 이용하여 작성될 수 있다. 이렇게 처리하는 근본적인 목적은 빛과 반응하는 객체의 속성을 자유롭게 사용자 혹은 개발자가 변경할 수 있는 프로그래머블(programmable)한 유연성을 제공하는데 있다.
이와 같이 쉐이딩 계산부(606)에서는 쉐이더 프로그램을 이용하여 객체 표면의 생상을 계산하고, 픽셀 별 계산된 결과를 픽셀값(608)으로 출력하고, 출력된 값을 특정 이미지상에 누적되어 저장하게 된다. 또한, 쉐이딩 계산부(606)에서는 사용된 쉐이딩 광선(610)을 공간 탐색 가속 구조 순회부(602)로 전송하여, 공간탐색에 대해 반복수행하도록 한다.
도 7은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 병렬 난수생성부의 수행절차를 도시한 흐름도이다.
도 7을 참조하면, 병렬 난수 생성부(106)에서의 병렬 난수 생성은 크게 초기화 단계와 생성단계로 나눌 수 있다. 먼저 초기화 단계로서, 700단계에서는 주어진 난수생성기들에 포함된 모든 세그멘트/오프셋 카운트를 초기화 하고, 702단계에서 첫 번째 난수 생성기의 난수 씨드(seed) 벡터를 초기화 한다. 이 과정에서 난수 생성기 0의 씨드 벡터를{11111111, 22222222, 33333333, 44444444}로 초기화 한다. 그리고 704단계에서 난수 생성기를 자신의 초기값 또는 다른 임의의 씨드(seed)로 초기화한다.
706단계부터는 생성단계로서, 첫 번째 반복인 경우, 별도의 초기화 작업을 수행하는 것으로서, 708단계에서는 각 난수 생성기를 생성기/시뮬레이션/집합 ID에 따라 초기화하고, 710단계에서는 첫 번째 난수 생성기의 seed0을 이용하여 다른 난수 생성기의 seedn을 초기화하고, 712단계로 진행한다.
한편, 706단계에서, 두 번째 반복부터는 바로 712단계로 진행하는 것으로서, 712단계에서는 708단계와, 710 단계의 초기화가 끝나면, 각 변수/아이템/인수에 대해, 0과 1사이의 균일한 난수를 생성하고, 714단계에서 712단계를 각 아이템 개수만큼 반복수행한 후, 동일 생성기 내에서 다른 세그먼트로 이동한다. 이후, 716단계에서는 각 생성기의 개수만큼 706단계 내지 714단계를 반복 수행하며, 난수를 생성하게 된다.
도 8은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템에서 시스템 호출 제어부의 수행절차를 도시한 흐름도이다.
도 8을 참조하면, 병렬 전역조명 렌더링 시스템(100)내의 시스템 호출 제어 부(112)에서 공통 호출 인터페이스(110)를 통해 요청된 기능에 대한 호출 제어처리를 수행하는 것으로서, 800단계에서 공통 호출 인터페이스(110)로부터 특정 작업에 대한 처리를 수행하기 위한 요청된 기능을 수신한 경우, 802단계에서 수신된 기능이 알고리즘 병렬성 작업인지 여부를 판단하게 된다. 이에 알고리즘 병렬성 작업인 경우는, 804단계로 진행하여 멀티코어 CPU를 호출하여, 요청에 작업 수행시 멀티코어 CPU(114)를 이용하여 처리하게 된다.
이때, 802단계에서, 알고리즘 병렬성 작업이 아닌, 데이터 병렬성 작업인 경우는 806단계로 진행하여 요청된 작업이 기 설정된 용량을 초과하는 작업인지 여부를 판단하여 기 설정된 용량을 초과하는 대용량 데이터를 처리하기 위한 것이라면, 808단계로 진행하여 전용 SIMD 하드웨어(118)를 호출하여 처리하도록 하고, 요청된 작업이 기 설정된 용량 이하의 데이터인 경우는, GPU(116)를 호출하여 데이터를 처리하게 되는 것이다.
상기와 같은 전역조명 렌더링 시 병목지점인 광선 생성을 위한 난수 생성 및 몬테카를로 적분의 성능을 본 발명의 병렬 전역조명 렌더링 시스템을 통해 현저히 개선함으로써, 인터액티브 전역조명 렌더링(interactive global illumination) 및 실시간 광선 추적법(real-time ray tracing) 분야 등에 응용될 수 있다.
이상 설명한 바와 같이, 본 발명은 전역조명기반 렌더링이 단일 중앙처리장치를 통해 수행될 때, 병목을 일으키는 필수요소 연산들(난수생성, 몬테카를로 적분)을 공통된 인터페이스를 통해, 멀티코어 CPU, 고속의 그래픽스 처리 장치, 전용 SIMD 하드웨어 등에서 수행함으로써 처리 속도를 개선하는 것으로서, 이를 위해 전 역조명 렌더링 입력장면을 영역별로 나누고, 공통된 인터페이스를 제어하는 시스템 호출부를 통해 실행시간에 작업 배분 및 스케쥴링하여 병렬처리를 수행한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 구조를 도시한 도면,
도 2는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템에서의 렌더링 수행 작업별 하드웨어 호출 방식을 도시한 도면,
도 3은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 멀티코어 CPU의 구조를 도시한 블록도,
도 4는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 GPU 구조를 도시한 블록도,
도 5는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 전용 SIMD 하드웨어의 구조를 도시한 블록도,
도 6는 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템에서 수행되는 광선 추적법에 의한 렌더링 처리 흐름을 도시한 도면,
도 7은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템의 병렬 난수생성부의 수행절차를 도시한 흐름도,
도 8은 본 발명의 바람직한 실시예에 따른 병렬 전역 조명 렌더링 시스템에서 시스템 호출 제어부의 수행절차를 도시한 흐름도,
도 9는 본 발명의 바람직한 실시예에 따른 표본 생성기법의 하나인 리젝션 샘플링 기법을 도시한 도면,
도 10은 본 발명의 바람직한 실시예에 따라 광선추적시 사용되는 반구 샘플 링 기법을 도시한 도면.

Claims (10)

  1. 사실적인 렌더링 이미지를 얻기 위한 전역조명 렌더링을 수행하는 방법으로서,
    데이터 병렬성이 용이한 병렬 난수를 생성하는 과정과,
    생성한 상기 병렬 난수중에서 후보 난수를 선정하여 표본으로 생성하는 과정과,
    생성힌 상기 표본을 토대로 몬테카를로 적분을 수행하는 과정과,
    공통 호출 인터페이스에서 상기 표본으로 생성하는 과정을 위한 기능, 상기 난수를 생성하는 과정을 위한 기능 및 상기 몬테카를로 적분을 수행하는 과정을 위한 기능을 호출할 수 있도록 처리할 작업별로 알고리즘 병렬성과 데이터 병렬성의 속성을 가지는 연산에 대한 공통된 응용프로그램 인터페이스(API)를 제공하는 과정과,
    상기 공통 호출 인터페이스에서 시스템 호출부로 상기 처리할 작업에 대한 연산을 요청하는 과정과,
    상기 시스템 호출부에서 상기 공통 호출 인터페이스로부터 요청된 연산 작업을 수행하는 경우, 처리 작업의 속성에 따라 연산 하드웨어로의 스케쥴링을 통하여 병렬처리를 수행하는 과정과,
    상기 연산 하드웨어에서 상기 시스템 호출부로부터 전달된 처리 작업을 수행하는 과정
    을 포함하는 병렬 전역조명 렌더링 방법.
  2. 제 1항에 있어서,
    상기 연산 하드웨어는,
    하나의 프로세서에 다수의 코어를 탑재한 멀티코어 중앙처리 장치(CPU)와 프로그래머블 쉐이더 프로세서를 탑재한 그래픽 처리 장치(GPU) 및 배열 프로세서를 이용하여 대용량 병렬 데이터를 처리하는 전용 단일 명령 복수 데이터 방식(SIMD) 하드웨어를 포함하는 것을 특징으로 하는 병렬 전역조명 렌더링 방법.
  3. 제 2항에 있어서,
    상기 방법은,
    상기 공통 호출 인터페이스로부터 처리 작업의 속성이 알고리즘 병렬성 작업인 경우, 상기 시스템 호출부에서 상기 멀티코어 CPU로 작업 처리를 지시하는 과정
    을 더 포함하는 것을 특징으로 하는 병렬 전역조명 렌더링 방법.
  4. 제 2항에 있어서,
    상기 방법은,
    상기 공통 호출 인터페이스로부터 처리 작업의 속성이 데이터 병렬성 작업으로서, 처리할 데이터가 기설정된 데이터 용량을 초과하는 경우, 상기 시스템 호출부에서 상기 전용 SIMD 하드웨어로 작업 처리를 지시하는 과정
    을 더 포함하는 것을 특징으로 하는 병렬 전역조명 렌더링 방법.
  5. 제 2항에 있어서,
    상기 방법은,
    상기 공통 호출 인터페이스로부터 처리 작업의 속성이 데이터 병렬성 작업으로서, 처리할 데이터가 기설정된 데이터 용량 이하인 경우, 상기 시스템 호출부에서 상기 GPU로 작업 처리를 지시하는 과정
    을 더 포함하는 것을 특징으로 하는 병렬 전역조명 렌더링 방법.
  6. 사실적인 렌더링 이미지를 얻을 수 있는 전역조명 렌더링을 위해 데이터 병렬성이 용이한 병렬 난수를 생성하는 병렬 난수 생성부와,
    생성한 상기 난수 중에서 후보 난수를 선정하여 표본으로 생성하는 표본 생성부와,
    생성한 상기 표본을 토대로 몬테카를로 적분을 수행하는 몬테카를로 적분 계산부와,
    상기 표본 생성부와, 상기 병렬난수 생성부와, 상기 적분 계산부의 기능을 호출할 수 있도록 구성되며, 처리할 작업별로 알고리즘 병렬성과 데이터 병렬성의 속성을 가지는 연산에 대한 공통된 응용프로그램 인터페이스(API)를 제공하고, 시스템 호출부로 상기 작업에 대한 연산을 요청하는 공통 호출 인터페이스와,
    상기 공통 호출 인터페이스로부터 요청된 연산 작업을 수행하는 경우, 처리 작업의 속성에 따라 연산 하드웨어로의 스케쥴링을 통하여 병렬처리를 수행하는 상기 시스템 호출부와,
    상기 시스템 호출부로부터 전달된 작업에 대한 병렬 처리를 수행하는 상기 연산 하드웨어
    를 포함하는 병렬 전역조명 렌더링 시스템.
  7. 제 6항에 있어서,
    상기 연산 하드웨어는,
    하나의 프로세서에 다수의 코어를 탑재한 멀티코어 중앙처리 장치(CPU)와 프로그래머블 쉐이더 프로세서를 탑재한 그래픽 처리 장치(GPU) 및 배열 프로세서를 이용하여 대용량 병렬 데이터를 처리하는 전용 단일 명령 복수 데이터 방식(SIMD) 하드웨어를 포함하는 것을 특징으로 하는 병렬 전역조명 렌더링 시스템.
  8. 제 7항에 있어서,
    상기 시스템 호출부는,
    상기 공통 호출 인터페이스로부터 처리 작업의 속성이 알고리즘 병렬성 작업인 경우, 상기 멀티코어 CPU로 작업 처리를 지시하는 것을 특징으로 하는 병렬 전역조명 렌더링 시스템.
  9. 제 7항에 있어서,
    상기 시스템 호출부는,
    상기 공통 호출 인터페이스로부터 처리 작업의 속성이 데이터 병렬성 작업으로서, 처리할 데이터가 기설정된 데이터 용량을 초과하는 경우, 상기 전용 SIMD 하드웨어로 작업 처리를 지시하는 것을 특징으로 하는 병렬 전역조명 렌더링 시스템.
  10. 제 7항에 있어서,
    상기 시스템 호출부는,
    상기 공통 호출 인터페이스로부터 처리 작업의 속성이 데이터 병렬성 작업으로서, 처리할 데이터가 기설정된 데이터 용량 이하인 경우, 상기 GPU로 작업 처리를 지시하는 것을 특징으로 하는 병렬 전역조명 렌더링 시스템.
KR1020070132544A 2007-12-17 2007-12-17 병렬 전역조명 렌더링 방법 및 시스템 KR100980449B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070132544A KR100980449B1 (ko) 2007-12-17 2007-12-17 병렬 전역조명 렌더링 방법 및 시스템
PCT/KR2008/005887 WO2009078561A1 (en) 2007-12-17 2008-10-08 Method and system of rendering parallel global illumination
US12/808,517 US8384723B2 (en) 2007-12-17 2008-10-08 Method and system of rendering parallel global illumination

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070132544A KR100980449B1 (ko) 2007-12-17 2007-12-17 병렬 전역조명 렌더링 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20090065100A KR20090065100A (ko) 2009-06-22
KR100980449B1 true KR100980449B1 (ko) 2010-09-07

Family

ID=40795666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070132544A KR100980449B1 (ko) 2007-12-17 2007-12-17 병렬 전역조명 렌더링 방법 및 시스템

Country Status (3)

Country Link
US (1) US8384723B2 (ko)
KR (1) KR100980449B1 (ko)
WO (1) WO2009078561A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110089649A (ko) 2010-02-01 2011-08-09 삼성전자주식회사 병렬 연산 처리 방법 및 장치
US9508191B2 (en) 2010-07-23 2016-11-29 Pacific Data Images Llc Optimal point density using camera proximity for point-based global illumination
US9092267B2 (en) * 2011-06-20 2015-07-28 Qualcomm Incorporated Memory sharing in graphics processing unit
US10713838B2 (en) * 2013-05-03 2020-07-14 Nvidia Corporation Image illumination rendering system and method
JP2016071733A (ja) * 2014-09-30 2016-05-09 キヤノン株式会社 画像処理装置および画像処理方法
EP3057067B1 (en) * 2015-02-16 2017-08-23 Thomson Licensing Device and method for estimating a glossy part of radiation
US10043303B2 (en) * 2016-03-30 2018-08-07 Intel IP Corporation Methods and apparatus for more efficient ray tracing of instanced geometry
US10607393B2 (en) * 2017-03-10 2020-03-31 Siemens Healthcare Gmbh Consistent 3D rendering in medical imaging
CN107391259B (zh) * 2017-07-25 2020-12-01 Oppo广东移动通信有限公司 资源处理方法和装置、计算机可读存储介质、移动终端
US11263060B2 (en) * 2019-11-21 2022-03-01 International Business Machines Corporation Dynamic distribution of loads across heterogeneous computing structures in computational rendering
US11941752B2 (en) 2020-07-21 2024-03-26 Nvidia Corporation Streaming a compressed light field
US11501467B2 (en) 2020-11-03 2022-11-15 Nvidia Corporation Streaming a light field compressed utilizing lossless or lossy compression
CN116347003B (zh) * 2023-05-30 2023-08-11 湖南快乐阳光互动娱乐传媒有限公司 一种虚拟灯光实时渲染方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020063057A (ko) * 2001-01-26 2002-08-01 한탁돈 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
US6496187B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
CN1253004C (zh) * 2000-10-31 2006-04-19 皇家菲利浦电子有限公司 用于包括图形元素的视频景象合成的方法和装置
US20050140688A1 (en) * 2003-12-29 2005-06-30 Kim Pallister Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
EP1846834A2 (en) * 2005-01-25 2007-10-24 Lucid Information Technology, Ltd. Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020063057A (ko) * 2001-01-26 2002-08-01 한탁돈 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system

Also Published As

Publication number Publication date
KR20090065100A (ko) 2009-06-22
WO2009078561A1 (en) 2009-06-25
US8384723B2 (en) 2013-02-26
US20110122135A1 (en) 2011-05-26

Similar Documents

Publication Publication Date Title
KR100980449B1 (ko) 병렬 전역조명 렌더링 방법 및 시스템
US11138009B2 (en) Robust, efficient multiprocessor-coprocessor interface
US10679405B2 (en) Object illumination in hybrid rasterization and ray traced 3-D rendering
US9043801B2 (en) Two-tiered dynamic load balancing using sets of distributed thread pools
JP5485257B2 (ja) レイトレース・レンダリングのための並列化された交差テストおよびシェーディングのアーキテクチャ
JP5476138B2 (ja) 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法
Carr et al. The ray engine
CN117132448A (zh) 针对射线跟踪系统的减小的加速结构
JP2022091849A (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
CN110458905A (zh) 用于层级自适应曲面细分的设备和方法
KR20140036519A (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
US8212825B1 (en) System and method for geometry shading
CN113822788B (zh) 光线追踪硬件中对资源的早期释放
CN108475441A (zh) 光线追踪期间的详细级别选择
Kim et al. A 3D graphics rendering pipeline implementation based on the openCL massively parallel processing
US11816781B2 (en) Spatial hashing for world-space spatiotemporal reservoir re-use for ray tracing
Ioannidis et al. Multithreaded rendering for cross-platform 3D visualization based on Vulkan Api
Avril et al. Collision detection: Broad phase adaptation from multi-core to multi-GPU architecture
KR20220139880A (ko) 배터리 전력공급형 컴퓨팅 디바이스들을 위한 실시간, 소프트웨어 기반 하이브리드 광선 트레이싱
TW201635243A (zh) 當複合物件在圖形影像中無法產生可見改變時促進圖形處理單元中此等物件之淘汰的技術
Yang et al. Efficient data management for incoherent ray tracing
US20240104844A1 (en) Multi-resolution geometric representation using bounding volume hierarchy for ray tracing
US11966737B2 (en) Robust, efficient multiprocessor-coprocessor interface
Sun et al. Accelerating ray tracing engine of BLENDER on the new Sunway architecture
Xu et al. Parallel Implementation and Optimizations of Visibility Computing of 3D Scene on Tianhe-2 Supercomputer

Legal Events

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

Payment date: 20130729

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180821

Year of fee payment: 9