KR20130124618A - 영상 처리 장치 및 방법 - Google Patents
영상 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR20130124618A KR20130124618A KR1020120047839A KR20120047839A KR20130124618A KR 20130124618 A KR20130124618 A KR 20130124618A KR 1020120047839 A KR1020120047839 A KR 1020120047839A KR 20120047839 A KR20120047839 A KR 20120047839A KR 20130124618 A KR20130124618 A KR 20130124618A
- Authority
- KR
- South Korea
- Prior art keywords
- rendering
- texture
- result
- pass
- pixel
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
영상 처리 장치가 제공된다. 영상 처리 장치의 렌더부는 오브젝트에 대하여 멀티패스 렌더링 기법을 이용하여 N 개의 패스 각각에 대해 렌더링을 수행할 수 있다. 그리고, 영상 처리 장치에는 상기 N 개의 패스 중 최종 결과 영상을 생성하는 과정에 대응하는 제1 패스 렌더링을 진행하는 중, 상기 제1 패스 렌더링과 상이한 제2 패스 렌더링이 요구되는 적어도 하나의 픽셀 정보를 저장하는 텍스처 버퍼가 포함될 수 있다.
Description
영상 처리 장치 및 방법에 연관되며, 보다 특정하게는 고성능 3D(3-Dimensional) 그래픽스 및 멀티미디어 데이터 프로세싱을 수행하는 영상 처리 장치 및 방법에 연관된다.
실시간(Real-time) 3D 렌더링(Rendering)에서는 한 단계의 렌더링 결과를 다음 단계에서 텍스처(Texture)로 사용하는 경우가 있다. 이러한 방법을 멀티패스 렌더링(Multi-Pass Rendering)이라고 한다.
멀티패스 렌더링은 한 오브젝트(object)에 대한 반사(reflection)를 표현하거나 섀도우(shadow)를 표현하는 데에 사용되기도 한다.
그런데, 멀티패스 렌더링의 경우 일반적으로 텍스처로 사용할 이미지를 먼저 렌더링한 후 최종 이미지 렌더링 시에 해당 이미지를 재활용하게 되는 과정을 거치면서, 최종 이미지 렌더링에 필요한 부분뿐만 아니라 필요하지 않은 부분에 대해서도 렌더링 연산을 수행하게 될 수도 있다.
예를 들어 최종 이미지 렌더링을 2개의 패스로 나누어 렌더링을 수행하는 경우, 첫 번째 패스에서 렌더링 한 결과 중 일부만이 두 번째 패스에서의 최종 이미지 렌더링에 활용될 수 있다.
일측에 따르면, 오브젝트에 대한 제1 렌더링을 수행하는 렌더부, 및 상기 제1 렌더링 결과에 따라 상기 제1 렌더링과 별도로 수행되는 제2 렌더링에서 텍스처 계산이 요구되는 픽셀 정보를 저장하는 텍스처 버퍼를 포함하고, 상기 렌더부는 상기 픽셀 정보를 이용하여 상기 제2 렌더링을 수행하는 영상 처리 장치가 제공된다.
일실시예에 따르면, 상기 렌더부는 상기 제2 렌더링의 결과를 이용하여 상기 제1 렌더링을 완료하여, 상기 오브젝트에 대한 결과 영상을 생성할 수 있다.
일실시예에 따르면, 상기 제1 렌더링 및 상기 제2 렌더링은 멀티패스 렌더링 기법에 따라 수행되는 별개의 렌더링 패스에 각각 대응하는 것일 수 있다.
이 경우, 상기 제2 렌더링은 상기 멀티패스 렌더링 기법에 따라 상기 제1 렌더링의 수행에 이용되는 텍스처 정보를 생성하는 과정에 대응하는 것일 수 있다.
한편, 상기 렌더부는 멀티패스 렌더링 기법에 따라 적어도 하나의 패스에 대한 렌더링을 수행할 수 있다.
일실시예에 따르면, 상기 렌더부는, 상기 오브젝트에 대한 결과 영상의 렌더링 영역을 복수 개의 타일로 분할하는 타일링부, 상기 복수 개의 타일 중 적어도 하나에 대해 상기 오브젝트에 대응하는 픽셀 위치를 계산하는 래스터라이제이션부, 상기 픽셀 위치에 대응하여 비저블리티 테스트를 수행하는 비저블리티 테스트부, 및 상기 비저블리티 테스트 결과에 대응하여 텍스처링 및 섀이딩을 수행하는 텍스처/섀이딩부를 포함할 수 있다.
이 경우, 상기 텍스처/섀이딩부는 상기 제1 렌더링 과정에서 상기 제2 렌더링이 필요한 적어도 하나의 픽셀을 결정할 수 있으며, 텍스처 버퍼는 상기 적어도 하나의 픽셀의 정보를 저장할 수 있다.
일실시예에 따르면, 상기 텍스처 버퍼는 상기 적어도 하나의 픽셀 정보를 마스킹하여 저장할 수 있다.
일실시예에 따르면, 상기 영상 처리 장치는, 상기 제1 렌더링 결과를 제1 프레임 버퍼 오브젝트로 저장하고, 상기 제2 렌더링 결과를 제2 프레임 버퍼 오브젝트로 저장하는 프레임 버퍼를 더 포함할 수 있다.
다른 일측에 따르면, 오브젝트에 대하여 멀티패스 렌더링 기법을 이용하여 N 개의 패스 각각에 대해 렌더링을 수행하는 렌더부 - 상기 N은 자연수 -, 상기 N 개의 패스 중 최종 결과 영상을 생성하는 과정에 대응하는 제1 패스 렌더링을 진행하는 중, 상기 제1 패스 렌더링과 상이한 제2 패스 렌더링이 요구되는 적어도 하나의 픽셀 정보를 저장하는 텍스처 버퍼, 및 상기 제2 패스 렌더링 및 상기 제1 패스 렌더링 결과를 반영한 상기 최종 결과 영상에 대한 렌더링 결과를 저장하는 프레임 버퍼를 포함하는 영상 처리 장치가 제공된다.
또 다른 일측에 따르면, 렌더부가 오브젝트에 대한 제1 렌더링을 수행하는 단계, 상기 제1 렌더링 결과에 따라 상기 제1 렌더링과 별도로 수행되는 제2 렌더링에서 텍스처 계산이 요구되는 픽셀 정보를 텍스처 버퍼에 저장하는 단계, 및 상기 렌더부가 상기 픽셀 정보를 이용하여 상기 오브젝트에 대한 제2 렌더링을 수행하는 단계를 포함하는 영상 처리 방법이 제공된다.
일실시예에 따르면, 상기 영상 처리 방법은, 상기 렌더부가 상기 제2 렌더링의 결과를 이용하여 상기 제1 렌더링을 완료하여, 상기 오브젝트에 대한 결과 영상을 생성하는 단계를 더 포함할 수 있다.
한편, 상기 제1 렌더링 및 상기 제2 렌더링은 멀티패스 렌더링 기법에 따라 수행되는 별개의 렌더링 패스에 각각 대응하는 것일 수 있다.
이 경우, 상기 제2 렌더링은 상기 멀티패스 렌더링 기법에 따라 상기 제1 렌더링의 수행에 이용되는 텍스처 정보를 생성하는 과정에 대응하는 것일 수 있다.
일실시예에 따르면, 상기 제1 렌더링을 수행하는 단계는, 상기 오브젝트에 대한 결과 영상의 렌더링 영역을 복수 개의 타일로 분할하는 타일링 단계, 상기 복수 개의 타일 중 적어도 하나에 대해 상기 오브젝트에 대응하는 픽셀 위치를 계산하는 래스터라이제이션 단계, 상기 픽셀 위치에 대응하여 비저블리티 테스트를 수행하는 비저블리티 테스트 단계, 및 상기 비저블리티 테스트 결과에 대응하여 텍스처링 및 섀이딩을 수행하는 텍스처/섀이딩 단계를 포함할 수 있다.
이 경우, 상기 텍스처/섀이딩부 단계는, 상기 제1 렌더링 과정에서 상기 제2 렌더링이 필요한 적어도 하나의 픽셀을 결정하는 단계, 및 텍스처 버퍼가 상기 적어도 하나의 픽셀의 정보를 저장하는 단계를 포함할 수 있다.
도 1은 일실시예에 따른 영상 처리 장치의 블록도이다.
도 2는 일실시예에 따른 영상 처리 장치의 렌더부의 예시적 구성을 도시하는 세부 블록도이다.
도 3은 일실시예에 따른 영상 처리 장치의 프레임 버퍼의 예시적 구성을 도시하는 세부 블록도이다.
도 4는 일실시예에 따른 영상 처리 방법을 설명하기 위한 예시적 3D 모델 오브젝트를 도시하는 도면이다.
도 5는 일실시예에 따라 도 4의 예시적 3D 모델을 결과 영상에 대응하는 시점에서 바라본 모습을 도시하는 도면이다.
도 6은 일실시예에 따른 영상 처리 방법을 도시하는 예시적 흐름도이다.
도 7은 일실시예에 따라 도 4의 예시적 3D 모델에 영상 처리 방법을 적용하는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따른 영상 처리 방법에 따라 N 패스의 렌더링 결과를 이용하여 N-1 패스의 렌더링을 수행하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따른 영상 처리 방법을 도시하는 예시적 흐름도이다.
도 2는 일실시예에 따른 영상 처리 장치의 렌더부의 예시적 구성을 도시하는 세부 블록도이다.
도 3은 일실시예에 따른 영상 처리 장치의 프레임 버퍼의 예시적 구성을 도시하는 세부 블록도이다.
도 4는 일실시예에 따른 영상 처리 방법을 설명하기 위한 예시적 3D 모델 오브젝트를 도시하는 도면이다.
도 5는 일실시예에 따라 도 4의 예시적 3D 모델을 결과 영상에 대응하는 시점에서 바라본 모습을 도시하는 도면이다.
도 6은 일실시예에 따른 영상 처리 방법을 도시하는 예시적 흐름도이다.
도 7은 일실시예에 따라 도 4의 예시적 3D 모델에 영상 처리 방법을 적용하는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따른 영상 처리 방법에 따라 N 패스의 렌더링 결과를 이용하여 N-1 패스의 렌더링을 수행하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따른 영상 처리 방법을 도시하는 예시적 흐름도이다.
이하에서, 일부 실시예들를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 영상 처리 장치(100)의 블록도이다.
일실시예에 따르면, 영상 처리 장치(100)는 렌더부(110) 및 텍스처 버퍼(T-버퍼)(130)을 포함할 수 있다.
일실시예에 따르면, 렌더부(110)는 멀티패스(Multi-pass) 렌더링 기법에 따라, 3D 모델에 대한 렌더링을 수행한다.
상기 렌더링에는 복수 개의 렌더링 패스가 포함될 수 있다. 이러한 렌더링 패스들은 순차적으로 수행될 수 있으며, 다른 실시예에서는 적어도 부분적으로는 병렬 수행될 수도 있다.
일실시예에 따르면, 영상 처리 장치(100)의 렌더부(110)는 복수 개의 렌더링 패스 중 최종 결과 영상 생성에 대응하는 렌더링 패스(이하에서는 '제1 렌더링'이라고도 함)를 다른 렌더링 패스들(이하에서는 '제2 렌더링'이라고도 함)에 앞서서 진행한다.
통상적으로 멀티패스 렌더링에 있어서는, 제2 렌더링 결과에 해당하는 텍스처 정보 등이 최종 결과 영상 생성에 대응하는 제1 렌더링에 적어도 부분적으로는 이용되기 때문에, 제2 렌더링을 먼저 진행하였으나, 일실시예에 따르면, 제1 렌더링을 먼저 진행한다.
그리고, 먼저 진행되는 상기 제1 렌더링 결과로부터, 제2 렌더링에서 텍스처 정보를 렌더링 해야 할 픽셀들이 결정되며, 그 결정에 따른 픽셀 위치 정보 등은 텍스처 버퍼(130)에 저장될 수 있다.
일실시예에 따르면, 상기 렌더부(110)는 상기 픽셀 정보를 이용하여 상기 제2 렌더링을 수행한다.
그리고, 렌더부(110)는 상기 제2 렌더링의 결과, 이를테면 텍스처/섀이딩 결과를 이용하여 상기 제1 렌더링을 완료한다.
일실시예에 따르면, 제1 렌더링 과정에서 렌더링 결과는 프레임 버퍼(120)에 저장되며, 상기 제2 렌더링 진행 후 그 결과에 따라 프레임 버퍼(120)가 업데이트 됨으로써 결과 영상이 생성될 수 있다.
보다 상세한 영상 처리 장치의 구성 및 동작에 대해서는 도 2 내지 도 3을 참조하여 설명한다.
도 2는 일실시예에 따른 영상 처리 장치의 렌더부의 예시적 구성을 도시하는 세부 블록도이다.
일실시예에 따르면, 멀티패스 렌더링을 수행하는 과정에서 영상 처리 장치(100)의 렌더부(110)는 렌더링 할 오브젝트를 렌더링 시점, 즉 카메라 시점에서 바라 본 영상을 복수 개의 타일로 분할하는 타일링부(210)를 포함할 수 있다.
이러한 타일링(Tiling) 결과 생성되는 타일들 각각에 대하여, 래스터라이제이션부(220)는 상기 오브젝트에 대응하여 렌더링 될 픽셀 위치를 계산할 수 있다.
그리고, 비저블리티(Visibility) 테스트부(230)는 계산된 픽셀 위치들에 대응하여 비저블리티 테스트를 통하여 픽셀 값의 섀이딩이 필요한지 여부를 판단하게 된다.
그러면 텍스처/섀이딩부(240)는 픽셀들 각각에 대하여 칼라 값을 계산하는 텍스처링(Texturing)/섀이딩(Shading)을 수행하여 칼라 값들을 계산하게 된다.
일실시예에 따르면, 제1 렌더링 진행 과정에서 상기 텍스처/섀이딩부는(240)가 제2 렌더링을 통해 텍스처 정보를 계산해야 할 픽셀들의 위치를 결정할 수 있다.
이렇게 계산된 픽셀들 위치는 도 1의 텍스처 버퍼(130)에 마스킹되어 제2 렌더링 과정에서 참조될 수 있다.
일실시예에 따르면, 렌더부(110)는 타일링부(210) 내지 텍스처/섀이딩부(240)의 구성을 포함하는 단위 유닛을 복수 개 포함할 수도 있으며, 이 경우 개별 단위 유닛은 멀티패스 렌더링 과정에 포함되는 복수 개의 렌더링 패스를 순차적으로 수행하거나 및/또는 적어도 부분적으로는 병렬 수행할 수 있다.
한편, 렌더부(110)에 포함되는 세부 구성은 예시적인 것에 불과하므로, 일실시예에 따르면 렌더링 기법에 따라 적어도 일부 구성은 생략되거나, 또는 두 개 이상의 구성이 하나의 물리적 유닛으로 구성될 수도 있다.
멀티패스 렌더링 과정에서, 개별 패스들에 대한 렌더링 결과는 프레임 버퍼(120)에 저장될 수 있는데, 도 3은 일실시예에 따른 영상 처리 장치(100)의 프레임 버퍼(120)의 예시적 구성을 도시하는 세부 블록도이다.
일실시예에 따르면, 프레임 버퍼(120)에는 각 렌더링 패스들 각각에 대응하는 복수 개의 프레임 버퍼 오브젝트(Frame Buffer Object, FBO)들이 포함될 수 있다.
예시적으로, 멀티패스 렌더링 과정에서 N 개의 렌더링 패스들이 포함된다면, FBO 0(310) 내지 FBO N-1(340)들 각각에는 N 개의 렌더링 패스의 결과가 저장될 수 있다.
상기한 바와 같이, 일실시예에 따르면, 영상 처리 장치(100)는 렌더링 할 오브젝트에 대하여 멀티패스 렌더링 기법을 이용하여 N 개의 패스 각각에 대해 렌더링을 수행하되 - 상기 N은 자연수 -, 상기 N 개의 패스 중 최종 결과 영상을 생성하는 과정에 대응하는 제1 패스 렌더링을 다른 렌더링 패스에 앞서서 먼저 진행할 수 있다.
이 과정에서 다른 패스들에서 렌더링을 수행하여야 할 픽셀 정보가 상기 텍스처 버퍼(130)에 저장될 수 있으며, 제1 패스 렌더링 결과는 예시적으로 FBO 0(310)에 저장되었다가, 다른 패스들에 대한 렌더링 결과가 도출된 이후에 다른 FBO들(320 내지 340)의 결과를 이용하여 FBO 0(310)를 업데이트 하는 과정이 진행될 수 있다.
이하에서는 구체적이고 예시적인 3D 모델 오브젝트를 참조하여 보다 상세히 영상 처리 장치(100)의 동작을 설명한다.
도 4는 일실시예에 따른 영상 처리 방법을 설명하기 위한 예시적 3D 모델 오브젝트를 도시하는 도면(400)이다.
3D 모델 오브젝트(410) 및 오브젝트(420)이 그라운드(430) 상에 배치되어 있다. 일실시예에 따르면, 특정 시점(Point of view)에서 상기 3D 모델을 바라본 결과 영상이 렌더링된다.
이러한 렌더링은 멀티패스 렌더링 기법에 의한 것일 수 있다. 상기한 바와 같이, 멀티패스 렌더링은, 복수 개의 렌더링 패스들에서 3D 모델을 렌더링 하는 과정으로 이해될 수 있다.
각 패스들은 3D 모델의 적어도 일부의 오브젝트에 대해 도 2를 참조하여 상술한 래스터라이제이션, 비저블리티 테스트, 텍스처링/섀이딩 등을 수행하는 렌더링 과정에 대응할 수 있다.
이를 테면, N 개의 패스(여기서 N은 자연수)에서 상기 3D 모델에 대하여 적어도 일부 오브젝트들에 대한 렌더링이 분할적으로 수행되며, N-1 번째 패스의 렌더링 결과인 텍스처(Texture) 정보가 N 번째 패스의 렌더링에 활용될 수 있다. 멀티패스 렌더링 과정에서는 상기 방식으로, N-2 번째의 렌더링 결과인 텍스처 정보는 상기 N-1 번째 패스의 렌더링 결과에 이용될 수도 있다.
한편, 상기 N 번째 패스의 렌더링은 상기 3D 모델을 상기 특정 시점에서 바라본 결과 영상을 최종적으로 생성하는 과정일 수 있다. 다만, 이는 일실시예에 불과하며, 상기 N 번째 패스의 렌더링은 상기 3D 모델을 상기 특정 시점에서 바라 본 결과 영상을 생성하는 멀티패스 렌더링 과정의 임의의 한 패스의 렌더링에 대응하는 것일 수 있다. 따라서, 본 명세서 전반에 걸쳐서, 상기 N 번째 패스의 렌더링이 상기 결과 영상을 최종적으로 생성하는 과정인 실시예에 관해 설명할 수 있지만, 별다른 언급이 없더라도 상기 N 번째의 패스의 렌더링은 멀티패스 렌더링의 임의의 한 패스 렌더링까지 포함할 수 있는 것으로 이해되어야 한다.
일실시예에 따르면, 이러한 멀티패스 렌더링 과정에 있어서, 상기 N 번째 패스의 이전 패스, 이를테면 N-1 번째 패스의 렌더링 결과인 텍스처 정보가 다음 패스, 이를테면 N 번째 패스의 렌더링 과정에 이용되는데, 경우에 따라서는 N-1 번째 패스의 렌더링 결과인 텍스처 정보의 일부만이 N 번째 패스의 렌더링 결과에 이용될 수 있다.
그런데, N 번째 패스의 렌더링 결과에 이용되지 않는 부분까지 N-1 번째 패스 렌더링에서 텍스처링/섀이딩을 수행되는 것은 연산 자원의 오버헤드(Overhead)를 증가시킬 수 있다.
따라서, 일실시예에 따르면, 상기한 바와 같이 영상 처리 장치(100)는 N 번째 패스, 이를테면 최종 결과 영상에 대응하는 패스의 렌더링을 먼저 수행하여, N-1 번째 패스, N-2 번째 패스 등에서 텍스처링/섀이딩을 수행하여야 할 픽셀 정보를 미리 구한다.
그리고, 이렇게 구한 픽셀 정보들이 영상 처리 장치(100)의 텍스처 버퍼(T-buffer)(130)에 저장되고, 렌더부(110)가 N-1 번째 패스나 N-2 번째 패스 등의 렌더링을 수행할 때는 텍스처 버퍼(130)에 저장된 픽셀 정보에 대응하는 부분들에 대해서만 텍스처링/섀이딩을 수행한다.
그러면, 각 패스들에서 수행된 텍스처링/섀이딩 결과가 각각 도 3에 도시된 프레임버퍼 오브젝트들(310 내지 340 등)로 저장되어, N 번째 패스에서 효율적으로 최종 결과 영상을 렌더할 수 있게 된다.
그러므로, 멀티패스 렌더링 과정에서 복수 개의 패스들 사이에 불필요한 연산이 수행되는 오버헤드가 크게 줄어든다.
이러한 실시예들에 대해서는 도 5 내지 도 8를 참조하여 보다 상세히 후술한다.
도 5는 일실시예에 따라 도 4의 예시적 3D 모델을 결과 영상에 대응하는 시점에서 바라본 모습을 도시하는 도면(500)이다.
결과 영상을 렌더할 시점, 이를테면 카메라 시점이라고도 하는 특정 시점에서 도 4의 3D 모델을 바라보면, 오브젝트(410)의 일부분은 오브젝트(420)에 가려진다(occluded).
따라서, 오브젝트 별로 패스들을 구분하여 렌더링을 수행하는 멀티패스 렌더링의 경우에, 오브젝트(410)의 전체 부분에 대해 전체 렌더링을 수행할 필요는 없다. 상기 가려진 오브젝트(410)의 일부분에 대해서는 텍스처링/섀이딩 정보가 최종 결과 영상에는 반영되지 않기 때문이다.
따라서, 일실시예에 따르면, 영상 처리 장치(100)의 렌더부(110)가 도면(500)에 대응하는 최종 결과 영상을 렌더링하는 N 번째 패스를 N-1 번째 패스, N-2 번째 패스 등에 앞서서 먼저 진행한다.
그러면, 최종 결과 영상에서 필요한 각 픽셀 정보들이 도출될 수 있으며, 이 픽셀 정보들은 텍스처 버퍼(T-buffer)(130)에 저장될 수 있다.
그리고, N-1 번째 패스, N-2 번째 패스 등의 개별 패스들에서는 상기 텍스처 버퍼(130)에 저장된 픽셀 정보 중, 해당 패스에 대응하는 정보를 참조하여 효율적으로 렌더링이 진행된다.
이러한 과정은 도 6을 참조하여 보다 구체적으로 이해될 수 있다.
도 6은 일실시예에 따른 영상 처리 방법을 도시하는 예시적 흐름도이다.
멀티패스 렌더링 기법에 있어서, 종래에는 N-1 패스(631 내지 635)를 먼저 수행하고, 프레임 버퍼 오브젝트 FBO 1에 저장된 N-1 패스의 렌더 결과가 N 패스의 텍스처링/섀이딩 단계(614)에 활용되어, 최종 결과 영상의 렌더 결과가 FBO 0에 저장되었다.
그러나, 일실시예에 따르면, 도 6에서 도시되는 바와 같이, 최종 결과 영상 렌더링에 연관된 N 패스가 N-1 패스 등에 앞서서 먼저 진행된다. 즉, 멀티패스 렌더링 기법에 있어서 최종 결과 영상의 렌더링이 먼저 시작된다.
단계(611)에서 N 패스에 연관된 오브젝트들(410 및 420) 및 백그라운드까지 모두 고려하여, 영상 타일링(Tiling)이 수행된다. 이러한 타일링 과정은 타일(Tile) 별로 렌더링을 수행하는 과정으로서, 선택적(Optional)한 구성일 수 있다.
그리고, 단계(612)에서 타일 별로 해당 타일의 픽셀 위치 정보 등이 계산되는 래스터라이제이션(Rasterization)이 수행된다.
또한, 이러한 과정에서 비저블리티 테스트가 수행되어(613), 최종 결과 영상에서 텍스처링/섀이딩이 필요한 픽셀들이 결정된다.
그런데, 단계(614)에서 이러한 픽셀들에 대해 텍스처링/섀이딩을 수행하는 과정에서, 일부 픽셀들은 N 패스가 아닌 다른 패스들, 이를테면 N-1 패스에서의 텍스처 정보를 활용하여야 하는 것일 수 있다.
그러면, 단계(614)에서 N-1 패스 등 다른 패스의 텍스처 정보를 활용해야 할 픽셀들에 대해서는 해당 픽셀의 위치를 계산하는 부분까지만 수행을 하고, 위치와 나머지 연산을 수행하는데 필요한 데이터들의 정보는 도 1의 텍스처 버퍼(130)에 저장 한다. 만약 이전에 텍스처 버퍼가 기록되어 있었다면, 이러한 저장 과정은 기존 텍스처 버퍼를 업데이트 하는 과정으로 이해될 수 있다.
예를 들어, 픽셀들(601)은 다른 패스들의 텍스처링/섀이딩 결과가 필요한 부분이고, 픽셀들(602)은 N 패스의 수행만으로 최종 칼라 값이 계산될 수 있는 부분일 수 있다.
일실시예에 따르면, 이러한 부분들의 정보는 마스크(Mask) 형태로 관리될 수 있다.
상기한 바와 같이, 텍스처 버퍼(620)는 N 패스가 아닌 다른 패스들, 이를테면 N-1 패스 등에서 텍스처링/섀이딩이 요구되는 픽셀들의 위치 및/또는 칼라 계산(섀이딩)에 필요한 데이터들을 저장한다.
이 경우, 텍스처 버퍼(620)는 N-1 패스 등 다른 패스들에서 텍스처링/섀이딩을 수행하여야 할 부분들을, 패스 정보와 함께 저장할 수 있다.
그리고, N 패스에서는 다른 패스들의 렌더링 결과를 이용할 필요가 없는 픽셀들에 대해서만 칼라 값 계산까지의 과정이 완료되어, 이 칼라 값이 프레임 버퍼 오브젝트 FBO 0에 저장된다(615).
그러면, 결과 영상의 일부분은 완성되었고, 일부분은 멀티패스 렌더링에 연관된 다른 패스들, 이를테면 N-1 패스의 렌더링을 수행한 후 완성될 수 있다.
일실시예에 따르면, 그 이후에 N-1 패스 렌더링이 수행된다. 타일링(631) 및 래스터라이제이션(632) 이후의 비저블리티 테스트 과정(633)에 있어서 전체 픽셀들 중 텍스처 버퍼(620)에 저장된 정보에 따라 일부 픽셀들에 대해서만 비저블리티 테스트가 수행될 수 있다.
여기서, 렌더부(110)는 텍스처 버퍼(620)에서 N-1 패스에서의 렌더링이 필요한 것으로 마스킹(Masking)된 픽셀에 포함된 타일만을 선택하여 비저블리티 테스트 단계(633)를 수행한다.
일실시예에 따르면, 이 경우, 전체 타일 픽셀과 텍스처 버퍼(620)에서 마스킹된 픽셀을 비교하여 결과 영상에 반영될 픽셀들만에 대해서 N-1 패스에서의 텍스처링/섀이딩 단계(634)가 수행된다.
즉, 비저블리티 테스트 단계(633)를 통과한 픽셀들은 최종 결과 영상 생성에 대응하는 N 패스 렌더링의 완성에 텍스처 정보가 필요한 픽셀들일 수 있다.
그리고, 이 픽셀들에 대해 텍스처링/섀이딩이 수행(634)된 결과가 프레임 버퍼 오브젝트 FBO 1에 저장된다(635).
그리고, 이 FBO 1에 저장된 정보가 N 패스의 텍스처링/섀이딩 단계(614)에 반영되어, 다시 FBO 0이 업데이트 됨으로써 최종 결과 영상 렌더링이 완성될 수 있다.
이상의 과정 중 타일링 과정 및 텍스처 버퍼 업데이트 과정에 대해서는 도 7 내지 도 8을 참조하여 구체적으로 설명한다.
도 7은 일실시예에 따라 도 4의 예시적 3D 모델에 영상 처리 방법을 적용하는 과정을 설명하기 위한 도면(700)이다.
영상 처리 장치(100)는 N 패스에 대한 렌더링하는 과정에서, 타일링을 통해 각 타일들, 이를테면 타일(710)에 대하여 래스터라이제이션 및 비저블리티 테스트를 수행한다(612 및 613). 그러면, 타일 별로 텍스처링/섀이딩이 요구되는 픽셀들의 위치가 계산된다.
이 과정에서, 도 6을 참조하여 상술한 바와 같이 N 패스가 아닌 이전의 패스들, 이를테면 N-1 패스에서 텍스처링/섀이딩을 수행한 결과가 필요한 픽셀들이 도 6의 텍스처 버퍼(620)에 마스킹된다.
그러면, N-1 패스의 렌더링이 진행되며, N-1 패스에서는 전체 타일들이 아닌, 텍스처 버퍼(610)의 마스킹 정보에 따라 N-1 패스 렌더링이 필요한 부분에 대해서만 비저블리티 테스트(633) 및 텍스처링/섀이딩 과정(634)이 수행됨으로써 연산량이 크게 줄어들 수 있다.
도 8은 일실시예에 따른 영상 처리 방법에 따라 N 패스의 렌더링 결과를 이용하여 N-1 패스의 렌더링을 수행하는 과정을 설명하기 위한 도면(800)이다.
예시적으로, 도 4의 오브젝트(410)이 N-1 패스에서 렌더링되는 것을 가정하면, 종래의 멀티패스 렌더링에 따른 N-1 패스 렌더링에서는 최종 영상에 반영되는 부분들(810)이 아닌 오브젝트(420)에 가려져서(occluded) 최종 영상에 반영되지 않는 부분들(820)에도 N-1 패스 렌더링이 진행되었다.
그러나, 일실시예에 따른 영상 처리 방법에서는 이러한 불필요한 부분들(820)에는 비저블리티 테스트(633) 및 텍스처링/섀이딩 과정(634)이 생략될 수 있다.
따라서, 최종 영상에 반영되어야 할 픽셀들(811)에 대해서만 비저블리티 테스트(633) 및 텍스처링/섀이딩 과정(634)이 수행된 결과가 프레임 버퍼 오브젝트 FBO 1에 저장된다. 그리고, 이러한 결과는 N 패스 렌더링에 활용되어, 최종 영상을 렌더링하는 과정에 반영된다.
도 9는 일실시예에 따른 영상 처리 방법을 도시하는 예시적 흐름도이다.
일실시예에 따르면, N 개의 패스 - N은 자연수 - 각각에 대해 렌더링을 수행하는 멀티패스 렌더링이 수행된다.
단계(910)에서 도 1의 렌더부(110)는 오브젝트에 대한 최종 결과 영상 생성에 대응하는 N Pass 렌더링(제1 렌더링)을 먼저 수행할 수 있다.
그리고 단계(920)에서는 상기 제1 렌더링 결과에 따라 상기 제1 렌더링과 별도로 수행되는 제2 렌더링에서의 텍스처 계산이 필요한 픽셀 정보가 결정되어, 결정된 내용이 텍스처 버퍼(130)에 저장된다.
그리고, 단계(930)에서는 상기 렌더부(110)가 상기 픽셀 정보를 이용하여 상기 오브젝트에 대한 N-1 패스 렌더링(제2 렌더링)을 진행할 수 있다.
이 N-1 패스 렌더링 결과가 프레임 버퍼 FBO 1에 저장되며(단계 940), FBO 1의 내용을 참조하여 N 패스 렌더링이 마저 진행될 수 있다(단계 950).
그러면, 단계(960)에서는 단계(910) 과정에서 이미 계산된 픽셀 값과 함께 단계(950)의 렌더링 과정에 따른 픽셀 값이 추가로 반영되어, 최종적인 FBO 0이 작성된다. 그러면, 최종 결과 영상이 생성될 수 있다.
상기 일실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예들에 따른 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 실시예와 도면에 의해 설명되었으나, 상기의 실시예에 한정되는 것은 아니며, 이 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Claims (17)
- 오브젝트에 대한 제1 렌더링을 수행하는 렌더부; 및
상기 제1 렌더링 결과에 따라 상기 제1 렌더링과 별도로 수행되는 제2 렌더링에서 텍스처 계산이 요구되는 픽셀 정보를 저장하는 텍스처 버퍼
를 포함하고, 상기 렌더부는 상기 픽셀 정보를 이용하여 상기 제2 렌더링을 수행하는 영상 처리 장치. - 제1항에 있어서,
상기 렌더부는 상기 제2 렌더링의 결과를 이용하여 상기 제1 렌더링을 완료하여, 상기 오브젝트에 대한 결과 영상을 생성하는 영상 처리 장치. - 제1항에 있어서,
상기 제1 렌더링 및 상기 제2 렌더링은 멀티패스 렌더링 기법에 따라 수행되는 별개의 렌더링 패스에 각각 대응하는 영상 처리 장치. - 제3항에 있어서,
상기 제2 렌더링은 상기 멀티패스 렌더링 기법에 따라 상기 제1 렌더링의 수행에 이용되는 텍스처 정보를 생성하는 과정에 대응하는 영상 처리 장치. - 제1항에 있어서,
상기 렌더부는 멀티패스 렌더링 기법에 따라 적어도 하나의 패스에 대한 렌더링을 수행하는 영상 처리 장치. - 제5항에 있어서,
상기 렌더부는,
상기 오브젝트에 대한 결과 영상의 렌더링 영역을 복수 개의 타일로 분할하는 타일링부;
상기 복수 개의 타일 중 적어도 하나에 대해 상기 오브젝트에 대응하는 픽셀 위치를 계산하는 래스터라이제이션부;
상기 픽셀 위치에 대응하여 비저블리티 테스트를 수행하는 비저블리티 테스트부; 및
상기 비저블리티 테스트 결과에 대응하여 텍스처링 및 섀이딩을 수행하는 텍스처/섀이딩부
를 포함하는 영상 처리 장치. - 제6항에 있어서,
상기 텍스처/섀이딩부는 상기 제1 렌더링 과정에서 상기 제2 렌더링이 필요한 적어도 하나의 픽셀을 결정하고,
텍스처 버퍼는 상기 적어도 하나의 픽셀의 정보를 저장하는 영상 처리 장치. - 제7항에 있어서,
상기 텍스처 버퍼는 상기 적어도 하나의 픽셀 정보를 마스킹하여 저장하는 영상 처리 장치. - 제1항에 있어서,
상기 제1 렌더링 결과를 제1 프레임 버퍼 오브젝트로 저장하고, 상기 제2 렌더링 결과를 제2 프레임 버퍼 오브젝트로 저장하는 프레임 버퍼
를 더 포함하는 영상 처리 장치. - 오브젝트에 대하여 멀티패스 렌더링 기법을 이용하여 N 개의 패스 각각에 대해 렌더링을 수행하는 렌더부 - 상기 N은 자연수 -;
상기 N 개의 패스 중 최종 결과 영상을 생성하는 과정에 대응하는 제1 패스 렌더링을 진행하는 중, 상기 제1 패스 렌더링과 상이한 제2 패스 렌더링이 요구되는 적어도 하나의 픽셀 정보를 저장하는 텍스처 버퍼; 및
상기 제2 패스 렌더링 및 상기 제1 패스 렌더링 결과를 반영한 상기 최종 결과 영상에 대한 렌더링 결과를 저장하는 프레임 버퍼
를 포함하는 영상 처리 장치. - 렌더부가 오브젝트에 대한 제1 렌더링을 수행하는 단계;
상기 제1 렌더링 결과에 따라 상기 제1 렌더링과 별도로 수행되는 제2 렌더링에서 텍스처 계산이 요구되는 픽셀 정보를 텍스처 버퍼에 저장하는 단계; 및
상기 렌더부가 상기 픽셀 정보를 이용하여 상기 오브젝트에 대한 제2 렌더링을 수행하는 단계
를 포함하는 영상 처리 방법. - 제11항에 있어서,
상기 렌더부가 상기 제2 렌더링의 결과를 이용하여 상기 제1 렌더링을 완료하여, 상기 오브젝트에 대한 결과 영상을 생성하는 단계
를 더 포함하는 영상 처리 방법. - 제11항에 있어서,
상기 제1 렌더링 및 상기 제2 렌더링은 멀티패스 렌더링 기법에 따라 수행되는 별개의 렌더링 패스에 각각 대응하는 영상 처리 방법. - 제13항에 있어서,
상기 제2 렌더링은 상기 멀티패스 렌더링 기법에 따라 상기 제1 렌더링의 수행에 이용되는 텍스처 정보를 생성하는 과정에 대응하는 영상 처리 방법. - 제11항에 있어서,
상기 제1 렌더링을 수행하는 단계는,
상기 오브젝트에 대한 결과 영상의 렌더링 영역을 복수 개의 타일로 분할하는 타일링 단계;
상기 복수 개의 타일 중 적어도 하나에 대해 상기 오브젝트에 대응하는 픽셀 위치를 계산하는 래스터라이제이션 단계;
상기 픽셀 위치에 대응하여 비저블리티 테스트를 수행하는 비저블리티 테스트 단계; 및
상기 비저블리티 테스트 결과에 대응하여 텍스처링 및 섀이딩을 수행하는 텍스처/섀이딩 단계
를 포함하는 영상 처리 방법. - 제15항에 있어서,
상기 텍스처/섀이딩부 단계는 상기 제1 렌더링 과정에서 상기 제2 렌더링이 필요한 적어도 하나의 픽셀을 결정하는 단계; 및
텍스처 버퍼가 상기 적어도 하나의 픽셀의 정보를 저장하는 단계
를 포함하는 영상 처리 방법. - 제11항 내지 제16항 중 어느 한 항에 있어서, 상기 영상 처리 방법을 수행하는 프로그램을 포함한 컴퓨터 판독 가능 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120047839A KR20130124618A (ko) | 2012-05-07 | 2012-05-07 | 영상 처리 장치 및 방법 |
US13/793,907 US20130293543A1 (en) | 2012-05-07 | 2013-03-11 | Image processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120047839A KR20130124618A (ko) | 2012-05-07 | 2012-05-07 | 영상 처리 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130124618A true KR20130124618A (ko) | 2013-11-15 |
Family
ID=49512180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120047839A KR20130124618A (ko) | 2012-05-07 | 2012-05-07 | 영상 처리 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130293543A1 (ko) |
KR (1) | KR20130124618A (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107393502B (zh) * | 2011-12-14 | 2019-11-05 | 英特尔公司 | 用于多遍渲染的技术 |
US10147222B2 (en) * | 2015-11-25 | 2018-12-04 | Nvidia Corporation | Multi-pass rendering in a screen space pipeline |
CN106340055A (zh) * | 2016-08-19 | 2017-01-18 | 江苏电力信息技术有限公司 | 一种基于多线程的OpenGL快速绘制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US20060071933A1 (en) * | 2004-10-06 | 2006-04-06 | Sony Computer Entertainment Inc. | Application binary interface for multi-pass shaders |
JP4260734B2 (ja) * | 2004-12-21 | 2009-04-30 | 株式会社ソニー・コンピュータエンタテインメント | 描画処理装置、ラスタライザ、および描画処理方法 |
JP4218840B2 (ja) * | 2005-05-27 | 2009-02-04 | 株式会社ソニー・コンピュータエンタテインメント | 描画処理装置および描画処理方法 |
US7369140B1 (en) * | 2005-06-03 | 2008-05-06 | Nvidia Corporation | System, apparatus and method for subpixel shifting of sample positions to anti-alias computer-generated images |
US8547382B2 (en) * | 2008-05-30 | 2013-10-01 | Advanced Micro Devices, Inc. | Video graphics system and method of pixel data compression |
GB0922126D0 (en) * | 2009-12-17 | 2010-02-03 | Advanced Risc Mach Ltd | Graphics processing systems |
US10242481B2 (en) * | 2012-03-15 | 2019-03-26 | Qualcomm Incorporated | Visibility-based state updates in graphical processing units |
-
2012
- 2012-05-07 KR KR1020120047839A patent/KR20130124618A/ko not_active Application Discontinuation
-
2013
- 2013-03-11 US US13/793,907 patent/US20130293543A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20130293543A1 (en) | 2013-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8624894B2 (en) | Apparatus and method of early pixel discarding in graphic processing unit | |
KR102223064B1 (ko) | 영상 처리 장치 및 방법 | |
US7499051B1 (en) | GPU assisted 3D compositing | |
US9639971B2 (en) | Image processing apparatus and method for processing transparency information of drawing commands | |
KR102197067B1 (ko) | 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치 | |
KR102306780B1 (ko) | 영상 처리 장치 및 방법 | |
US8717358B2 (en) | Image processing apparatus and method | |
KR20150039495A (ko) | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 | |
US8917281B2 (en) | Image rendering method and system | |
KR20150122519A (ko) | 경로 렌더링을 수행하는 방법 및 장치. | |
US10068370B2 (en) | Render-time linking of shaders | |
KR102137263B1 (ko) | 영상 처리 장치 및 방법 | |
US11631187B2 (en) | Depth buffer pre-pass | |
KR102558737B1 (ko) | 3d 렌더링 방법 및 장치 | |
KR102399686B1 (ko) | 3d 렌더링 방법 및 장치 | |
KR102558739B1 (ko) | 3d 렌더링 방법 및 장치 | |
KR20130124618A (ko) | 영상 처리 장치 및 방법 | |
US10861167B2 (en) | Graphics processing systems | |
KR101585998B1 (ko) | 영상 처리 장치 및 방법 | |
EP2728551B1 (en) | Image rendering method and system | |
KR102051903B1 (ko) | 공간 가속 구조 탐색 장치 및 방법 | |
US10297067B2 (en) | Apparatus and method of rendering frame by adjusting processing sequence of draw commands | |
KR102116976B1 (ko) | 렌더링 방법 및 장치 | |
CN110297568A (zh) | 电子白板实现方法、装置、设备以及存储介质 | |
KR101630181B1 (ko) | 영상 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |