KR20150009906A - 영상 처리 장치 및 방법 - Google Patents

영상 처리 장치 및 방법 Download PDF

Info

Publication number
KR20150009906A
KR20150009906A KR1020130124510A KR20130124510A KR20150009906A KR 20150009906 A KR20150009906 A KR 20150009906A KR 1020130124510 A KR1020130124510 A KR 1020130124510A KR 20130124510 A KR20130124510 A KR 20130124510A KR 20150009906 A KR20150009906 A KR 20150009906A
Authority
KR
South Korea
Prior art keywords
vpl
sampling
cells
space
image processing
Prior art date
Application number
KR1020130124510A
Other languages
English (en)
Other versions
KR102211142B1 (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 JP2014132858A priority Critical patent/JP6482193B2/ja
Priority to US14/325,684 priority patent/US9715758B2/en
Priority to EP14176951.3A priority patent/EP2827302B1/en
Publication of KR20150009906A publication Critical patent/KR20150009906A/ko
Application granted granted Critical
Publication of KR102211142B1 publication Critical patent/KR102211142B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/55Radiosity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)
  • Investigating Or Analysing Materials By Optical Means (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

영상 처리 장치의 샘플링부는 직접 광 시점으로부터 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링한다. 샘플링부는, 상기 직접 광 시점과 독립적으로 3D 공간 상에 제2 VPL을 샘플링할 수 있다.

Description

영상 처리 장치 및 방법{IMAGE PROCESSING APPARATUS AND METHOD}
3-Dimensional(3D) 모델에 대한 전역 조명 기반 렌더링(Global illumination-based rendering)에 연관되며, 보다 특정하게는 래디오서티(Radiosity) 기법과 같은 간접 조명(Indirect illumination)을 반영하여 3D 모델을 렌더링하기 위해 상에 VPL(Virtual Point Light)을 샘플링 하는 방법에 연관된다.
3D 게임, 가상현실(Virtual reality) 애니메이션, 영화 등 다양한 분야에서, 3D 모델에 대한 실시간 렌더링(Real-time rendering)에 대한 관심이 높아지고 있다. 이러한 3D 렌더링 기법 중, 전역 조명을 고려한 래디오서티 기법은, 3D 모델 내에 존재하는 직접 광원(direct light source)에 의한 직접 조명뿐만 아니라, 상기 직접 조명이 오브젝트에 의해 반사된 반사광이나 난반사 현상 등에 의한 간접조명까지 고려하여 렌더링 품질을 향상시키는 렌더링 방법이다. 이 경우, 3D 모델 내의 임의의 위치에 간접 조명 효과를 대표하는 VPL들을 적절히 위치시키는 VPL 샘플링(sampling)이 요구된다.
일측에 따르면, 직접 광 시점으로부터 적어도 하나의 제1 VPL을 샘플링하고, 상기 직접 광 시점과 독립적으로 3D 공간 상에 제2 VPL을 샘플링하는 샘플링부; 및 상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 것들을 이용하여 상기 제2 VPL의 밝기를 계산하는 계산부를 포함하는 영상 처리 장치가 제공된다.
일실시예에 따르면, 영상 처리 장치는 상기 3D 공간을 클러스터링 하여 복수 개의 셀을 생성하는 분할부를 더 포함할 수 있다. 이 경우, 상기 샘플링부는 상기 복수 개의 셀 중 제1 셀에 상기 제2 VPL을 샘플링할 수 있다.
일실시예에 따르면, 상기 샘플링부는, 상기 제1 셀에 포함되는 적어도 하나의 버텍스의 위치를 가중 평균하여 상기 제2 VPL의 위치를 결정할 수 있다.
또한, 상기 샘플링부는, 상기 제1 셀에 포함되는 상기 적어도 하나의 버텍스의 노말을 가중 평균하여 상기 제2 VPL의 노말을 결정할 수 있다.
이 경우, 상기 계산부는, 상기 제1 셀에 포함되는 적어도 하나의 버텍스 색상을 가중 평균하여 상기 제2 VPL의 색상을 결정할 수 있다.
한편, 일실시예에 따르면, 상기 계산부는, 상기 복수 개의 셀의 계층 구조를 참고하여 상기 적어도 하나의 제1 VPL 중 상기 제2 VPL과 임계 거리 이하에 위치한 적어도 하나의 이웃 VPL을 탐색하고, 상기 적어도 하나의 이웃 VPL의 밝기를 가중 평균하여 상기 제2 VPL의 밝기를 계산한다.
일실시예에 따르면, 상기 분할부는, 상기 3D 공간을 회귀적으로 분할하여 상기 복수 개의 셀을 생성한다. 여기서 상기 회귀적인 분할은 이전 단계에서 분할되어 생성된 개별 셀이 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 분할하는 것일 수 있다.
일실시예에 따르면, 상기 분할부는, 상기 개별 셀의 부피가 임계 부피 이상인 경우, 상기 개별 셀을 추가로 분할한다.
일실시예에 따르면, 상기 분할부는, 상기 개별 셀에 포함되는 버텍스 수가 임계 값 이상인 경우 상기 개별 셀을 추가로 분할할 수도 있다.
또한, 상기 분할부는, 상기 개별 셀에 포함되는 버텍스들의 특성 값의 최대치와 최소 치가 임계 차이 이상인 경우 상기 개별 셀을 추가로 분할할 수도 있다.
이 경우, 상기 특성 값은, 예시적으로, 위치 좌표, 노말 및 색상 중 적어도 하나를 포함할 수 있다.
한편, 일실시예에 따르면, 상기 분할 종료 조건은, 상기 개별 셀에 포함되는 버텍스의 전부가 상기 직접 광의 위치로부터 가시 영역에 있다고 판단되는 것일 수 있다.
일실시예에 따르면, 상기 분할 종료 조건은, 상기 개별 셀에 임계 밀도 이상의 VPL이 이미 샘플링 되어 있는 것일 수도 있다.
일실시예에 따르면, 상기 분할 종료 조건은, 상기 영상 처리 장치의 연산 자원 성능 및 요구되는 렌더링 품질 중 적어도 하나에 따라 적응적으로 설정될 수 있다. 이를테면, 영상 처리 장치의 연산 자원에 여유가 있는 경우 및/또는 요구되는 렌더링 품질이 높은 수준인 경우에는, 상기 분할 종료 조건을 더 엄격히(Strict) 설정하여, 보다 많은 VPL들이 샘플링되도록 할 수 있다.
한편, 일실시예에 따르면, 상기 샘플링부 및 상기 계산부는 상기 영상 처리 장치에 포함되는 CPU(Central Processing Unit)에 포함될 수 있다. 또한, 상기 영상 처리 장치는, 상기 직접 광원, 상기 적어도 하나의 제1 VPL 및 상기 제2 VPL을 이용하여 상기 3D 공간을 렌더링 시점에서 렌더링하는 GPU(Graphic Processing Unit)를 더 포함할 수 있다. 이러한 CPU와 GPU의 병렬 프로세싱에 의해 VPL 샘플링 및 영상 렌더링이 고속화 될 수 있다.
다른 일측에 따르면, 렌더링 할 3D 공간을 클러스터링 하여 복수 개의 셀을 생성하는 분할부; 및 직접 광 시점으로부터 상기 3D 공간 내에 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링하고, 상기 직접 광 시점과 독립적으로 상기 복수 개의 셀에 적어도 하나의 제2 VPL을 샘플링하는 샘플링부를 포함하는 영상 처리 장치가 제공된다.
일실시예에 따르면, 상기 분할부는, 상기 3D 공간을 회귀적으로 분할하여 상기 복수 개의 셀을 생성하며, 상기 회귀적인 분할은 이전 단계에서 분할되어 생성된 개별 셀이 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 분할하는 것일 수 있다.
일실시예에 따르면, 상기 분할부는, 상기 개별 셀의 부피가 임계 부피 이상인 경우, 상기 개별 셀을 추가로 분할할 수 있다.
다른 일실시예에 따르면, 상기 분할부는, 상기 개별 셀에 포함되는 버텍스 수가 임계 값 이상인 경우 상기 개별 셀을 추가로 분할할 수 있다.
한편, 상기 분할부는, 상기 개별 셀에 포함되는 버텍스들의 특성 값의 최대치와 최소 치가 임계 차이 이상인 경우 상기 개별 셀을 추가로 분할할 수도 있다.
일실시예에 따르면, 상기 분할 종료 조건은, 상기 개별 셀에 포함되는 버텍스의 전부가 상기 직접 광의 위치로부터 가시 영역에 있다고 판단되는 것일 수 있다.
다른 일실시예에 따르면, 상기 분할 종료 조건은, 상기 개별 셀에 임계 밀도 이상의 VPL이 이미 샘플링 되어 있는 것일 수도 있다.
일실시예에 따르면, 영상 처리 장치는, 상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 적어도 하나의 이웃 VPL의 밝기를 가중 평균하여 상기 제2 VPL의 밝기를 계산하는 계산부를 더 포함할 수 있다.
또 다른 일측에 따르면, 영상 처리 장치의 샘플링부가, 직접 광 시점으로부터 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링하고, 상기 직접 광 시점과 독립적으로 3D 공간 상에 제2 VPL을 샘플링하는 단계; 및 상기 영상 처리 장치의 계산부가, 상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 것들을 이용하여 상기 제2 VPL의 밝기를 계산하는 단계를 포함하는 영상 처리 방법이 제공된다.
일실시예에 따르면, 영상 처리 방법은 상기 영상 처리 장치의 분할부가, 상기 3D 공간을 클러스터링 하여 복수 개의 셀을 생성하는 단계를 더 포함할 수 있다. 이 경우, 상기 샘플링하는 단계는 상기 복수 개의 셀 중 제1 셀에 상기 제2 VPL을 샘플링할 수 있다.
일실시예에 따르면, 상기 계산하는 단계는, 상기 복수 개의 셀의 계층 구조를 참고하여 상기 적어도 하나의 제1 VPL 중 상기 제2 VPL과 임계 거리 이하에 위치한 적어도 하나의 이웃 VPL을 탐색하고, 상기 적어도 하나의 이웃 VPL의 밝기를 가중 평균하여 상기 제2 VPL의 밝기를 계산할 수 있다.
또 다른 일측에 따르면, 직접광 시점과 독립적으로, 3D 공간의 특성을 반영하여 복수의 VPL(Virtual Point Light)들을 샘플링하는 단계; 상기 VPL들을 상기 3D 공간 상에 배치하는 단계; 및 상기 VPL들을 이용하여 상기 3D 공간을 렌더링하는 단계를 포함하는 영상 처리 방법이 제공된다.
일실시예에 따르면, 상기 영상 처리 방법은 상기 3D 공간을 클러스터링하여 복수 개의 셀로 분할하는 단계를 더 포함할 수 있다. 이 경우, 상기 복수 개의 VPL들은 상기 3D 공간상의 특성에 따라 상기 복수 개의 셀 중 적어도 일부에 샘플링될 수 있다.
한편, 상기 분할하는 단계는, 상기 3D 공간을 회귀적으로 분할하여 상기 복수 개의 셀을 생성하며, 상기 회귀적인 분할은 이전 단계에서 분할되어 생성된 개별 셀이 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 분할되는 것일 수 있다.
일실시예에 따르면, 상기 미리 결정된 분할 종료 조건은, 상기 개별 셀에 포함되는 버텍스의 전부가 상기 직접 광의 위치로부터 가시 영역에 있다고 판단될 것, 및 상기 개별 셀에 임계 밀도 이상의 VPL이 이미 샘플링 되어 있는 것으로 판단될 것 중 적어도 하나를 만족하는 것일 수 있다.
도 1은 일실시예에 따른 영상 처리 장치를 도시한 블록도이다.
도 2는 일실시예에 따른 영상 처리 장치가 VPL을 샘플링하는 예시적 3D 모델의 사시도이다.
도 3은 도 2에서 도시된 3D 모델의 평면도 및 직접 광을 도시한다.
도 4는 일실시예에 따른 영상 처리 장치가 VPL을 샘플링하는 과정을 설명하기 위한 개념도이다.
도 5는 다른 일실시예에 따른 영상 처리 장치를 도시한다.
도 6은 일실시예에 따른 분할부가 3D 공간을 분할하는 과정을 설명하기 위한 도면이다.
도 7은 일실시예에 따른 개별 셀의 분할 여부 판단을 설명하기 위한 도면이다.
도 8은 일실시예에 따른 영상 처리 장치에서 셀 내에 제2 VPL을 샘플링하고, 제2 VPL의 밝기를 계산하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따른 렌더링 과정에서 직접 광을 반영한 렌더링 결과를 도시한다.
도 10은 일실시예에 따라 VPL들을 이용하여 간접 광을 반영한 렌더링 결과를 도시한다.
도 11은 도 9의 렌더링 결과와 도 10의 렌더링 결과를 모두 반영한 렌더링 결과를 도시한다.
도 12는 일실시예에 따른 영상 처리 방법을 도시한다.
이하에서, 일부 실시예들를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 영상 처리 장치를 도시한 블록도이다. 영상 처리 장치(100)는, 예시적으로 그러나 한정되지 않게, 래디오서티(Radiosity) 기법에 따른 전역 조명 효과를 렌더링에 반영하기 위해, 빛의 반사, 회절 등의 자연 현상을 대표하는 가상의 포인트 광원(Virtual Point Light, VPL)을 3D 모델 위에 또는 3D 공간에 배치(명세서 전반적으로 이러한 VPL의 배치를 '샘플링'이라 할 수 있음)할 수 있다. 이러한 VPL들에 의해 3D 모델 상의 오브젝트의 칼라 값 및/또는 밝기 변화가 렌더링에 반영될 수 있다.
일반적으로 VPL의 개수를 많이 설정할수록, 렌더링 품질은 향상되나, 연산양이 크게 증가하여 렌더링 속도는 낮아질 수 있다. 이러한 렌더링 속도를 높여 실시간 렌더링(Real time rendering)을 가능하도록 하는 시도로 직접 광(Direct light)의 위치 및/또는 직접 광의 조사 방향(Emitted direction of direct light)을 고려하여 VPL을 샘플링하는 래디오서티 고속화 방식을 고려하였다. 하지만 직접 광이 닿지 않는 3D 오브젝트 영역에서는 VPL 처리에 소요되는 연산양에 비해 렌더링 품질이 높지 못하거나, 렌더링 품질 향상을 위해 렌더링 연산양이 컸다.
일실시예에 따른 영상 처리 장치(100)는 샘플링부(110) 및 계산부(120)을 포함할 수 있다. 샘플링부(110)는 직접 광의 위치 및/또는 조사 방향을 고려하여 적어도 하나 또는 복수의 제1 VPL을 샘플링할뿐만 아니라, 직접 광의 위치 및/또는 조사 방향과는 독립적으로 3D 모델 (또는 3D 장면이라고 할 수도 있음)의 특성을 고려하여 적어도 하나 또는 복수의 제2 VPL을 샘플링 한다. 제1 VPL은 종래의 방식과 같이 직접 광의 위치 및/또는 조사 방향을 고려하여 3D 장면 상에 VPL을 샘플링한 결과로 이해될 수 있다. 이를테면, 샘플링부(110)는, 직접 광 시점의 위치로부터 직접 광의 조사 방향으로 3D 공간을 바라보는 경우의, 깊이 정보, 노말 정보, 위치 정보 중 적어도 하나를 이용하여 2D(2-Dimensional) 영상을 생성한다. 그리고, 샘플링부(110)는 2D 영상 위에 종래의 방식에 따라 제1 VPL을 샘플링할 수 있다. 이렇게 샘플링된 제1 VPL은 깊이 정보, 노말 정보 및 위치를 이용하여 3차원으로 정의될 수 있다.
샘플링부(110)는 3D 공간 상의 특성을 고려하여 3D 공간 내에 제2 VPL을 샘플링할 수 있다. 이 제2 VPL은 직접 광의 위치나 직접 광 조사 방향에 따른 가시성(Visibility)와는 무관하게 3D 장면의 복잡도를 고려하여 후술할 실시예들에 따라 샘플링될 수 있다. 따라서, 샘플링부(110)는 직접 광의 위치 및/또는 조사 방향을 고려하여 샘플링하는 것에 더하여, 직접 광과는 독립하여 별도의 제2 VPL을 샘플링함으로써, 보다 사실적인 영상을 실시간 렌더링 할 수 있도록 한다. 한편, 제2 VPL은 직접 광으로부터 샘플링된 것이 아니기 때문에, 제2 VPL의 밝기(Intensity or Luminance) 정보는 직접 광을 이용하여 직접 계산할 수 없을 수 있다.
계산부(120)는, 제2 VPL 주변의(nearby or adjacent) 제1 VPL을 탐색하고, 탐색된 VPL들의 밝기를 가중 평균함으로써 제2 VPL의 밝기를 계산할 수 있다. 예시적으로, 계산부(120)는, 직접 광을 고려하여 샘플링된 제1 VPL 중, 제2 VPL과 임계 거리(threshold distance) 이하에 위치한 이웃 VPL을 탐색하고, 이웃 VPL의 밝기를 가중 평균하여 제2 VPL의 밝기를 계산한다. 예를 들면, 다음의 수학식 1을 이용하여 제2 VPL의 밝기 값을 계산할 수 있다.
Figure pat00001
수학식 1에서, IVPL_Scene는 직접 광과는 독립적으로 3D 장면을 고려하여 샘플링된 특정한 하나의 제2 VPL의 밝기 값이다. 그리고, IVPL_DL(i)는 제2 VPL 주변의 I 번째 인접한 제1 VPL의 밝기 값이며, w(i)는 제1 VPL의 밝기가 상기 제2 VPL의 밝기에 기여하는 정도를 나타내는 가중치이다. 이러한 가중치는, 제1 VPL과 가까이 있을 수록, 제1 VPL의 노말 방향이 제1 VPL과 제2 VPL 위치 차이 벡터에 일치하여 영향을 많이 줄수록 커질 수 있다. 제2 VPL의 밝기는 제2 VPL 주변의 n 개의 인접한 제1 VPL의 밝기 값을 상기 수학식 1과 같이 가중 평균하여 계산할 수 있다. 제2 VPL의 생성 과정 및 밝기 계산 과정에 대해서는 도 2 내지 도 4를 참조하여 보다 상세히 후술한다.
이렇게 샘플링부(110)가 직접 광을 고려하여 제1 VPL을 샘플링하고, 3D 장면을 고려하여 제2 VPL을 샘플링 한 다음, 계산부(120)가 제2 VPL의 밝기 정보를 제공하면, 제1 VPL 및 제2 VPL은 모두 간접 조명 효과를 만들기 위한 VPL들로서 렌더링에 이용될 수 있다. 일단 제1 VPL 및 제2 VPL이 모두 샘플링 된 후에는, 이것들을 VPL들로 취급하여 래디오서티 기법 등으로 렌더링 하는 과정은 종래의 렌더링 과정과 동일할 수 있다.
샘플링부(110) 및 계산부(120)는 영상 처리 장치(100)에 포함되는 CPU(Central Processing Unit)에 포함되는 물리적 및/또는 논리적 연산 자원에 의해 구현될 수 있다. 제1 VPL 및 제2 VPL들을 모두 샘플링한 후, 이러한 VPL들을 이용하여 렌더링 시점에서 3D 모델을 바라본 영상을 렌더링하는 과정은, CPU와 구분되는 GPU(Graphic Processing Unit)에 의해 병렬 처리될 수도 있다. 따라서, CPU와 GPU의 병렬 프로세싱에 의해 VPL 샘플링 및 영상 렌더링이 고속화 될 수 있다. 이러한 병렬프로세싱에 의하면 GPU 기반으로만 VPL을 생성하는 종래의 기술에 대비하여 연산 속도가 크게 향상되어, 실시간 렌더링에 유리하다. 또한, 3D 장면(Scene)에 적응적으로(Adaptively) 간접 광, 이를테면 VPL을 생성하므로, 다양한 종류의 컨텐츠(3D 모델)에 효율적으로 대응이 가능하고, 하드웨어 성능에 따른 스케일가능(Scalable) 렌더링이 가능하다.
도 2는 일실시예에 따른 영상 처리 장치가 VPL을 샘플링하는 예시적 3D 모델의 사시도이다. 3D 모델(200)에는 오브젝트(210), 오브젝트(220) 및 오브젝트(230)이 육면체 방 안에 위치되어 있으며, 상기 육면체 방은 한쪽 벽에 틈(250)이 존재한다. 이 육면체 방 외부에 직접 광이 존재하여 방 안을 비추고 있고, 방 내부에는 직접 광은 존재하지 않는 것으로 가정하여 설명한다.
도 3은 도 2에서 도시된 3D 모델의 평면도 및 직접 광을 도시한다. 직접 광(301)은 육면체 방 외부에 존재하여 방 안을 향해 광(Light)을 조사(Emitting)한다. 이러한 직접 광(301)에 의한 효과만을 고려하는 경우, 빛이 오브젝트(210)이나 방 안의 바닥, 벽면 등에서 반사되거나 회절되어 다른 부분, 이를테면 오브젝트(220 및 230) 등을 비추는 간접 조명 효과는 표현할 수 없다. 따라서, 이러한 간접 조명 효과, 이를테면 소프트 섀도우(Soft shadow)와 같은 효과를 표현하기 위해 VPL들을 샘플링하게 된다.
실시예들에 따른 VPL 샘플링 과정을 도 4를 참조하여 설명한다.
도 4는 일실시예에 따른 영상 처리 장치가 VPL을 샘플링하는 과정을 설명하기 위한 개념도이다. 영상 처리 장치의 샘플링부(110)는 도 3의 직접 광(301)의 위치 및 광 조사 방향을 고려하여 제1 VPL(411, 412, 413 등)을 샘플링한다. 이해를 돕기 위해 도 4에서 제1 VPL은 검은 포인트로 표시되었다. 제1 VPL(411, 412, 413 등)은 종래의 방식과 같이 직접 광의 위치 및/또는 조사 방향을 고려하여 3D 장면 상에 VPL을 샘플링한 결과로 이해될 수 있다.
그리고 샘플링부(110)는 3D 공간 상의 특성, 이를테면 3D 공간 상의 각 위치의 기하학적 복잡도(Geometric complexity), 색상과 같은 텍스처의 복잡도(Texture complexity) 등을 고려하여 3D 공간 내에 제2 VPL(421, 422 등)을 샘플링할 수 있다. 이해를 돕기 위해 제2 VPL은 흰색 포인트로 표시되었다. 이러한 제2 VPL(421, 422 등)은 상기한 바와 같이, 직접 광(301)의 위치나 조사 방향에 따른 가시성(Visibility)와는 무관하게 3D 장면의 복잡도를 고려하여 샘플링 된다.
예를 들어, 기하학적 복잡도, 이를테면 단위 부피당 존재하는 버텍스(Vertex)의 숫자, 버텍스의 노말(Normal) 방향의 불일치 정도와 같은 것이 큰 부분에는 보다 많은 수의 제2 VPL이 샘플링될 수 있다. 기하학적 복잡도가 높은 부분은 렌더링 결과의 감성적 품질에 영향을 줄 확률이 높은 부분일 수 있기 때문에, 이러한 방법은 합리적이다. 또한, 칼라 정보와 같은 텍스처가 복잡한 부분에 보다 많은 수의 제2 VPL이 샘플링될 수도 있다. 기하학적 복잡도와 마찬가지로, 칼라 복잡도가 높은 부분을 정밀하게 표현하는 것은 렌더링 품질을 향상시키는 데에 유리하다.
한편, 이렇게 샘플링된 제2 VPL들(이를 테면, 422)은 직접 광 기반으로 샘플링된 것이 아니기 때문에, 밝기 정보가 직접 주어지지 않을 수 있다. 참고로 제2 VPL(422)의 위치는 샘플링 포인트 주변의 버텍스들의 위치의 가중 평균에 의해 구할 수 있고, 제2 VPL(422)의 노말 방향 역시 상기한 주변 버텍스들의 노말을 가중 평균하여 합리적으로 계산할 수 있다. 나아가, 제2 VPL(422)의 칼라 또한 상기 주변 버텍스들의 칼라 정보를 가중 평균하여 계산하는 것이 가능하다. 그러나, 상기 주변 버텍스들에는 밝기 값은 존재하지 않을 수 있기 때문에, 제2 VPL(422)의 밝기 값은 후술하는 실시예에 따른 다른 방식으로 구할 수 있다.
예를 들어, 계산부(120)는 제2 VPL(422)의 밝기 값을 계산하기 위해, 제2 VPL(422) 주변의 일정 거리 이하에 존재하는 제1 VPL들(411 및 412)의 밝기 값과 수학식1을 이용할 수 있다. 다만, 제2 VPL(422)의 밝기 값 계산을 위해 고려하는 제1 VPL들은, 제2 VPL(422)로부터 일정 거리 이하의 제1 VPL들일 수도 있지만, 이는 일 예에 불과하다. 이를테면, 전체 제1 VPL들을 제2 VPL(422)로부터 가까운 순서로 미리 지정된 n 개 선택하여 제2 VPL(422)의 칼라 값 밝기에 반영하는 것도 가능하다.
마찬가지로 제2 VPL(422)의 칼라 값 계산을 위해, 계산부(120)는 전체 제1 VPL들 중 제2 VPL(422)과 일정한 거리 이하로 가까운 제1 VPL(411 및 412)를 탐색하거나, 전체 제1 VPL들을 제2 VPL(422)로부터 가까운 순서로 미리 지정된 n개 선택하여 밝기값이 칼라 값으로 대치된 수학식 1을 이용하여 제2 VPL(422)의 칼라 값을 계산할 수 있다.
도 1 내지 도 4를 참조하여 설명한 바와 같이, 3D 장면의 복잡도를 고려하여 제2 VPL들을 샘플링하는 과정은 3D 공간에 대한 공간 분할에 의하여 보다 체계적으로 수행될 수도 있다. 이러한 실시예에 대해 도 5 내지 도 8을 참조하여 설명한다.
도 5는 다른 일실시예에 따른 영상 처리 장치를 도시한다. 도 1을 참조하여 설명한 실시예에서의 영상 처리 장치(100)의 구성에 더하여 영상 처리 장치(500)는 분할부(510)를 더 포함한다. 분할부(510)는 제2 VPL들을 샘플링하는 과정에서 3D 장면의 복잡도를 보다 체계적으로 고려하기 위해 3D 공간을 클러스터링(Clustering)하여 복수 개의 셀들로 분할한다.
분할부(510)는, 3D 공간을 회귀적(Recursively or Iteratively)으로 분할(Dividing)하여 복수 개의 셀들을 생성해 나아간다. 이러한 공간 분할 및 새로운 셀의 생성은, 반복되고 있는 셀 분할 중 이전 단계 분할을 통해 이미 생성되어 있는 개별 셀들 전부가 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 수행될 수 있다. 분할부(510)는 먼저 3D 모델을 포함하는 전체 공간을 분할하고, 분할된 서브 셀들을 또다시 분할하는 식으로 셀들을 만들어 나간다. 이러한 과정에서 부모 셀(Parent cell)을 자식 셀(Children cells)로 분할해 가는 과정은, 예시적으로 2 분할, 4 분할, 8 분할 등 다양한 방식이 가능하다. 또한, 하나의 부모 셀을 복수 개의 자식 셀로 분할하는 과정은 자식 셀들의 부피가 동일하도록 분할하는 것도 가능하고, 새로 생성되는 각 자식 셀들에 포함되는 버텍스 수들이 유사하도록 분할하는 것도 가능하다. 따라서, 셀 분할에 관해서는, 예시적으로 설명하는 일부 실시예로 국한되어 해석되지 않아야 한다.
이해를 돕기 위해, 셀의 분할 조건과 분할 종료 조건을 구분하여 설명하기로 한다.
전체공간을 분할하는 일 예로, 분할부(510)는, 하나의 부모 셀의 부피가 미리 설정된 임계 부피 이상인 경우, 부모 셀을 복수 개의 자식 셀들로 분할한다. 이 예에서 분할 조건은 부모 셀의 부피가 다른 예로, 임계 부피 이상인 것이다.
분할부(510)는, 하나의 부모 셀에 포함되는 버텍스 수가 임계 값 이상인 경우, 부모 셀을 복수 개의 자식 셀들로 분할한다. 이 예에서 분할 조건은 부모 셀에 임계 값 이상의 개수의 버텍스가 포함되어 있는 것이다.
또 다른 예로, 분할부(510)는, 하나의 부모 셀에 포함되는 버텍스들의 특성 값(Characteristic value)의 최대치와 최소치가 미리 지정되는 임계 차이(Threshold difference) 이상인 경우 부모 셀을 분할할 수 있다. 이 경우, 특성 값은, 예시적으로, 위치 좌표, 노말 및 색상 중 적어도 하나를 포함할 수 있다. 보다 구체적으로 설명하면, 하나의 부모 셀에 포함된 버텍스들의 좌표들의 최대 값과 최소 값의 차이가 임계 차이 이상이라면, 해당 부모 셀에는 버텍스의 공간적 산포가 커서 셀 분할이 필요한 것으로 간주될 수 있다. 좌표들은 X, Y 또는 Z 축 중 어느 한 축에 대한 값일 수도 있고, 버텍스와 좌표 원점(Zero)의 거리일 수도 있다. 또한, 하나의 부모 셀에 포함된 버텍스들의 노말 차이가 임계 차이 이상이거나 및/또는 색상 차이가 임계 차이 이상인 경우 셀 분할이 수행될 수도 있다. 참고로, 좌표 값, 노말 차이 및 색상 차이에 대해 임계 차이는 서로 다른 디멘전(Dimension)을 갖는 다른 값들로 각각 설정될 수 있다.
이러한 방식으로 분할 조건을 만족하는 셀들을 반복적이고 회귀적으로 분할해 나아가다가, 전체 셀들이 분할 종료 조건을 만족하면 분할부(510)는 셀 분할을 멈춘다.
일 예로, 분할 종료 조건은, 분할되어 생성된 복수 개의 셀들 전부에 대해, 각 개별 셀에 포함되는 버텍스의 전부가 직접 광의 위치로부터 가시 영역(Visible region) 내에 있다고 판단되는 것일 수 있다. 하나의 셀에 포함된 버텍스 전부가 직접 광의 위치에서 가시 영역 내에 있는 경우라면, 직접 광을 고려한 제1 VPL의 샘플링이 해당 셀 내에 이미 수행되었을 수도 있기 때문에 해당 셀에 대해서는 추가적인 셀 분할을 하지 않을 수 있다.
다른 예로, 분할 종료 조건은, 분할되어 생성된 개별 셀에 대해 미리 지정된 임계 밀도 이상의 VPL이 이미 샘플링 되어 있는 것일 수도 있다. 이러한 임계 밀도 설정에도 다양한 실시예가 존재한다. 이를 테면, 하나의 셀에 1개의 제1 VPL 또는 제2 VPL이 이미 샘플링 되어 있는 경우, 임계 밀도 이상이 샘플링 된 것으로 이해할 수 있다. 이와 달리, 하나의 셀 내에서의 단위 부피 당 샘플링 된 VPL 수를 고려하는 것도 가능하다.
또 다른 예로, 상기 분할 종료 조건은, 상기 영상 처리 장치의 연산 자원의 하드웨어 및/또는 소프트웨어 성능에 따라 달리 설정될 수 있다. 연산 자원에 여유가 많은 경우라면 분할 종료 조건을 보다 엄격히 관리하여, 되도록 셀 분할이 많이 일어나도록 설정하는 것이다. 그러면, 보다 많은 수의 제2 VPL이 샘플링 될 수 있어 렌더링 결과는 보다 향상될 수 있다. 물론, 이러한 분할 종료 조건의 탄력적 설정은 실시간 렌더링이 가능한 한도에서 이루어질 수 있다.
또 다른 예로, 사용자에 의해 설정되거나, 하드웨어 특성에 따라 결정되거나, 및/또는 렌더링이 수행되는 어플리케이션에 의해 설정되는 렌더링 품질(Required quality level) (이를 LOD: Level Of Detail 이라고도 한다)에 의해 분할 종료 조건이 적응적으로 설정될 수도 있다. 이를테면, 요구되는 렌더링 품질이 높을수록 보다 많은 제2 VPL이 샘플링되도록 셀 분할 종료 조건을 보다 엄격히 설정하는 것이다.
이렇게 분할부(510)에 의해 공간 분할이 수행되면, 샘플링부(520)은 각 셀들에 미리 지정된 수, 이를테면 1개의 제2 VPL을 샘플링 한다. 제2 VPL은, 예를 들어, 각 셀에 포함되는 버텍스 위에(on a vertex comprised in a cell) 배치될 수 있다. 한편, 특정 버텍스 위에 배치되는 것이 아니라 3D 공간 상에 배치되는 것도 가능하다. 예를 들어 샘플링부(520)는, 제2 VPL을 샘플링하고자 하는 특정 셀인 제1 셀에 포함되는 버텍스들의 위치를 가중 평균하여 제2 VPL의 위치를 결정할 수 있다. 그리고, 샘플링부(520)는, 제1 셀에 포함되는 버텍스들의 노말을 가중 평균하여 제2 VPL의 노말을 결정할 수 있다.
이렇게 공간 분할에 의해 생성된 셀들 내에 제2 VPL들이 샘플링 되면, 계산부(530)는 각각의 제2 VPL들의 색상과 밝기를 계산한다. 계산부는(530)는, 상기 제1 셀에 포함되는 버텍스들의 색상을 가중 평균하여 상기 제2 VPL의 색상을 결정할 수 있다. 또한 계산부(530)는, 샘플링된 제2 VPL의 밝기 값을 주변에 있는 제1 VPL들의 밝기 값의 가중 평균에 의해 계산하며, 이는 도 1 내지 도 4 및 수학식 1을 참조하여 상술한 바와 같다.
한편, 밝기 값을 계산할 제2 VPL 주변의 제1 VPL들을 빠르게 탐색하기 위해, 공간 분할 과정에서 셀의 분할 정보를 참고할 수 있다. 이러한 셀의 분할 정보는 셀들의 공간적 분할 과정에서 저장되어 관리되는 셀의 계층적 구조(Hierarchical structure) 정보일 수 있다. 계층적 구조에 의하면, 하나의 셀과 이웃한 셀들의 빠른 탐색이 가능하므로, 이웃한 셀들에 포함된 제1 VPL이 있는지를 확인하면 빠르게 주변에 있는 제1 VPL을 찾을 수 있다.
이상에서는 도 5를 참조하여 분할부(510), 샘플링부(520) 및 계산부(530) 동작을 설명하였다. 샘플링부(520) 및 계산부(530)의 구체적인 동작은 도 5의 분할부(510)에 관한 내용과 충돌하지 않는 한에서는, 도 1 내지 도 4를 참조하여 설명한 도 1의 샘플링부(520) 및 계산부(530)에 대한 설명이 그대로 참조될 수 있다. 분할부(510), 샘플링부(520) 및 계산부(530)는 영상 처리 장치(500) 내에 포함되는 CPU(Central Processing Unit)에 포함되는 물리적 및/또는 논리적 연산 엘리먼트들에 의해 구현될 수 있다. 생성된 VPL들을 이용하여 렌더링 영상을 생성하는 과정, 이를테면 직접 조명 효과 및 간접 조명 효과를 고려한 결과 영상을 생성하는 과정은 CPU와 별도로 구비되는 GPU에 의해 수행될 수 있다. 따라서, 상기한 바와 같이, CPU와 GPU의 병렬 프로세싱에 의해 VPL 샘플링 및 영상 렌더링이 고속화 될 수 있다.
도 6은 일실시예에 따른 분할부가 3D 공간을 분할하는 과정을 설명하기 위한 도면이다. 도 5를 참조하여 설명한 바와 같이, 분할부(510)는, 3D 공간을 회귀적으로 분할하여 복수 개의 셀들을 생성해 나아간다. 도 6에서는 이러한 공간적 분할에 의한 셀들의 생성 과정이 개념적으로 도시되었다. 개별 셀에 대해 추가적 분할을 진행할 지의 여부를 판단하는 과정은 도 7을 참조하여 보다 상세히 설명한다.
도 7은 일실시예에 따른 개별 셀의 분할 여부 판단을 설명하기 위한 도면이다. 분할부(510)는, 하나의 개별 셀(710)에 대해 추가적인 분할을 진행할지, 아니면 셀(710)을 더 이상 분할하지 않고 분할을 종료할 지의 여부를 결정한다. 공간이 분할되는 과정에서, 개별 셀(710)에 대해 셀(710)에 포함되는 버텍스들 V1, V2, V3 등의 위치, 노말 및 색상 등이 저장된 정보(720)참고될 수 있다. 또한, 셀(710) 내에 이미 샘플링 된 VPL들의 정보(730)도 이용될 수 있다.
분할부(510)는 셀(710)에 대해 분할 조건을 만족하는 지의 여부를 결정한다. 일예로 분할부(510)는, 셀(710)의 부피가 미리 설정된 임계 부피 이상인 경우, 셀(710)을 추가로 분할하여, 복수 개의 자식 셀들을 생성할 수 있다. 다른 예로 분할부(510)는, 셀(710)에 포함된 버텍스들(V1, V2, V3 등)의 수가 임계 값 이상인 경우, 상기 셀(710)을 추가로 분할하여, 복수 개의 자식 셀들을 생성할 수 있다.
또 다른 예로 분할부(510)는, 하나의 부모 셀에 포함되는 버텍스들의 특성 값의 최대치와 최소치가 미리 지정되는 임계 차이 이상인 경우 상기 개별 셀을 추가로 분할할 수도 있다. 이를 테면, 버텍스들의 위치 좌표들 (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) 등을 비교하여, 좌표의 최대 치와 최소 치가 임계 차이 이상이면 셀(710)을 추가로 분할하여, 복수 개의 자식 셀들을 생성할 수 있다. 좌표의 최대 치와 최소 치 비교 시에는 X축, Y축, 및 Z축 중 어느 한 축의 좌표 값의 최대 치와 최소 치를 비교할 수도 있고, 전체 값들을 비교할 수도 있음은 상기한 바와 같다. 또한, 버텍스들의 노말 벡터들 [xn1, yn1, zn1], [xn2, yn2, zn2], [xn3, yn3, zn3] 등을 비교하여, 노말 벡터들이 일정 이상 차이가 나면 셀(710)을 추가로 분할하여, 복수 개의 자식 셀들을 생성할 수도 있다. 예시적으로, 노말 벡터들의 차이는, 노말 벡터들의 내적을 비교하는 것일 수 있다. 한편, 버텍스들의 색상 값들 (r, g1, b1), (r2, g2, b2), (r3, g3, b3) 등을 비교하여, 색상 차이가 임계 값 이상이면 셀(710)을 추가로 분할하여, 복수 개의 자식 셀들을 생성할 수도 있다. 참고로, 상기한 바와 같이, 좌표 값, 노말 차이 및 색상 차이에 대해 상기한 임계 차이는 서로 다른 디멘전(Dimension)을 갖는 다른 값들로 각각 설정될 수 있다.
한편, 셀(710)에 대해 분할 종료 조건이 만족되는 경우, 분할부(510)는 셀(710)을 더 이상 분할하지 않는다. 분할 종료 조건의 일 예로 셀(710)에 포함되는 버텍스들(V1, V2, V3 등) 전부가 직접 광의 위치로부터 가시 영역 내에 있다고 판단되는 경우, 셀(710)에 대해서는 분할 종료 조건이 만족된 것으로 간주될 수 있다. 다른 예로 셀(710)에 대해 미리 지정된 임계 밀도 이상 및/또는 임계 수 이상의 VPL들(VPL1, VPL2, VPL3 등)이 이미 샘플링 되어 있는 경우, 셀(710)에 대해서는 분할 종료 조건이 만족된 것으로 간주될 수 있다.
셀 분할 및 분할 종료에 관한 더 자세한 내용은 도 5를 참조하여 상술한 바와 같다.
도 8은 일실시예에 따른 영상 처리 장치에서 셀 내에 제2 VPL을 샘플링하고, 제2 VPL의 밝기를 계산하는 과정을 설명하기 위한 도면이다. 이해를 돕기 위해, 예시적으로 분할된 셀들 9개에 대한 단면도가 도시되어 있다. 샘플링부(520)는 셀(801)에 미리 지정된 수, 이를테면 1개의 제2 VPL(810)을 샘플링 한다. 제2 VPL은, 예를 들어, 각 셀에 포함되는 버텍스 위에 배치될 수도 있다. 특정 버텍스 위에 배치되는 것이 아니라 3D 공간 상에 배치되는 것도 가능하다. 이를테면, 샘플링부(520)는, 제2 VPL(810)을 셀(801)에 포함되는 버텍스들(811, 812, 813 등)의 위치를 가중 평균하여 제2 VPL(810)의 위치를 결정할 수 있다. 그리고, 샘플링부(520)는, 셀(801)에 포함되는 버텍스들(811, 812, 813 등)의 버텍스들의 노말을 가중 평균한 값을 제2 VPL(810)의 노말로 결정할 수 있다.
이렇게 셀(801) 내에 제2 VPL(810)이 샘플링 되면, 계산부(530)는 제2 VPL(810)의 색상과 밝기를 계산한다. 예를 들어, 계산부는(530)는, 셀(801)에 포함되는 버텍스들(811, 812, 813 등)의 색상을 가중 평균하여 상기 제2 VPL(810)의 색상을 결정할 수 있다. 한편, 계산부(530)는, 공간 분할된 셀들의 계층적 구조를 참고하여, 이웃한 셀들, 이를테면 셀들(802 및 803 등)을 탐색하고, 탐색된 셀들 내에 존재하는 제1 VPL들(820 및 830 등)의 밝기 값을 가중 평균하여 제2 VPL(810)의 밝기를 계산할 수 있다. 이러한 계산은 도 1 내지 도 4 및 수학식 1을 참조하여 상술한 바와 같다.
도 9는 일실시예에 따른 렌더링 과정에서 직접 광을 반영한 렌더링 결과를 도시한다. 도 5 등을 참조하여 상술한 바와 같이, 결과 영상의 렌더링은 영상 처리 장치(100 또는 500)에 포함될 수 있는 GPU(미도시)에 의해 수행될 수 있다. CPU 자원에 포함되는 분할부(510), 샘플링부(520) 및 계산부(530)에 의해 제1 VPL들 및 제2 VPL들이 샘플링되는 것과 병렬적으로, GPU는 직접 조명(도 3의 301)만을 고려하여 섀이딩(Shading)을 수행함으로써 직접 조명 효과만을 반영 한 영상(900)을 생성할 수 있다.
도 10은 일실시예에 따라 VPL들을 이용하여 간접 광을 반영한 렌더링 결과를 도시한다. CPU 자원에 포함되는 분할부(510), 샘플링부(520) 및 계산부(530)에 의해 제1 VPL들 및 제2 VPL들이 샘플링 되면, GPU는 간접 조명 효과를 고려한 결과 영상(1000)을 생성할 수 있다.
영상(1000)에서는 VPL들을 이용하여 래디어서티 기법에 의해 간접 조명 효과가 표현될 수 있다. 따라서, 빛의 반사, 회절 등의 물리적 현상을 시각적으로 유사하게 렌더링한 결과, 이를테면 소프트 섀도우 등이 제공된다.
상술한 바와 같이, 결과 영상(900)과 결과 영상(1000)이 렌더링 되는 과정 중 적어도 일부는 CPU가 공간을 분할하여 VPL들을 샘플링하는 과정과 병렬적으로 진행될 수 있어, VPL 샘플링 및 영상 렌더링이 고속화 될 수 있다.
도 11은 도 9의 렌더링 결과와 도 10의 렌더링 결과를 모두 반영한 렌더링 결과를 도시한다. 직접 조명 효과만을 반영 한 결과 영상(900)과 간접 조명 효과를 고려한 결과 영상(1000)이 합성되어 최종 렌더링 결과 영상(1100)이 생성될 수 있다. 상기한 실시예들에 따라, 연산 자원에 대비한 결과 영상(1100)의 렌더링 품질은 종전에 비해 크게 향상될 수 있다.
도 12는 일실시예에 따른 영상 처리 방법을 도시한다. 단계(1210)에서는 도 9를 참조하여 설명한 바와 같이, 직접 광 효과만을 고려한 영상, 예시적으로 영상(900)이 렌더링 될 수 있다. 이러한 렌더링은, 예를 들어, GPU에 의해 수행될 수 있다. 한편, 단계(1210)과 병렬적으로, 단계(1222)에서 3D 공간이 도 5를 참조하여 설명한 바와 같이 회귀적이고 반복적으로 분할될 수 있다. 이러한 공간 분할을 단계는, 예를 들어, CPU에 의해 병렬적으로 수행될 수 있다. 공간 분할에 대한 상세한 내용, 이를테면 셀 분할 조건 및 셀 분할 종료 조건 등은 도 5 내지 도 7을 참조하여 상술한 바와 같다.
단계(1221)에서는 직접 광 시점으로부터 제1 VPL들이 샘플링된다. 이러한 제1 VPL들은 직접 광에 의해 밝기 값이 계산될 수 있는 VPL들일 수 있다. 그러면 단계(1223)에서는 분할된 셀들에 대하여 제2 VPL이 샘플링 된다. 이러한 제2 VPL 샘플링은, 예시적으로 그러나 한정적이지 않게, 분할된 셀들 마다 하나씩의 제2 VPL을 샘플링 하는 과정일 수 있다. 이 경우, 제2 VPL이 샘플링 되는 제1 셀에 포함된 버텍스들의 위치를 가중 평균하여 상기 제2 VPL의 위치를 결정할 수 있다. 상기 제1 셀에 포함되는 버텍스들의 노말을 가중 평균하여 상기 제2 VPL의 노말을 결정할 수 있다.
단계(1224)에서는 제1 셀 내에 샘플링된 제2 VPL의 색상과 밝기가 계산된다. 예를 들어, 상기 제1 셀에 포함되는 버텍스들의 색상을 가중 평균한 값이 상기 제2 VPL의 색상으로 결정될 수 있다. 또한, 제2 VPL의 밝기 값은, 예를 들어, 제2 VPL 주변에 있는 제1 VPL들의 밝기 값의 가중 평균에 의해 계산될 수 있다. 이러한 과정은, 도 1 내지 도 4, 도 8 및 수학식 1을 참조하여 상술한 바와 같다.
이상의 단계(1221 내지 1224)는 CPU에 의해 수행될 수 있다. CPU는 조건 분기에 따른 연산 처리를 고속화하는 데에 적절하여, 렌더링을 수행하는 GPU와 병렬적으로 동작하여 전체 렌더링 과정을 고속화 할 수 있다.
단계(1230)에서는 샘플링된 제1 VPL들 및 제2 VPL들을 반영하는 영상 렌더링이 수행되며, 이러한 과정은 도 5 및 도 9를 참조하여 설명한 바와 같다. 단계(1240)에서는 단계(1210)의 직접 광 효과만을 반영한 렌더링 결과와 단계(1230)의 간접 광 효과를 반영한 렌더링 결과가 병합되어 최종 렌더링 결과 영상이 제공된다.
이러한 처리 과정을 통해, VPL들이 효율적으로 샘플링 될 수 있어, 필요한 연산 자원 대비 전역 조명 렌더링 품질이 크게 향상될 수 있다. 또한, 상기한 바와 같이, CPU와 GPU의 병렬 프로세싱에 의해 VPL 샘플링 및 영상 렌더링이 고속화 될 수 있어, 실시간 렌더링 가능성이 매우 높아질 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (27)

  1. 직접 광 시점으로부터 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링하고, 상기 직접 광 시점과 독립적으로 3D 공간 상에 제2 VPL을 샘플링하는 샘플링부; 및
    상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 것들을 이용하여 상기 제2 VPL의 밝기를 계산하는 계산부
    를 포함하는 영상 처리 장치.
  2. 제1항에 있어서,
    상기 3D 공간을 클러스터링 하여 복수 개의 셀을 생성하는 분할부
    를 더 포함하고,
    상기 샘플링부는 상기 복수 개의 셀 중 제1 셀에 상기 제2 VPL을 샘플링하는 영상 처리 장치.
  3. 제2항에 있어서,
    상기 샘플링부는, 상기 제1 셀에 포함되는 적어도 하나의 버텍스의 위치를 가중 평균하여 상기 제2 VPL의 위치를 결정하는 영상 처리 장치.
  4. 제3항에 있어서,
    상기 샘플링부는, 상기 제1 셀에 포함되는 상기 적어도 하나의 버텍스의 노말을 가중 평균하여 상기 제2 VPL의 노말을 결정하는 영상 처리 장치.
  5. 제2항에 있어서,
    상기 계산부는, 상기 제1 셀에 포함되는 적어도 하나의 버텍스 색상을 가중 평균하여 상기 제2 VPL의 색상을 결정하는 영상 처리 장치.
  6. 제2항에 있어서,
    상기 계산부는, 상기 복수 개의 셀의 계층 구조를 참고하여 상기 적어도 하나의 제1 VPL 중 상기 제2 VPL과 임계 거리 이하에 위치한 적어도 하나의 이웃 VPL을 탐색하고, 상기 적어도 하나의 이웃 VPL의 밝기를 가중 평균하여 상기 제2 VPL의 밝기를 계산하는 영상 처리 장치.
  7. 제2항에 있어서,
    상기 분할부는,
    상기 3D 공간을 회귀적으로 분할하여 상기 복수 개의 셀을 생성하며,
    상기 회귀적인 분할은 이전 단계에서 분할되어 생성된 개별 셀이 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 분할하는 것인 영상 처리 장치.
  8. 제7항에 있어서,
    상기 분할부는, 상기 개별 셀의 부피가 임계 부피 이상인 경우, 상기 개별 셀을 추가로 분할하는 영상 처리 장치.
  9. 제7항에 있어서,
    상기 분할부는, 상기 개별 셀에 포함되는 버텍스 수가 임계 값 이상인 경우 상기 개별 셀을 추가로 분할하는 영상 처리 장치.
  10. 제7항에 있어서,
    상기 분할부는, 상기 개별 셀에 포함되는 버텍스들의 특성 값의 최대치와 최소 치가 임계 차이 이상인 경우 상기 개별 셀을 추가로 분할하는 영상 처리 장치.
  11. 제10항에 있어서,
    상기 특성 값은 위치 좌표, 노말 및 색상 중 적어도 하나를 포함하는 영상 처리 장치.
  12. 제7항에 있어서,
    상기 분할 종료 조건은, 상기 개별 셀에 포함되는 버텍스의 전부가 상기 직접 광의 위치로부터 가시 영역에 있다고 판단되는 것인 영상 처리 장치.
  13. 제7항에 있어서,
    상기 분할 종료 조건은, 상기 개별 셀에 임계 밀도 이상의 VPL이 이미 샘플링 되어 있는 것인 영상 처리 장치.
  14. 제7항에 있어서,
    상기 분할 종료 조건은, 상기 영상 처리 장치의 연산 자원 성능 및 요구되는 렌더링 품질 중 적어도 하나에 따라 적응적으로 설정되는 영상 처리 장치.
  15. 제1항에 있어서,
    상기 샘플링부 및 상기 계산부는 상기 영상 처리 장치에 포함되는 CPU(Central Processing Unit)에 포함되고,
    상기 영상 처리 장치는,
    상기 직접 광원, 상기 적어도 하나의 제1 VPL 및 상기 제2 VPL을 이용하여 상기 3D 공간을 렌더링 시점에서 렌더링하는 GPU(Graphic Processing Unit)를 더 포함하는 영상 처리 장치.
  16. 렌더링 할 3D 공간을 클러스터링 하여 복수 개의 셀을 생성하는 분할부; 및
    직접 광 시점으로부터 상기 3D 공간 내에 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링하고, 상기 직접 광 시점과 독립적으로 상기 복수 개의 셀에 적어도 하나의 제2 VPL을 샘플링하는 샘플링부
    를 포함하는 영상 처리 장치.
  17. 제16항에 있어서,
    상기 분할부는,
    상기 3D 공간을 회귀적으로 분할하여 상기 복수 개의 셀을 생성하며,
    상기 회귀적인 분할은 이전 단계에서 분할되어 생성된 개별 셀이 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 분할되는 것인 영상 처리 장치.
  18. 제16항에 있어서,
    상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 적어도 하나의 이웃 VPL의 밝기를 가중 평균하여 상기 제2 VPL의 밝기를 계산하는 계산부
    를 더 포함하는 영상 처리 장치.
  19. 영상 처리 장치의 샘플링부가, 직접 광 시점으로부터 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링하고, 상기 직접 광 시점과 독립적으로 3D 공간 상에 제2 VPL을 샘플링하는 단계; 및
    상기 영상 처리 장치의 계산부가, 상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 것들을 이용하여 상기 제2 VPL의 밝기를 계산하는 단계
    를 포함하는 영상 처리 방법.
  20. 제19항에 있어서,
    상기 영상 처리 장치의 분할부가, 상기 3D 공간을 클러스터링 하여 복수 개의 셀을 생성하는 단계
    를 더 포함하고, 상기 샘플링하는 단계는 상기 복수 개의 셀 중 제1 셀에 상기 제2 VPL을 샘플링하는 영상 처리 방법.
  21. 제20항에 있어서,
    상기 계산하는 단계는, 상기 복수 개의 셀의 계층 구조를 참고하여 상기 적어도 하나의 제1 VPL 중 상기 제2 VPL과 임계 거리 이하에 위치한 적어도 하나의 이웃 VPL을 탐색하고, 상기 적어도 하나의 이웃 VPL의 밝기를 가중 평균하여 상기 제2 VPL의 밝기를 계산하는 영상 처리 방법.
  22. 직접광 시점과 독립적으로, 3D 공간의 특성을 반영하여 복수의 VPL(Virtual Point Light)들을 샘플링하는 단계;
    상기 VPL들을 상기 3D 공간 상에 배치하는 단계; 및
    상기 VPL들을 이용하여 상기 3D 공간을 렌더링하는 단계
    를 포함하는 영상 처리 방법.
  23. 제22항에 있어서,
    상기 3D 공간을 클러스터링하여 복수 개의 셀로 분할하는 단계
    를 더 포함하고,
    상기 복수 개의 VPL들은 상기 3D 공간상의 특성에 따라 상기 복수 개의 셀 중 적어도 일부에 샘플링되는 영상 처리 방법.
  24. 제23항에 있어서
    상기 분할하는 단계는, 상기 3D 공간을 회귀적으로 분할하여 상기 복수 개의 셀을 생성하며, 상기 회귀적인 분할은 이전 단계에서 분할되어 생성된 개별 셀이 미리 결정된 분할 종료 조건을 만족할 때까지 반복하여 분할되는 것인 영상 처리 방법.
  25. 제24항에 있어서,
    상기 미리 결정된 분할 종료 조건은, 상기 개별 셀에 포함되는 버텍스의 전부가 상기 직접 광의 위치로부터 가시 영역에 있다고 판단될 것, 및 상기 개별 셀에 임계 밀도 이상의 VPL이 이미 샘플링 되어 있는 것으로 판단될 것 중 적어도 하나를 만족하는 것인 영상 처리 방법.
  26. 영상 처리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체에 있어서, 상기 영상 처리 방법은:
    직접 광 시점으로부터 적어도 하나의 제1 VPL(Virtual Point Light)을 샘플링하고, 상기 직접 광 시점과 독립적으로 3D 공간 상에 제2 VPL을 샘플링하는 단계; 및
    상기 적어도 하나의 제1 VPL 중, 상기 제2 VPL에 인접한 것들을 이용하여 상기 제2 VPL의 밝기를 계산하는 단계
    를 포함하는 컴퓨터 판독 가능 기록 매체.
  27. 영상 처리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체에 있어서, 상기 영상 처리 방법은:
    직접광 시점과 독립적으로, 3D 공간의 특성을 반영하여 복수의 VPL(Virtual Point Light)들을 샘플링하는 단계;
    상기 VPL들을 상기 3D 공간 상에 배치하는 단계; 및
    상기 VPL들을 이용하여 상기 3D 공간을 렌더링하는 단계
    를 포함하는 컴퓨터 판독 가능 기록 매체.
KR1020130124510A 2013-07-16 2013-10-18 영상 처리 장치 및 방법 KR102211142B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014132858A JP6482193B2 (ja) 2013-07-16 2014-06-27 映像処理装置及び方法
US14/325,684 US9715758B2 (en) 2013-07-16 2014-07-08 Image processing apparatus and method using virtual point light (VPL) information
EP14176951.3A EP2827302B1 (en) 2013-07-16 2014-07-14 Image processing apparatus and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130083682 2013-07-16
KR1020130083682 2013-07-16

Publications (2)

Publication Number Publication Date
KR20150009906A true KR20150009906A (ko) 2015-01-27
KR102211142B1 KR102211142B1 (ko) 2021-02-04

Family

ID=52481914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130124510A KR102211142B1 (ko) 2013-07-16 2013-10-18 영상 처리 장치 및 방법

Country Status (3)

Country Link
EP (1) EP2827302B1 (ko)
JP (1) JP6482193B2 (ko)
KR (1) KR102211142B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10403034B2 (en) 2014-05-09 2019-09-03 Samsung Electronics Co., Ltd. Image processing method and apparatus for rendering an image based on virtual point light (VPL) samplings
US10657706B2 (en) 2016-01-04 2020-05-19 Samsung Electronics Co., Ltd. 3D rendering method and apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243280B (zh) * 2015-10-30 2018-02-02 西安电子科技大学 基于cpu与gpu混合异步并行方式的时域物理光学计算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137511A1 (en) * 2001-04-23 2003-07-24 Naruki Aruga Electromagnetic wave simulation device and method, amd three-dimensional model data creation apparatus
KR20110031643A (ko) * 2009-09-21 2011-03-29 삼성전자주식회사 영상 처리 장치 및 방법
KR20120007398A (ko) * 2010-07-14 2012-01-20 삼성전자주식회사 영상 처리 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2669599B2 (ja) * 1994-09-16 1997-10-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 陰影描画方法及び3次元グラフィック・コンピュータ・システム
KR20110014795A (ko) * 2009-08-06 2011-02-14 삼성전자주식회사 영상 처리 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137511A1 (en) * 2001-04-23 2003-07-24 Naruki Aruga Electromagnetic wave simulation device and method, amd three-dimensional model data creation apparatus
KR20110031643A (ko) * 2009-09-21 2011-03-29 삼성전자주식회사 영상 처리 장치 및 방법
KR20120007398A (ko) * 2010-07-14 2012-01-20 삼성전자주식회사 영상 처리 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10403034B2 (en) 2014-05-09 2019-09-03 Samsung Electronics Co., Ltd. Image processing method and apparatus for rendering an image based on virtual point light (VPL) samplings
US10657706B2 (en) 2016-01-04 2020-05-19 Samsung Electronics Co., Ltd. 3D rendering method and apparatus

Also Published As

Publication number Publication date
KR102211142B1 (ko) 2021-02-04
EP2827302A3 (en) 2016-01-13
JP6482193B2 (ja) 2019-03-13
EP2827302A2 (en) 2015-01-21
EP2827302B1 (en) 2022-05-25
JP2015022761A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
KR102223064B1 (ko) 영상 처리 장치 및 방법
US11734879B2 (en) Graphics processing using directional representations of lighting at probe positions within a scene
EP3035292B1 (en) 3d rendering method and apparatus
US8619078B2 (en) Parallelized ray tracing
CN108090947B (zh) 一种面向3d场景的光线追踪优化方法
US20110316855A1 (en) Parallelized Streaming Accelerated Data Structure Generation
JP2022091849A (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
Ernst et al. Early split clipping for bounding volume hierarchies
US10157494B2 (en) Apparatus and method for processing virtual point lights in an image
KR20150046643A (ko) 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
KR20150114767A (ko) 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치
KR20170034727A (ko) 그림자 정보 저장 방법 및 장치, 3d 렌더링 방법 및 장치
KR20150039496A (ko) 이전 렌더링의 결과를 이용하여 광선을 추적하는 방법 및 장치
KR101601687B1 (ko) 영상 처리 장치 및 방법
KR20170081335A (ko) 3d 렌더링 방법 및 장치
KR102211142B1 (ko) 영상 처리 장치 및 방법
US9715758B2 (en) Image processing apparatus and method using virtual point light (VPL) information
KR101585998B1 (ko) 영상 처리 장치 및 방법
KR20120062542A (ko) 영상 처리 장치 및 방법
CA2835490A1 (en) A system and a method for determining approximate set of visible objects in beam tracing
de Berg et al. Binary space partitions: The painter’s algorithm
KR101630181B1 (ko) 영상 처리 장치 및 방법
JP2023548028A (ja) 境界ボリューム階層生成
CN118172459A (zh) 一种倾斜摄影模型渲染方法及渲染系统
Sukys Light probe cloud generation for games

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