KR20160011486A - 하이브리드 렌더링 방법 및 장치 - Google Patents

하이브리드 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR20160011486A
KR20160011486A KR1020140092658A KR20140092658A KR20160011486A KR 20160011486 A KR20160011486 A KR 20160011486A KR 1020140092658 A KR1020140092658 A KR 1020140092658A KR 20140092658 A KR20140092658 A KR 20140092658A KR 20160011486 A KR20160011486 A KR 20160011486A
Authority
KR
South Korea
Prior art keywords
tile
tiles
rendering
primitive
primitives
Prior art date
Application number
KR1020140092658A
Other languages
English (en)
Other versions
KR102224845B1 (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 KR1020140092658A priority Critical patent/KR102224845B1/ko
Priority to US14/665,099 priority patent/US9761039B2/en
Publication of KR20160011486A publication Critical patent/KR20160011486A/ko
Application granted granted Critical
Publication of KR102224845B1 publication Critical patent/KR102224845B1/ko

Links

Images

Classifications

    • 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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Abstract

개시된 일 실시 예에 따른 하이브리드 렌더링 방법은2차원 프레임을 가상의 타일(tile)들로 분할하는 단계, 상기 타일들을 반사 또는 투명 속성의 객체를 포함하는 제1타일과 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일로 분류하는 단계, 상기 제1타일들에 포함되는 프리미티브의 기하학적 정보를 GPU(Graphic Processing Unit)내부 메모리에 저장하는 단계 및 상기 기하학적 정보를 이용하여 하나 이상의 상기 제1타일을 레이 트레이싱 방법으로 렌더링하여 제1 이미지를 생성하고, 하나 이상의 상기 제2타일을 래스터화 방법으로 렌더링하여 제2 이미지를 생성하여, 상기 제1 이미지와 상기 제2이미지를 병합하여 최종 이미지를 출력하는 단계를 포함한다.

Description

하이브리드 렌더링 방법 및 장치{Method and apparatus for hybrid rendering}
본 발명은 하이브리드 렌더링 방법 및 장치에 대한 것으로, 보다 구체적으로는 가상의 타일 분할에 기반하여, 래스터화 렌더링 방법과 레이 트레이싱 렌더링 방법을 효과적으로 혼용하는 방법 및 장치에 대한 것이다.
렌더링 방법은 3차원 모델을 화면에 투영(projection)하면서 영상을 생성하는 래스터화(rasterization) 렌더링과 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 레이 트레이싱(ray tracing) 렌더링 등이 있다.
광선 추적 기법이라고도 하는 레이 트레이싱 렌더링은 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 방법으로, 빛의 물리적 성질(반사, 굴절, 투과 등)을 렌더링 결과에 반영하므로 고품질 영상을 생성할 수 있다.
불필요한 GPU 외부의 메모리와의 접근을 제거하는 레이 트레이싱 렌더링과 래스터화 렌더링의 하이브리드 렌더링 방법 및 장치를 제공한다.
일 실시예에 따른 하이브리드 렌더링 방법은 2차원 프레임을 가상의 타일(tile)들로 분할하는 단계, 상기 타일들을 반사 또는 투명 속성의 객체를 포함하는 제1타일과 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일로 분류하는 단계, 상기 제1타일들에 포함되는 프리미티브의 기하학적 정보를 GPU(Graphic Processing Unit) 내부 메모리에 저장하는 단계 및 상기 기하학적 정보를 이용하여 하나 이상의 상기 제1타일을 레이 트레이싱 방법으로 렌더링하여 제1 이미지를 생성하고, 하나 이상의 상기 제2타일을 래스터화 방법으로 렌더링하여 제2 이미지를 생성하여, 상기 제1 이미지와 상기 제2이미지를 병합하여 최종 이미지를 출력하는 단계를 포함한다.
일 실시예에 따른 상기 분류하는 단계는, 상기 타일들에 포함되는 프리미티브들의 속성을 추출하는 단계, 상기 추출된 프리미티브들의 속성을 이용하여, 상기 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제 1타일로 결정하는 단계를 포함한다.
일 실시예에 따른 상기 타일들에 포함되는 프리미티브들의 속성을 추출하는 단계는, 상기 프리미티브들의 속성을 추출하는 단계는, 프리미티브 각각이 상기 타일들 중 어느 타일에 포함되는지 비닝(bining)하는 단계, 상기 분할된 타일과 프리미티브 각각에 대한 맵핑(mapping)정보를 생성하는 단계, 상기 맵핑 정보를 이용하여, 상기 타일들 각각에 포함되는 프리미티브의 리스트를 획득하여, 상기 프리미티브 리스트에 포함되는 프리미티브들의 속성을 추출하는 단계를 포함 한다.
일 실시예에 따른 상기 기하학적 정보는 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 어느 하나를 포함하는 것을 특징으로 한다.
일 실시예에 따른 상기 저장하는 단계는, GPU 외부 메모리에서 상기 프리미티브의 기하학적 정보를 인출(fetch)하는 단계 및 상기 인출한 기하학적 정보를 상기 GPU 내부 메모리에 복사하는 단계를 포함하는 것을 특징으로 한다.
일 실시예에 따른 상기 저장하는 단계는, 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 어느 하나가 포함된 지-버퍼(G-Buffer)에서 상기 프리미티브의 기하학적 정보를 인출(fetch)하는 단계 및 상기 인출한 기하학적 정보를 상기GPU내부 메모리에 복사하는 단계를 포함하는 것을 특징으로 한다.
일 실시예에 따른 상기 기하학적 정보는, 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 적어도 하나를 포함하고, 상기 GPU 외부 메모리는 G-버퍼(G-Buffer)인 것을 특징으로 한다.
일 실시예에 따른 하이브리드 렌더링 장치는 2차원 프레임을 가상의 타일(tile)들로 분할하는 타일 분할부, 상기 타일들을 반사 또는 투명 속성의 객체를 포함하는 제1타일과 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일로 분류하는 타일 분류부, 상기 제1타일들에 포함되는 프리미티브의 기하학적 정보를 GPU(Graphic Processing Unit) 내부 메모리에 저장하는 인출부 및 상기 기하학적 정보를 이용하여 하나 이상의 상기 제1타일을 레이 트레이싱 방법으로 렌더링하여 제1 이미지를 생성하고, 하나 이상의 상기 제2타일을 래스터화 방법으로 렌더링하여 제2 이미지를 생성하고, 상기 제1 이미지와 상기 제2이미지를 병합하여 최종 이미지를 출력하는 렌더링부를 포함한다.
일 실시예에 따른 상기 타일 분류부는 상기 타일들에 포함되는 프리미티브들의 속성을 추출하고, 상기 프리미티브들의 속성을 이용하여, 상기 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제 1타일로 결정하는 결정부를 포함한다.
일 실시예에 따른 상기 타일 분류부는 프리미티브 각각이 상기 분할된 타일들 중 어느 타일에 포함되는지 비닝(bining)하고, 상기 분할된 타일과 상기 프리미티브 각각에 대한 맵핑(mapping)정보를 생성하는 맵핑부 및 상기 맵핑 정보를 이용하여, 상기 타일들 각각에 포함되는 프리미티브의 리스트를 획득하고, 상기 프리미티브 리스트에 포함되는 프리미티브들의 속성을 추출하고, 상기 프리미티브들의 속성을 이용하여, 상기 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제 1타일로 결정하는 결정부를 포함한다.
일 실시예에 따른 상기 기하학적 정보는 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 어느 하나를 포함한다.
일 실시예에 따른 상기 레이 트레이싱 렌더링은 쉐이딩(shading)을 수행하는 장치에서 함께 수행되는 것을 특징으로 한다.
일 실시예에 따른 상기 인출부는, GPU 외부 메모리에서 프리미티브의 기하학적 정보를 인출(fetch)하고, 상기 인출한 기하학적 정보를 GPU내부 메모리에 복사하는 것을 특징으로 한다.
일 실시예에 따른 상기 기하학적 정보는, 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 적어도 하나를 포함하고, 상기 GPU 외부 메모리는 G-버퍼(G-Buffer)인 것을 특징으로 한다.
일 실시예에 따른 하이브리드 렌더링 장치는 래스터라이저(rasterizer)를 더 포함하고, 상기 타일 분류부는 상기 분류 결과를 포함하는 타일 리스트를 생성하고, 상기 래스터라이저는 상기 타일 리스트를 독출하여 상기 타일들에 포함된 프리미티브를 프래그먼트로 변환하고, 상기 인출부는 상기 독출된 타일리스트에 포함된 상기 분류 결과를 이용하는 것을 특징으로 한다.
일 실시예에 따른 상기 하이브리드 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.
GPU 외부 메모리와의 접근을 줄일 수 있는 래스터화 렌더링과 레이 트레이싱 렌더링의 하이브리드 렌더링 방법 및 장치를 제공할 수 있다.
도 1은 레이 트레이싱 렌더링 방법을 설명하기 위한 도면이다.
도 2은 일 실시예에 따른 하이브리드 렌더링 장치의 구성도를 나타낸다.
도3은 일 실시예에 따른 2차원 프레임을 여러 개의 타일로 분할하고, 분할된 타일들을 분류하는 것을 설명한다.
도 4는 일 실시예에 따른 지연 렌더링(deffered rendering) 방법의 구성도를 나타낸다.
도 5은 일 실시예에 따른 하이브리드 렌더링 장치의 블록도를 나타낸다.
도 6은 도 5 에 도시된 하이브리드 렌더링 장치의 또 다른 상세한 예를 나타낸 블록도이다.
도 7은 일 실시예에 따른 하이브리드 렌더링 방법의 순서도를 나타낸다.
도 8은 일 실시예에 따른 하이브리드 렌더링 방법의 순서도를 나타낸다.
3D 렌더링(3-Dimensional Rendering)은 3차원 모델 데이터를 주어진 카메라 시점(view point)에서 보이는 영상으로 합성(synthesis)해주는 영상 처리를 말한다. 렌더링 방법은 3차원 모델을 화면에 투영(projection)하면서 영상을 생성하는 래스터화(rasterization) 방법과 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 레이 트레이싱(ray tracing) 방법 등이 있다.
이하에서는 도면을 참조하여 실시 예들을 상세히 설명한다. 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 레이 트레이싱 렌더링 방법을 설명하기 위한 도면이다. 도 1에서, 제1 객체(31), 제2 객체(32) 및 제3 객체(33)는 2차원 객체와 같이 표현되었지만, 이는 설명의 편의를 위한 것이며, 제1 객체(31), 제2 객체(32) 및 제3 객체(33)는 3차원 상의 모델 데이터이다.
도 1에서는, 제1 객체(31)는 반사 또는 투명한 속성을 가지고 있으며 반사율 및 굴절율이 0보다 큰 객체고, 제2 객체(32) 및 제3 객체(33)는 반사 또는 투명한 속성을 가지지 않으며 반사율 및 굴절율이 0인 객체다. 즉, 제1 객체(31)는 빛을 반사 및 굴절시키며, 제2 객체(32) 및 제3 객체(33)는 빛을 반사시키지도 굴절시키지도 않는다.
도 1과 같은 3차원 모델링에서, 렌더링 장치(예를 들어, 레이 트레이싱 렌더링 장치)는 3차원 영상을 생성하기 위해 시점(10)을 결정하고, 결정된 시점(10)에 따라 화면(15)을 결정할 수 있다. 시점(10)과 화면(15)이 결정되면, 시점(10)으로부터 화면(15)의 각 프래그먼트(fragment)들에 대하여 광선을 생성할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 화면(15)의 해상도가 4*3인 경우, 12개의 픽셀에 대하여 각각 광선을 생성할 수 있다. 이하에서는, 하나의 프래그먼트(즉, 픽셀(픽셀 A))에 대한 광선만을 설명하기로 한다.
도 1을 참조하면, 시점(10)으로부터 픽셀 A에 대하여 1차 광선(primary ray, 40)이 생성된다. 1차 광선(40)은 3차원 공간을 통과하여, 제1 객체(31)에 도달한다. 여기서, 제1 객체(31)는 프리미티브(primitive)라 불리는 일정한 단위 영역들의 집합으로 구성될 수 있다. 예를 들어, 프리미티브(primitive)는 삼각형, 사각형 등의 다각형일 수 있다. 이하에서는, 프리미티브가 삼각형인 것을 예로 들어 설명하기로 한다.
한편, 1차 광선(40)과 제1 객체(31)의 교차점(hit point)을 이용하여 쉐도우 광선(shadow ray, 50), 반사 광선(reflection ray, 60) 및 굴절 광선(refraction ray, 70)을 생성할 수 있다. 이때, 쉐도우 광선(50), 반사 광선(60) 및 굴절 광선(70)을 2차 광선이라고 한다. 쉐도우 광선(50)은 교차점으로부터 광원(80)의 방향으로 생성된다. 반사 광선(60)은 1차 광선(40)의 입사각에 대응되는 방향으로 생성되고, 제1 객체(31)의 반사율에 따른 가중치를 적용받는다. 굴절 광선(70)은 1차 광선(40)의 입사각 및 제1 객체(31)의 굴절율에 대응되는 방향으로 생성되고, 제1 객체(31)의 굴절율에 따른 가중치를 적용받는다.
레이 트레이싱 렌더링 장치는 쉐도우 광선(50)을 통해 교차점이 광원(80)에 노출되어 있는지를 판단한다. 예를 들어, 도 1에 도시된 바와 같이, 쉐도우 광선(50)이 제2 객체(32)와 만나면, 해당 쉐도우 광선(50)이 생성된 교차점에 그림자가 생성될 수 있다. 또한, 레이 트레이싱 렌더링 장치는 굴절 광선(70) 및 반사 광선(60)이 다른 객체에 도달하는지를 판단한다. 예를 들어, 도 1에 도시된 바와 같이, 굴절 광선(70)의 진행방향에는 어떠한 객체도 존재하지 않으며, 반사 광선(60)은 제3 객체(33)에 도달한다. 이에 따라, 레이 트레이싱 렌더링 장치는 제3 객체(33)의 교차점의 좌표 및 색상 정보를 확인하고, 다시 제3 객체(33)의 교차점으로부터 쉐도우 광선(90)을 생성한다. 이때, 레이 트레이싱 렌더링 장치는 쉐도우 광선(90)이 광원(80)에 노출되어 있는지 판단한다. 한편, 제3 객체(33)의 반사율 및 굴절율은 0이므로, 제3 객체(33)에 대한 반사 광선 및 굴절 광선은 생성되지 않는다.
상술한 바와 같이, 레이 트레이싱 렌더링 장치는 픽셀 A에 대한 1차 광선(40) 및 1차 광선(40)으로부터 파생되는 모든 광선들을 분석하고, 분석 결과에 따라 픽셀 A의 색상 값을 결정한다. 픽셀 A의 색상 값의 결정은 1차 광선(40)의 교차점의 색상, 반사 광선(60)의 교차점의 색상, 쉐도우 광선(50)이 광원(80)에 도달하는지 여부에 영향을 받는다. 레이 트레이싱 렌더링 장치는, 상술한 과정을 화면(15)의 모든 픽셀들에 대하여 수행하여, 화면(15)을 구성할 수 있다.
상술한 바와 같이, 시점과 방향으로 표현되는 광선(Ray) 데이터의 경로를 추적하여 렌더링하는 방법을 레이 트레이싱 렌더링이라 하고, 3차원 모델을 화면에 투영(projection)하면서 영상을 생성하는 렌더링 방법을 래스터화(rasterization) 렌더링이라 한다.
도 2는 일 실시 예에 따른 하이브리드 렌더링 장치의 구성도를 나타낸다. 하이브리드 렌더링 장치(200)는 타일 분할부(210), 타일 분류부(215), 인출부(245), 렌더링부(230)를 포함한다.
타일 분할부(210)는 2차원 프레임을 복수의 가상의 타일들로 분할할 수 있다. 타일이란, 2차원 프레임을 가상으로 분할한 각각의 영역들이다. 타일 분할부(210)는 2차원 프레임(310)을 가상의 타일들로 분할하여 분할된 타일들을 타일 분류부(215)로 출력한다. 2차원 프레임은 디스플레이 영역이나 2차원 이미지가 될 수 있으나 이에 제한되지 않는다.
타일 분류부(215)는 맵핑부(220)와 결정부(225)를 포함한다. 맵핑부(220)는 객체에 포함된 각각의 프리미티브들이 타일 분할부(210)에서 분할된 타일들 중 어느 타일에 포함되는지 비닝(binning)하여, 타일과 프리미티브에 대한 맵핑(mapping) 정보를 생성할 수 있다.
결정부(225)는 타일 분할부(210)에서 분할된 각각의 타일들이 반사 또는 투명 속성의 객체를 포함하는 제1타일에 해당되는지, 또는 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일에 해당되는지를 결정할 수 있다.
결정부(225)는 타일들에 포함되는 프리미티브들의 속성을 추출하여, 반사율 또는 굴절율 중 어느 하나가 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제1타일로 분류할 수 있다. 분할된 타일들 중 제1타일로 분류되지 않은 타일은 제2타일로 분류된다. 프리미티브의 속성은 반사율과 굴절율과 같은 물질적(material) 특성을 포함하나 이에 제한되지 않는다.
결정부(225)는 타일에 포함되는 프리미티브 리스트의 속성을 추출하기 위해, 맵핑부(220)에서 생성된 타일과 프리미티브에 대한 맵핑 정보를 이용하여 각각의 타일에 포함되는 프리미티브들의 리스트를 획득할 수 있다. 일 실시예에 따르면 제1타일과 제2타일은 불린(Boolean) 값과 같은 플래그(flag)로 표시되어 분류되거나, 타일의 식별 정보에 "타일의 종류"와 같은 필드(field)를 생성하여 문자열의 형태로 분류될 수 있다.
일 실시예에 따르면, 타일 분류부(215)는 하나 이상의 제1타일로 구성된 제1타일 그룹과 하나 이상의 제2타일로 구성된 제2타일 그룹을 생성하여 분할된 타일들을 관리할 수 있으며, 제1타일과 제2타일은 각각 제1타일 그룹과 제2타일 그룹에 포함된 타일을 지칭할 수 있다. 렌더링부(230)가 레이 트레이싱 방법으로 렌더링을 시작하기 전에, 인출부(245)는 레이 트레이싱 렌더링에 필요한 제1타일에 포함되는 프리미티브들에 대한 기하학적 정보를 GPU 내부 메모리(250)에 저장할 수 있다.
레이 트레이싱 렌더링에 필요한 기하학적 정보는 GPU 외부의 메모리에 저장되어 있을 수 있으며, 인출부(245)는 GPU 외부의 메모리에 저장되어 있는 기하학적 정보를 인출하여 GPU 내부 메모리(250)에 복사할 수 있다. 렌더링부(230)에서 렌더링을 시작하기 전에 미리 기하학적 정보를 GPU 내부 메모리(250)에 저장하므로, GPU 외부 메모리와 접근하는 횟수를 감소시켜, 소모되는 전력을 감소시키고 메모리 대역폭 문제를 제거할 수 있다.
GPU 내부 메모리(250)는 SRAM 또는 캐시(Cache) 메모리를 포함하며, 온-칩 버퍼(On-Chip buffer)와 같은 형태도 포함할 수 있으며, 기하학적 정보는 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보일 수 있다.
래스터화 렌더링부(235)는 제2타일을 래스터화(rasterization)방법으로 렌더링하여 제2이미지를 생성하며, 레이 트레이싱 렌더링부(240)은 GPU 내부 메모리(250)에 저장되어 있는 기하학적 정보를 이용하여, 제1타일들을 레이 트레이싱 방법으로 렌더링하여 제1이미지를 생성할 수 있다. 렌더링부(230)는 제1 이미지와 제2 이미지를 병합하여 최종적인 이미지를 생성한다.
도 3는 일 실시 예에 따른 2차원 프레임을 복수의 타일들로 분할하고, 분할된 타일들을 분류하는 것을 설명하기 위한 도면이다. 2차원 프레임(310)은 디스플레이 영역이나 2차원 이미지가 될 수 있으나 이에 제한되지 않는다.
타일 분할부(210)는 2차원 프레임(310)을 가상의 타일들로 분할한다.
결정부(225)는 타일 분할부(210)에서 분할된 타일들을, 반사 또는 투명 속성의 객체를 포함하는 제1타일(330)과 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일(350)로 분류할 수 있다. 실선으로 도시된 부분은 분할된 타일들 중 반사 또는 투명 속성의 객체를 포함하는 제1타일(330)들을 나타내며, 점선으로 도시된 부분은 분할된 타일들 중 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일(350)들을 나타낸다.
결정부(225)는 분할된 각각의 타일들에 포함되는 프리미티브들의 속성을 추출하고, 추출된 프리미티브의 속성을 이용하여, 분할된 각각의 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하는 타일들을 제1타일로 결정할 수 있다. 제1타일로 결정되지 않은 타일들은 제2타일로 결정된다. 추출되는 프리미티브의 속성은 반사율과 굴절율과 같은 물질적(material) 특성을 포함하나 이에 제한되지 않는다.
결정부(225)는 타일에 포함되어 있는 프리미티브의 속성을 추출하기 위해서, 맵핑부(220)에서 생성된 타일과 프리미티브에 대한 맵핑(mapping)정보를 이용하여 각각의 타일에 포함되어 있는 프리미티브들의 리스트를 획득할 수 있다.
일 실시예에 따르면 제1타일과 제2타일은 불린(Boolean) 값과 같은 플래그(flag)로 표시되어 분류되거나, 타일의 식별 정보 내부에 "타일의 종류"와 같은 필드(field)을 생성하여 문자열의 형태로 분류될 수 있다. 예를 들어, 타일 T(i,j) (330)의 식별 정보는 타일(330)을 식별할 수 있는 고유의 ID, 제1타일에 해당 여부, 타일(330)이 포함하고 있는 프리미티브 (T0 ~ T8 ) 리스트를 포함할 수 있다.
복수의 타일들로 분할된 2차원 프레임(310)은, 하나의 프리미티브(T1)가 복수의 타일(T(i,j), T(i, j+1), i와 j는 양수)에 포함 되어있거나, 또는 하나의 타일(T(i,j)) 에 복수의 프리미티브들이 포함될 수 있다.
일 실시예에 따르면, 타일 T(i,j) (330) 의 경우, 타일 T(i, j) (330) 에 포함되어 있는 프리미티브 T0 ~ T8 중, T3 이 거울(mirror) 또는 물(water)과 같은 반사 또는 투명 속성을 가질 수 있다. 거울 또는 물은 반사율 또는 굴절율이 0 보다 큰 값을 가지므로, 프리미티브 T3 은 반사 또는 투명 속성을 가지는 프리미티브로 결정되고, 프리미티브 T3 을 포함하고 있는 타일 T(i, j) 전체가 반사 또는 투명 속성의 객체를 포함하는 제1타일로 결정될 수 있다.
도 4는 일 실시 예에 따른 지연 렌더링(deffered rendering) 장치의 구성도를 나타낸다. 당업자는 다중 패스로 렌더링하는 지연 렌더링 장치에 대해 알 수 있을 것이다.
지연 렌더링은 화면에 실제로 렌더링되는 프래그먼트에 대해서만 쉐이딩 계산을 수행함으로서, 중복된 계산으로 인한 비효율성을 피하기 위한 렌더링 방법이다. 지연 렌더링은 전력 및 시스템 대역폭이 중요한 모바일 디바이스에서 사용될 수 있다.
제1패스(450)는 렌더링이 수행되기 전에, 렌더링하고자 하는 여러 객체들의 기하학적 정보를 저장하는 단계이며, 제2패스(470)는 제1패스에서 생성된 기하학적 정보를 이용하여 렌더링을 수행하는 단계이다.
구체적으로는, 제1패스(450)에서는 실제로 프래그먼트의 색상을 결정하는 렌더링은 수행되지 않고, 객체를 구성하는 프리미티브의 깊이 정보(depth), 노말 벡터(normal vector), 위치(position) 등 렌더링에 필요한 기하학적 정보를 별도의 버퍼(440)에 저장한다. 일 실시예에 따르면 별도의 버퍼(440)는 당업자들에게 널리 알려진 GPU 외부의 메모리 상의 G-버퍼(G-Buffer)가 될 수 있다.
제2패스(470)에서는 제1패스(450)에서 생성한 기하학적 정보를 이용하여 렌더링을 수행하는데, 화면에 실제로 렌더링되는 프래그먼트에 대해서만 쉐이딩을 수행하여 프래그먼트의 색상을 결정한다. 즉, 제1패스(450)에서 생성된 기하학적 정보를 이용하여 1차 광선과 객체와의 교차점을 계산할 수 있고 계산된 교차점을 통해 반사 광선(60), 굴절 광선(70), 쉐도우 광선(90)의 2차 광선을 생성할 수 있다.
따라서 종래의 래스터화 렌더링 기반의 GPU(Graphic Processing Unit) 와 레이 트레이싱 렌더링을 혼용시키기 위해서, 버퍼(440) 내에 저장되어 있는 기하학적 정보를 사용하는 방법이 고려될 수 있다.
도 5는 일 실시 예에 따른 하이브리드 렌더링 장치의 구성도를 나타낸다.
도 5는 도 2에 도시된 하이브리드 렌더링 장치의 상세한 예를 도시한 블록도이다. 따라서, 이하 생략된 내용이라 하더라도 도 2의 렌더링 장치에 관하여 이상에서 기술된 내용은 도 5의 실시 예에 따른 렌더링 장치에도 적용된다.
도 5에 도시된 하이브리드 렌더링 장치는, 레이 트레이싱 렌더링에 필요한 기하학적 정보를 참조하기 위해 외부 메모리에 접근하는 횟수를 감소시켜, 소모되는 전력을 감소시키고 메모리 대역폭 문제를 제거하기 위한 장치이다.
기하처리부(515)는 객체(510)에 대한 프리미티브 리스트를 생성하여 타일 분류부(215) 에 출력한다. 타일 분할부(210)는 2차원 프레임(310)을 가상의 타일들로 분할하여 분할된 타일들을 타일 분류부(215)에 출력한다. 2차원 프레임은 디스플레이 영역이나 2차원 이미지가 될 수 있으나 이에 제한되지 않는다.
타일 분류부(215)는 맵핑부(220)와 결정부(225)를 포함한다.
맵핑부(220)는 객체에 포함된 각각의 프리미티브들이 타일 분할부(210)에서 분할된 타일들 중 어느 타일에 포함되는지 비닝(binning)하여, 타일과 프리미티브에 대한 맵핑(mapping) 정보를 생성할 수 있다.
결정부(225)는 타일 분할부(210)에서 분할된 각각의 타일들이 반사 또는 투명 속성의 객체를 포함하고 있는 제1타일에 해당되는지, 또는 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일에 해당되는지를 결정할 수 있다.
결정부 (225)는 타일들에 포함되는 프리미티브들의 속성을 추출할 수 있다. 프리미티브의 속성은 반사율과 굴절율과 같은 물질적(material) 특성을 포함하나 이에 제한되지 않는다. 타일 분류부(215)는 추출된 프리미티브들의 속성을 이용하여, 반사율 또는 굴절율 중 어느 하나가 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제1타일로 분류할 수 있다. 분할된 타일 중 제1타일로 분류되지 않은 타일은 제2타일로 분류될 수 있다.
결정부 (225)는 타일에 포함되는 프리미티브 리스트의 속성을 추출하기 위해서, 맵핑부(220)에서 생성된 타일과 프리미티브에 대한 맵핑 정보를 이용하여 타일에 포함되는 프리미티브들의 리스트를 획득할 수 있다.
일 실시예에 따르면 제1타일과 제2타일은 불린(Boolean) 값과 같은 플래그(flag)로 표시되어 분류되거나, 타일의 식별 정보 내부에 "타일의 종류"와 같은 필드(field)을 생성하여 문자열의 형태로 분류될 수 있다.
일 실시예에 따르면, 타일 분류부(215)는 하나 이상의 제1타일로 구성된 제1타일 그룹과 하나 이상의 제2타일로 구성된 제2타일 그룹을 생성하여 분할된 타일들을 관리할 수 있으며, 제1타일과 제2타일은 각각 제1타일 그룹과 제2타일 그룹에 포함된 타일을 지칭할 수 있다.타일 분류부(215) 는 맵핑 정보와 분류 정보가 포함된 타일 리스트(535)를 생성할 수 있다. 예를 들어, 타일 리스트(535)는 각 타일들에 대한 식별 정보를 포함할 수 있으며, 식별 정보는 타일(330)을 식별할 수 있는 고유의 ID, 제1타일에 해당 여부, 타일(330)이 포함하고 있는 프리미티브 리스트를 포함할 수 있다. 또한, 타일 리스트는 각 프리미티브의 정점(vertex)의 좌표 정보 또는 각 프리미티브의 속성 정보를 포함할 수도 있다.
래스터라이저(rasterizer, 540)는 타일 리스트(535)를 독출하면서, 타일리스트(535)에 포함되어 있는 분류 정보를 이용하여 독출되는 각각의 타일들이 제1타일에 해당하는지 여부를 결정할 수 있다. 일 실시예에 따르면, 래스터라이저(540)은 GPU 외부의 메모리에 저장된 타일 리스트(535)를 독출하면서, 분류 정보의 플래그를 참조하여, 인출부(245)에 제1타일에 해당되는 타일들의 식별 정보를 전송할 수 있다.
렌더링부(230)가 레이 트레이싱 방법으로 렌더링을 시작하기 전에, 인출부(245)는 레이 트레이싱 렌더링에 필요한 제1타일에 포함되는 프리미티브들에 대한 기하학적 정보를 GPU 내부 메모리(250)로 저장할 수 있다.
레이 트레이싱 렌더링에 필요한 기하학적 정보는 GPU 외부의 메모리에 저장되어 있을 수 있으며, 인출부(245)는 GPU 외부의 메모리에 저장되어 있는 기하학적 정보를 인출하여 GPU 내부 메모리(250)에 복사할 수 있다. GPU 내부 메모리(250)는 SRAM 또는 캐시(Cache) 메모리를 포함하며, 온-칩 버퍼(On-Chip buffer)와 같은 형태도 포함할 수 있으며, 기하학적 정보는 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 어느 하나를 포함할 수 있다.
일 실시예에 따르면, 본 발명은 지연 렌더링(deferred rendering) 방법을 이용한 렌더링에서 수행될 수 있다. 상술한 바와 같이, 지연 렌더링은 화면에 실제로 렌더링되는 프래그먼트에 대해서만 쉐이딩을 수행하기 위해, 3차원 상의 객체의 기하학적 정보를 저장하는 제1단계와 제1단계에서 저장된 기하학적 정보를 이용하여 렌더링하는 제2단계를 포함한다. 따라서, 인출부(245)는 레이 트레이싱 렌더링이 시작되기 전에, 제1타일에 포함되는 프리미티브들에 대한 기하학적 정보를 제1단계(450)에서 저장된 기하학적 정보를 별도의 버퍼(440)로부터 인출하여, 인출된 기하학적 정보를 GPU 내부 메모리(250)로 복사할 수 있다.
일 실시예에 따르면, 래스터라이저(540)가 타일 리스트(535)를 독출하여 프리미티브를 프래그먼트(fragment)로 변환하는 동안, 인출부(245)는 기하학적 정보를 GPU 내부 메모리(250)에 저장할 수 있다. 그러나 래스터라이저(540)의 프래그먼트 변환과 인출부(245)의 저장이 반드시 동시에 이루어져야 하는 것은 아니며, 렌더링하고자 하는 프래그먼트에 대한 2차 광선을 생성하기 전에만 기하학적 정보가 GPU 내부 메모리(250)로 저장되면 무방하다.
래스터라이저(540)는 제1타일에 포함된 프래그먼트와 제2타일에 포함된 프래그먼트를 각각 래스터화 렌더링부(235)와 레이 트레이싱 렌더링부(240)로 출력할 수 있다.
래스터화 렌더링부(235)는 제2타일을 래스터화(rasterization) 방법으로 렌더링하여 제2이미지를 생성하며, 레이 트레이싱 렌더링부(240)은 GPU 내부 메모리(250)에 저장되어 있는 기하학적 정보를 이용하여, 제1타일들을 레이 트레이싱 방법으로 렌더링하여 제1이미지를 생성할 수 있다.
렌더링부(230)은 제1 이미지와 제2 이미지를 병합하여 최종적인 이미지를 생성한다. 렌더링부(230)은 병합된 최종적인 결과 이미지를 프레임 버퍼(575)로 출력한다. 프레임 버퍼(575)는 타일의 이미지를 포인터(pointer)의 형태로 저장할 수 있다.
일 실시예에 따르면, 본 발명은, 레이 트레이싱 렌더링이 별도의 장치에서 수행되는 경우만을 한정하지 않으며, 쉐이딩 장치(shader) 에서 쉐이딩과 레이 트레이싱 렌더링이 함께 수행되는 경우도 포함할 수 있다.
도 6은 도 5 에 도시된 하이브리드 렌더링 장치의 또 다른 상세한 예를 도시한 블록도이다. 따라서, 이하 생략된 내용이라 하더라도 하이브리드 렌더링 장치에 관하여 이상에서 기술된 내용은 도 6의 실시 예에 따른 하이브리드 렌더링 장치에도 적용된다.
프리미티브 리스트(610)는 타일 분류부(615)에 입력되고, 각각의 타일들에 속해있는 프리미티브의 속성을 추출하여 반사 또는 투명 속성의 프리미티브를 적어도 하나 포함하고 있는 타일을 제1타일들로 분류하여 타일 데이터(620)를 생성할 수 있다. 또한 타일 데이터(620)는 각각의 프리미티브들이 어떠한 타일들에 속해 있는지 여부를 나타내는 맵핑(mapping)정보가 포함할 수 있다.
타일 인출부(625)는 타일 데이터(620)로부터 타일들을 인출하여 래스터라이저(630)로 출력한다.
타일들을 입력받은 래스터라이저(630)는 타일들에 속한 프리미티브들을 프래그먼트(680)로 변환한다. 이와 동시에 래스터라이저는 선인출부(635)에 선인출 명령을 내릴 수 있으며, 선인출 명령을 받은 선인출부(635)는 레이 트레이싱 연산이 시작되기 전에, 외부 메모리에서 제1타일들의 메모리 블록을 복사하여 선인출 타일버퍼(640)로 저장할 수 있다. 복사되는 메모리 블록에는 레이 트레이싱 렌더링에 필요한 데이터인, 제1타일에 포함되는 프리미티브들의 기하학적 정보가 포함되어 있다. 기하학적 정보는 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 어느 하나를 포함할 수 있다.
프래그먼트 쉐이더(fragment shader)(645)는 종래의 래스터화 기반의 GPU 를 구성하는 장치로 상술한 바와 같이 3차원 모델을 화면에 투영(projection)하면서 영상을 생성을 하는 장치이다.
당업자는 기존의 래스터화 렌더링 방법과 레이 트레이싱 방법의 렌더링을 혼용시키기 위해 프래그먼트 쉐이더(645)를 복사하여 그와 동일한 레이 쉐이더(ray shader)(650)를 생성할 수 있음을 알 수 있을 것이다. 도 6에서는 레이 쉐이더(650)를 프래그먼트 쉐이더(645)와 분리하여 도시하였으나, 양자가 반드시 물리적으로 분리되어 있음을 나타내는 것을 나타내는 것은 아니며 양자는 동일할 수도 있으며 여러 가지 모듈을 공유할 수 있다.
레이 제너레이터(ray generator)(655)는 상기 레이 쉐이더를 사용하여 광선의 시점(origin) 및 방향(direction) 정보를 획득한 후 상응하는 1차 광선을 생성시킬 수 있다. 1차 광선이 생성되면 선인출 타일 버퍼(640)내의 기하학적 정보를 이용하여 교차점을 계산할 수 있으며, 계산된 교차점을 이용하여 2차 광선을 생성할 수 있다.
교차점 탐색부(665)가 교차점을 계산할 때에는 KD-tree(K-dimensional tree), BVH(Bounding Volume Hirearchy) 와 같은 3차원 공간상의 오브젝트들의 관계를 나타내는 계층적 트리구조(670)를 이용하여 트리 탐색 루틴으로 계산할 수 있다.
래스터화 렌더링된 타일과 레이 트레이싱 처리된 타일들은 ROP부(660)에서 프리미티브들의 깊이(depth) 테스트를 거쳐 가시성(선후)관계에 대한 판단을 하게 되며, 최종적인 렌더링 이미지를 생성하여 프레임 버퍼(675)로 출력된다.
도 7은 일 실시예에 따른 하이브리드 렌더링 방법의 순서도를 나타낸다.
도 7은 도 2 에 도시된 하이브리드 렌더링 장치의 또 다른 예를 도시한 도면이다. 따라서, 이하 생략된 내용이라 하더라도 도2의 하이브리드 렌더링 장치에 관하여 이상에서 기술된 내용은 도 7의 실시 예에 따른 하이브리드 렌더링 방법에도 적용된다.
710 단계에서, 하이브리드 렌더링 장치(200)는2차원 프레임(310)을 가상의 타일들로 분할한다. 2차원 프레임은 디스플레이 영역이나 2차원 이미지가 될 수 있으나 이에 제한되지 않는다. 분할된 타일들은 715단계와 720단계로 출력된다.
715단계에서, 하이브리드 렌더링 장치(200)는 객체에 포함된 각각의 프리미티브들이 710단계에서 분할된 타일들 중 어느 타일에 포함되는지 비닝(binning)하여, 타일과 프리미티브에 대한 맵핑(mapping) 정보를 생성할 수 있다.
720단계에서, 하이브리드 렌더링 장치(200)는 710단계에서 분할된 각각의 타일들이 반사 또는 투명 속성의 객체를 포함하고 있는 제1타일에 해당되는지, 또는 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일에 해당되는지를 715단계에서 생성된 타일과 프리미티브에 대한 맵핑 정보를 이용하여 분류할 수 있다.
720 단계에서, 하이브리드 렌더링 장치(200)는 타일들에 포함되는 프리미티브들의 속성을 추출하고, 프리미티브들의 속성을 이용하여, 반사율 또는 굴절율 중 어느 하나가 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제1타일로 분류할 수 있다. 프리미티브의 속성은 반사율과 굴절율과 같은 물질적(material) 특성을 포함하나 이에 제한되지 않는다.
하이브리드 렌더링 장치(200)는 타일에 포함되는 프리미티브 리스트의 속성을 추출하기 위해서, 715단계에서 생성된 타일과 프리미티브에 대한 맵핑 정보를 이용하여 타일에 포함되는 프리미티브들의 리스트를 획득할 수 있다. 일 실시예에 따르면 제1타일과 제2타일은 불린(Boolean) 값과 같은 플래그(flag)로 표시되어 분류되거나, 타일의 식별 정보에 "타일의 종류"와 같은 필드(field)을 생성하여 문자열의 형태로 분류될 수 있다. 일 실시예에 따르면, 하이브리드 렌더링 장치(200)는 하나 이상의 제1타일로 구성된 제1타일 그룹과 하나 이상의 제2타일로 구성된 제2타일 그룹을 생성하여 분할된 타일들을 관리할 수 있으며, 제1타일과 제2타일은 각각 제1타일 그룹과 제2타일 그룹에 포함된 타일을 지칭할 수 있다.
730단계에서, 하이브리드 렌더링 장치(200)는 720단계에서 제1타일로 분류된 타일들의 식별 정보를 735단계로 출력하고, 제2타일로 분류된 타일들의 식별 정보를 740 단계로 출력할 수 있다.
735 단계에서는, 하이브리드 렌더링 장치(200)가 레이 트레이싱 방법으로 렌더링을 시작(745 단계)하기 전에, 레이 트레이싱 렌더링에 필요한 제1타일에 포함되는 프리미티브들에 대한 기하학적 정보를 GPU 내부 메모리(250)로 저장할 수 있다.
레이 트레이싱 렌더링에 필요한 기하학적 정보는 GPU 외부의 메모리에 저장되어 있을 수 있으며, 하이브리드 렌더링 장치(200)는 GPU 외부의 메모리에 저장되어 있는 기하학적 정보를 인출하여 GPU 내부 메모리(250)에 복사할 수 있다. GPU 내부의 메모리(250)는 SRAM 또는 캐시(Cache) 메모리를 포함하며, 온-칩 버퍼(On-Chip buffer)와 같은 형태도 포함할 수 있으며, 기하학적 정보는 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 어느 하나를 포함할 수 있다.
735단계에서 하이브리드 렌더링 장치(200)는 제1타일들을 745단계로 출력할 수 있다.
725단계에서, 하이브리드 렌더링 장치(200)는 타일들을 분류에 따라 래스터화 렌더링 및 레이 트레이싱 렌더링할 수 있다.
740단계에서, 하이브리드 렌더링 장치(200)는 제2타일을 래스터화(rasterization) 방법으로 렌더링하여 제2이미지를 생성할 수 있다. 생성된 제2이미지는 750단계로 출력된다.
745단계에서, 레이 트레이싱 렌더링부(240)는 GPU 내부 메모리(250)에 복사되어 있는 기하학적 정보를 이용하여, 제1타일들을 레이 트레이싱 방법으로 렌더링하여 제1이미지를 생성할 수 있다. 생성된 제1이미지는 750단계로 출력된다.
750단계에서, 하이브리드 렌더링 장치(200)는 745단계에서 생성된 제2이미지와 740단계에서 생성된 제1이미지를 병합하여 최종적인 이미지를 생성할 수 있다.
도 8은 일 실시예에 따른 레이트레이싱과 래스터화의 하이브리드 렌더링 방법의 순서도를 나타낸다. 도 8은 도 7 에 도시된 하이브리드 렌더링 장치의 상세한 예를 도시한 도면이다. 도 8의 810단계, 815단계, 820단계, 825단계, 830단계, 835단계, 840단계, 845단계 및 850단계는 각각 도 7의 710단계, 715단계, 720단계, 730단계, 735단계, 740단계, 745단계 및 750단계와 실질적으로 동일하므로, 이에 대해서는 동일한 설명을 생략하고, 도 7의 설명으로 대체하기로 한다.
805 단계에서, 하이브리드 렌더링 장치(200)는 객체로부터 프리미티브 리스트를 생성한다.
865단계에서, 하이브리드 렌더링 장치(200)는 815단계에서 생성된 맵핑 정보와 820단계에서 생성된 분류 정보가 포함된 타일 리스트(535)를 생성할 수 있다. 예를 들어, 타일 리스트(535)는 각 타일들에 대한 식별 정보를 포함할 수 있으며, 식별 정보는 타일을 식별할 수 있는 고유의 ID, 제1타일에 해당 여부, 타일이 포함하고 있는 프리미티브 리스트를 포함할 수 있다. 또한, 타일 리스트는 각 프리미티브의 정점(vertex)의 좌표 정보 또는 각 프리미티브의 속성 정보를 포함할 수도 있다.
827단계에서, 하이브리드 렌더링 장치(200)는 865단계에서 생성된 타일 리스트(535)를 독출하여 타일에 포함되어 있는 프리미티브들을 프래그먼트(fragment)로 변환할 수 있다.
835 단계에서는, 하이브리드 렌더링 장치(200)가 레이 트레이싱 방법으로 렌더링을 시작(845 단계)하기 전에, 레이 트레이싱 렌더링에 필요한 제1타일에 포함되는 프리미티브들에 대한 기하학적 정보를 GPU 내부 메모리(250)로 저장할 수 있다. 도 8 에서는 835 단계가 827 단계 전에 수행되는 것으로 도시되었으나, 제 1 타일에 포함된 프리미티브의 기하학적 정보는 레이 트레이싱 렌더링이 시작(845 단계)되기 전에만 GPU 내부에 저장되면 무방하다는 것은 상술하였다.
일 실시예에 따르면, 본 발명은 지연 렌더링(deferred rendering) 방법을 이용한 렌더링에서 수행될 수 있다. 상술한 바와 같이, 지연 렌더링 방법은 화면에 실제로 렌더링되는 프래그먼트에 대해서만 쉐이딩을 수행하는 것으로, 3차원 상의 객체의 기하학적 정보를 저장하는 제1단계와 제1단계에서 저장된 기하학적 정보를 이용하여 렌더링하는 제2단계를 포함한다. 따라서, 835단계에서, 하이브리드 렌더링 장치(200)는 레이 트레이싱 렌더링이 시작되기 전에, 제1타일에 포함되는 프리미티브들에 대한 기하학적 정보를 제1단계에서 생성된 기하학적 정보를 별도의 버퍼(440)로부터 인출하여, 인출된 기하학적 정보를 GPU의 내부 메모리(250)로 복사할 수 있다.
일 실시예에 따르면, 827 단계와 835 단계는 동시에 이루어질 수 있다. 그러나 반드시 동시에 이루어져야 하는 것은 아니며, 렌더링하고자 하는 프래그먼트에 대한 2차 광선을 생성하기 전에만 기하학적 정보가 내부 메모리(565)로 복사되면 무방하다.
하이브리드 렌더링 장치(200)는 840 단계와 845단계에서 생성된 제1이미지와 제2 이미지를 850 단계로 출력한다. 850 단계에서, 하이브리드 렌더링 장치(200)는 병합된 최종이미지를 860 단계로 출력한다. 860단계에서, 프레임 버퍼(575)는 타일의 이미지가 저장된 주소를 나타내는 포인터를 저장할 수 있다.
한편, 하이브리드 렌더링 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM. CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명에 의한 방법, 프로세스, 장치, 제품 및/또는 시스템은 간단하고, 비용적으로 효과적이며, 복잡하지 않으면서 매우 다양하고 정확하다. 또한 본 발명에 의한, 프로세스, 장치, 제품 및 시스템에 알려진 구성 요소를 적용함으로써 즉시 이용할 수 있으면서 효율적이고 경제적인 제조, 응용 및 활용을 구현할 수 있다. 본 발명의 또 다른 중요한 측면은 비용 절감, 시스템 단순화, 성능 증가를 요구하는 현 추세에 부합한다는 것이다. 이러한 본 발명의 실시 예에서 볼 수 있는 유용한 양상은 결과적으로 적어도 현 기술의 수준을 높일 수 있을 것이다.
본 발명은 특정한 최상의 실시 예와 관련하여 설명되었지만, 이외에 본 발명에 대체, 변형 및 수정이 적용된 발명들은 전술한 설명에 비추어 당업자에게 명백할 것이다. 즉, 청구범위는 이러한 모든 대체, 변형 및 수정된 발명을 포함하도록 해석한다. 그러므로 이 명세서 및 도면에서 설명한 모든 내용은 예시적이고 비제한적인 의미로 해석해야 한다.

Claims (16)

  1. 2차원 프레임을 가상의 타일(tile)들로 분할하는 단계;
    상기 타일들을 반사 또는 투명 속성의 객체를 포함하는 제1타일과 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일로 분류하는 단계;
    상기 제1타일에 포함되는 프리미티브의 기하학적 정보를 GPU(Graphic Processing Unit)내부 메모리에 저장하는 단계; 및
    상기 기하학적 정보를 이용하여 하나 이상의 상기 제1타일을 레이 트레이싱 방법으로 렌더링하여 제1 이미지를 생성하고, 하나 이상의 상기 제2타일을 래스터화 방법으로 렌더링하여 제2 이미지를 생성하여, 상기 제1 이미지와 상기 제2이미지를 병합하여 최종 이미지를 출력하는 단계를 포함하는 하이브리드 렌더링 방법.
  2. 제1항에 있어서, 상기 분류하는 단계는,
    상기 타일들에 포함되는 프리미티브들의 속성을 추출하는 단계;
    상기 추출된 프리미티브들의 속성을 이용하여, 상기 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제1타일로 결정하는 단계를 포함하는 하이브리드 렌더링 방법.
  3. 제2항에 있어서, 상기 프리미티브들의 속성을 추출하는 단계는,
    프리미티브 각각이 상기 타일들 중 어느 타일에 포함되는지 비닝 (bining)하는 단계;
    상기 분할된 타일과 프리미티브 각각에 대한 맵핑(mapping)정보를 생성하는 단계;
    상기 맵핑 정보를 이용하여, 상기 타일들 각각에 포함되는 프리미티브의 리스트를 획득하여, 상기 프리미티브 리스트에 포함되는 프리미티브들의 속성을 추출하는 단계를 포함하는 하이브리드 렌더링 방법.
  4. 제1항에 있어서,
    상기 기하학적 정보는 상기 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 하이브리드 렌더링 방법.
  5. 제1항에 있어서, 상기 저장하는 단계는,
    GPU 외부 메모리에서 상기 프리미티브의 기하학적 정보를 인출(fetch)하는 단계; 및
    상기 인출한 기하학적 정보를 상기 GPU 내부 메모리에 복사하는 단계를 포함하는 것을 특징으로 하는 하이브리드 렌더링 방법.
  6. 제5항에 있어서, 상기 기하학적 정보는,
    상기 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 적어도 하나를 포함하고,
    상기 GPU 외부 메모리는 G-버퍼(G-Buffer)인 것을 특징으로 하는 하이브리드 렌더링 방법.
  7. 제1항에 있어서,
    상기 분류 결과를 포함하는 타일 리스트를 생성하는 단계; 및
    상기 타일 리스트를 독출하여, 상기 타일들에 포함된 프리미티브를 프래그먼트로 변환하는 단계를 더 포함하고,
    상기 저장하는 단계는 상기 독출된 타일 리스트에 포함된 상기 분류 결과를 이용하는 것을 특징으로 하는 하이브리드 렌더링 방법.
  8. 2차원 프레임을 가상의 타일(tile)들로 분할하는 타일 분할부;
    상기 타일들을 반사 또는 투명 속성의 객체를 포함하는 제1타일과 반사 또는 투명 속성의 객체를 포함하지 않는 제2타일로 분류하는 타일 분류부;
    상기 제1타일에 포함되는 프리미티브의 기하학적 정보를 GPU(Graphic Processing Unit)내부 메모리에 저장하는 인출부; 및
    상기 기하학적 정보를 이용하여 하나 이상의 상기 제1타일을 레이 트레이싱 방법으로 렌더링하여 제1 이미지를 생성하고, 하나 이상의 상기 제2타일을 래스터화 방법으로 렌더링하여 제2 이미지를 생성하고, 상기 제1 이미지와 상기 제2이미지를 병합하여 최종 이미지를 출력하는 렌더링부를 포함하는 하이브리드 렌더링 장치.
  9. 제8항에 있어서, 상기 타일 분류부는,
    상기 타일들에 포함되는 프리미티브들의 속성을 추출하고, 상기 프리미티브들의 속성을 이용하여, 상기 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제 1타일로 결정하는 결정부를 포함하는 하이브리드 렌더링 장치.
  10. 제8항에 있어서, 상기 타일 분류부는,
    프리미티브 각각이 상기 분할된 타일들 중 어느 타일에 포함되는지 비닝(bining)하고, 상기 분할된 타일과 상기 프리미티브 각각에 대한 맵핑(mapping)정보를 생성하는 맵핑부; 및
    상기 맵핑 정보를 이용하여, 상기 타일들 각각에 포함되는 프리미티브의 리스트를 획득하고, 상기 프리미티브 리스트에 포함되는 프리미티브들의 속성을 추출하고, 상기 프리미티브들의 속성을 이용하여, 상기 타일들 중 반사율 또는 굴절율이 0보다 큰 프리미티브를 적어도 하나 이상 포함하고 있는 타일을 제 1타일로 결정하는 결정부를 포함하는 하이브리드 렌더링 장치.
  11. 제8항에 있어서,
    상기 기하학적 정보는 상기 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 하이브리드 렌더링 장치.
  12. 제8항에 있어서,
    상기 레이 트레이싱 렌더링은 쉐이딩(shading)을 수행하는 장치에서 함께 수행되는 것을 특징으로 하는 하이브리드 렌더링 장치.
  13. 제8항에 있어서, 상기 인출부는,
    GPU 외부 메모리에서 상기 프리미티브의 기하학적 정보를 인출(fetch)하고, 상기 인출한 기하학적 정보를 GPU 내부 메모리에 복사하는 것을 특징으로 하는 하이브리드 렌더링 장치.
  14. 제13항에 있어서, 상기 기하학적 정보는,
    상기 프리미티브의 깊이(depth) 정보, 노말 벡터(normal vector), 위치(position) 정보 중 적어도 하나를 포함하고,
    상기 GPU 외부 메모리는 G-버퍼(G-Buffer)인 것을 특징으로 하는 하이브리드 렌더링 장치.
  15. 제8항에 있어서, 래스터라이저(rasterizer)를 더 포함하고,
    상기 타일 분류부는 상기 분류 결과를 포함하는 타일 리스트를 생성하고,
    상기 래스터라이저는 상기 타일 리스트를 독출하여 상기 타일들에 포함된 프리미티브를 프래그먼트로 변환하고,
    상기 인출부는 상기 독출된 타일리스트에 포함된 상기 분류 결과를 이용하는 것을 특징으로 하는 하이브리드 렌더링 장치.
  16. 제 1항 내지 7항 중 어느 한 항에서 수행되는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020140092658A 2014-07-22 2014-07-22 하이브리드 렌더링 방법 및 장치 KR102224845B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140092658A KR102224845B1 (ko) 2014-07-22 2014-07-22 하이브리드 렌더링 방법 및 장치
US14/665,099 US9761039B2 (en) 2014-07-22 2015-03-23 Method and apparatus for hybrid rendering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140092658A KR102224845B1 (ko) 2014-07-22 2014-07-22 하이브리드 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160011486A true KR20160011486A (ko) 2016-02-01
KR102224845B1 KR102224845B1 (ko) 2021-03-08

Family

ID=55167125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140092658A KR102224845B1 (ko) 2014-07-22 2014-07-22 하이브리드 렌더링 방법 및 장치

Country Status (2)

Country Link
US (1) US9761039B2 (ko)
KR (1) KR102224845B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018074761A1 (ko) * 2016-10-17 2018-04-26 삼성전자 주식회사 이미지를 렌더링 하는 장치 및 방법
KR102151443B1 (ko) * 2019-04-11 2020-09-03 주식회사 실리콘아츠 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
US9773340B2 (en) * 2015-06-12 2017-09-26 Qualcomm Incorporated Rendering using ray tracing to generate a visibility stream
US11010956B2 (en) 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
US10332303B2 (en) 2016-04-26 2019-06-25 Imagination Technologies Limited Dedicated ray memory for ray tracing in graphics systems
CN108416824B (zh) * 2018-01-23 2022-05-03 网易(杭州)网络有限公司 Dwf文件贴图方法、装置、计算设备和介质
US10825231B2 (en) * 2018-12-10 2020-11-03 Arm Limited Methods of and apparatus for rendering frames for display using ray tracing
US10964086B2 (en) * 2019-08-27 2021-03-30 Apical Limited Graphics processing
US11321901B2 (en) * 2020-02-13 2022-05-03 Mediatek Inc. Hybrid rendering mechanism of a graphics pipeline and an effect engine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110170756A1 (en) * 2010-01-08 2011-07-14 Robert Schneider Method for sampling volume data of an object in an imaging device
KR20140038444A (ko) * 2011-05-04 2014-03-28 퀄컴 인코포레이티드 낮은 해상도 버퍼 기반의 픽셀 선별

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570578B1 (en) 1998-04-03 2003-05-27 Avid Technology, Inc. System for automatic generation of selective partial renderings of complex scenes
US8089486B2 (en) 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
KR100924122B1 (ko) 2007-12-17 2009-10-29 한국전자통신연구원 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법
US8379022B2 (en) 2008-09-26 2013-02-19 Nvidia Corporation Fragment shader for a hybrid raytracing system and method of operation
KR20100132605A (ko) 2009-06-10 2010-12-20 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110170756A1 (en) * 2010-01-08 2011-07-14 Robert Schneider Method for sampling volume data of an object in an imaging device
KR20140038444A (ko) * 2011-05-04 2014-03-28 퀄컴 인코포레이티드 낮은 해상도 버퍼 기반의 픽셀 선별

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018074761A1 (ko) * 2016-10-17 2018-04-26 삼성전자 주식회사 이미지를 렌더링 하는 장치 및 방법
US10916049B2 (en) 2016-10-17 2021-02-09 Samsung Electronics Co., Ltd. Device and method for rendering image
KR102151443B1 (ko) * 2019-04-11 2020-09-03 주식회사 실리콘아츠 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치

Also Published As

Publication number Publication date
KR102224845B1 (ko) 2021-03-08
US9761039B2 (en) 2017-09-12
US20160027203A1 (en) 2016-01-28

Similar Documents

Publication Publication Date Title
KR102224845B1 (ko) 하이브리드 렌더링 방법 및 장치
US11704863B2 (en) Watertight ray triangle intersection
US11645810B2 (en) Method for continued bounding volume hierarchy traversal on intersection without shader intervention
KR102493461B1 (ko) 렌더링 시스템 및 방법
KR102193684B1 (ko) 레이 트레이싱 처리 장치 및 방법
JP4769732B2 (ja) 複雑な動的3次元シーンをレイトレーシング法により写真現実的に表示する装置
CN110827390A (zh) 处理无序不透明和α光线/图元交点的方法
KR102161749B1 (ko) 화상의 렌더링을 위하여 광선 추적을 수행하는 방법 및 장치.
KR102164541B1 (ko) 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
KR20160047317A (ko) 하이브리드 렌더링 장치 및 방법
CN113808241B (zh) 共享顶点的射线追踪图元的硬件加速
KR20240001021A (ko) 이미지 렌더링 방법, 장치, 전자 설비 및 저장 매체
WO2022143367A1 (zh) 一种图像渲染方法及其相关设备
KR102193683B1 (ko) 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법
JP5937957B2 (ja) リアルタイム大局照明レンダリングシステム
KR102537529B1 (ko) 레이 트레이싱 장치 및 방법
CN117726496A (zh) 使用光线剪裁减少假阳性光线遍历
CN117726732A (zh) 减少包围体层次结构中的假阳性光线遍历
Futterlieb et al. Smooth visualization of large point clouds
US20150186288A1 (en) Apparatus and method of operating cache memory
KR102397001B1 (ko) 그래픽 프로세서
JP2007299080A (ja) 画像生成方法及び画像生成装置
CN117726743A (zh) 使用点退化剔除减少假阳性光线遍历
Kaveney Advanced Visualization and Interactive Display Rapid Innovation and Discovery Evaluation Research (VISRIDER) Program Task 6: Point Cloud Visualization Techniques for Desktop and Web Platforms
CN116993894A (zh) 虚拟画面的生成方法、装置、设备、存储介质及程序产品

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant