KR20140023794A - 오브젝트 렌더링 방법 및 장치 - Google Patents

오브젝트 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR20140023794A
KR20140023794A KR1020120090269A KR20120090269A KR20140023794A KR 20140023794 A KR20140023794 A KR 20140023794A KR 1020120090269 A KR1020120090269 A KR 1020120090269A KR 20120090269 A KR20120090269 A KR 20120090269A KR 20140023794 A KR20140023794 A KR 20140023794A
Authority
KR
South Korea
Prior art keywords
rendering
technique
rendering technique
object type
type
Prior art date
Application number
KR1020120090269A
Other languages
English (en)
Other versions
KR101369457B1 (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 KR1020120090269A priority Critical patent/KR101369457B1/ko
Publication of KR20140023794A publication Critical patent/KR20140023794A/ko
Application granted granted Critical
Publication of KR101369457B1 publication Critical patent/KR101369457B1/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

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

Abstract

본 발명은 오브젝트를 렌더링하는 기술에 관한 것으로서, 더욱 상세하게는, 오브젝트 종류에 따라 다른 렌더링 기법을 이용하여 오브젝트를 렌더링할 수 있도록 해주는 오브젝트 렌더링 방법 및 장치에 관한 것이다.

Description

오브젝트 렌더링 방법 및 장치{METHOD AND APPARATUS FOR RENDERING OBJECT}
본 발명은 오브젝트 렌더링 기술에 관한 것이다.
컴퓨터, 비디오 게임 등과 같은 실시간 그래픽 표시 기능을 갖춘 상호 작용 응용 프로그램을 구현하는 핵심 소프트웨어 구성 요소인 게임 엔진, 또는 게임 엔진이 제공하는 2D 또는 3D 그래픽 출력(표현)을 위한 렌더링 엔진(렌더러 또는 그래픽 엔진 또는 비전 엔진이라고도 함)은, 오브젝트(Object)를 얼마나 효과적으로 잘 렌더링하느냐에 따라 그 응용 서비스의 품질이나 사용자 만족도가 크게 달라지게 된다.
종래, 게임 엔진 또는 렌더링 엔진 등에 의한 오브젝트 렌더링 기술로서, 여러 렌더링 기술이 개발됐다. 이러한 여러 렌더링 기술은 각기 서로 다른 장단점이 있다.
이러한 서로 다른 장단점에도 불구하고, 종래에는, 하나의 오브젝트를 렌더링할 때, 하나의 렌더링 방식만으로 오브젝트를 렌더링하기 때문에, 사용된 렌더링 방식이 갖는 단점으로 인해, 렌더링의 퀄리티 또는 속도 등에 문제점이 발생할 수밖에 없다.
즉, 종래에는, 하나의 렌더링 방식만으로 오브젝트를 렌더링함으로써, 오브젝트를 드로잉 하고 조명 처리를 하는데 메모리를 많이 필요하고 많은 대역을 요구하는 문제점이 발생하거나, 다양한 머터리얼(Material) 표현이 어려운 문제점이 발생하거나, 여러 단계의 프로세스 처리에 따른 프로세싱 부하가 커지는 문제점이 발생할 수 있다.
이러한 배경에서, 본 발명의 목적은, 오브젝트 종류에 따라 다른 렌더링 기법을 이용하여 오브젝트를 렌더링할 수 있도록 해주는 데 있다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 오브젝트의 오브젝트 종류를 판단하는 오브젝트 종류 판단부; 상기 판단된 오브젝트 종류에 따라 상기 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 렌더링 기법 선택부; 및 상기 선택된 렌더링 기법에 따라 상기 오브젝트를 렌더링하는 렌더링부를 포함하는 오브젝트 렌더링 장치를 제공한다.
다른 측면에서, 본 발명은, 오브젝트 렌더링 장치가 제공하는 오브젝트 렌더링 방법에 있어서, 오브젝트의 오브젝트 종류를 판단하는 단계; 상기 판단된 오브젝트 종류에 따라 상기 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 단계; 및 상기 선택된 렌더링 기법에 따라 상기 오브젝트를 렌더링하는 단계를 포함하는 오브젝트 렌더링 방법을 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 오브젝트 종류에 따라 다른 렌더링 기법을 이용하여 오브젝트를 렌더링할 수 있도록 해주는 효과가 있다.
본 발명에 의하면, 여러 렌더링 기법을 사용할 수 있도록 각 렌더링 모듈을 구현해 놓은 상태에서, 오브젝트 종류에 따라 다른 렌더링 기법을 선택적으로 사용하여 렌더링함으로써, 하나의 렌더링 기법만을 사용하는 것에 비해, 단위시간당 더 많은 프레임에 대한 그래픽 표현을 할 수 있다.
또한, 본 발명에 의하면, 오브젝트 종류에 따라 렌더링 기법을 적응적으로 변화시킬 수 있게 됨으로써, 여러 가지의 렌더링 기법이 각기 갖는 장점을 모두 얻을 수 있게 되는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치에 대한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치 내 렌더링부를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법에 대한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법에 대한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법에 대한 상세 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법에 대한 성능 실험 결과를 나타낸 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치(100)에 대한 블록도이다.
도 1에 도시된 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치(100)는, 렌더링 대상이 되는 오브젝트(Object)의 오브젝트 종류에 따라, 수행 가능한 복수의 렌더링 기법 중 하나를 선택하여 선택한 렌더링 기법에 따라 오브젝트를 렌더링(Rendering)하는 장치이다.
이러한 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치(100)는, 도 1에 도시된 바와 같이, 렌더링 대상이 되는 오브젝트의 오브젝트 종류를 판단하는 오브젝트 종류 판단부(110)와, 판단된 오브젝트 종류에 따라 상기 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 렌더링 기법 선택부(120)와, 선택된 렌더링 기법에 따라 상기 오브젝트를 렌더링하는 렌더링부(130) 등을 포함한다.
전술한 오브젝트 종류 판단부(110)는, 렌더링해야 하는 오브젝트가 있으면, 이 오브젝트의 오브젝트 종류를 판단하게 되는데, 본 발명의 일 실시예에서는, 일 예로, 오브젝트 종류를 렌더링 시 필요한 렌더링 처리(쉐이딩 처리 포함)가 무엇이냐에 따라 일반 오브젝트와 특수 오브젝트 중 하나로 판단하게 된다.
즉, 오브젝트 종류 판단부(110)는, 오브젝트의 렌더링을 위해, 미리 정의된 "기본 쉐이딩(Shading)" 처리 이외에 "다른 렌더링 처리"가 필요 유무에 따라, 오브젝트의 오브젝트 종류를 "일반 오브젝트" 및 "특수 오브젝트" 중 하나로 판단할 수 있다.
위에서 언급한 "미리 정의된 기본 쉐이딩 처리"는, 정반사(Specular Reflection) 처리 및 난반사(Diffused Reflection) 처리 등을 포함하는 간단한 렌더링 처리를 의미한다.
예를 들어, 지형(Terrain), 나무(Tree), 풀(Grass), 바위(Rock) 등의 오브젝트는, 정반사(Specular Reflection) 처리 및 난반사(Diffused Reflection) 처리 등을 포함하는 기본 쉐이딩 처리만을 필요로 하는 일반적인 머터리얼(General Materials) 갖는 오브젝트로서, 이러한 오브젝트의 오브젝트 종류는 일반 오브젝트에 해당한다.
또한, 피부(Skin), 머리카락(Hair), 광택이 있는 물체(Glossy Object) 등의 오브젝트는, 정반사(Specular Reflection) 처리 및 난반사(Diffused Reflection) 처리 등을 포함하는 기본 쉐이딩 처리 이외에, 다른 특수한 렌더링 처리를 필요로 하는 특수한 머터리얼(Special Materials)을 갖는 오브젝트로서, 이러한 오브젝트의 오브젝트 종류는 특수 오브젝트에 해당한다.
전술한 렌더링 기법 선택부(120)는, 오브젝트 종류 판단부(110)에서 판단된 오브젝트 종류가 일반 오브젝트인 경우, 오브젝트의 렌더링 기법으로서 "단일 드로잉 렌더링 기법"을 선택하고, 오브젝트 종류 판단부(110)에서 판단된 오브젝트 종류가 특수 오브젝트인 경우, 오브젝트의 렌더링 기법으로서 "다중 드로잉 렌더링 기법"을 선택한다.
전술한 렌더링 기법 선택부(120)는, 렌더링 기법 선택 결과 정보를 저장해두거나 렌더링부(130)로 입력시켜줄 수 있다.
이에 따라, 렌더링부(130)는, 렌더링 기법 선택부(120)에 의해 저장된 렌더링 기법 선택 결과 정보를 읽어오거나, 렌더링 기법 선택부(120)로부터 렌더링 기법 선택 결과 정보를 입력받아, 읽어온 또는 입력받은 렌더링 기법 선택 결과 정보로부터 확인된 렌더링 기법(단일 드로잉 렌더링 기법 또는 다중 드로잉 렌더링 기법)에 따라, 오브젝트를 렌더링할 수 있다.
도 2는 전술한 렌더링부(130)를 보다 상세하게 나타낸 도면이다.
도 2를 참조하면, 렌더링부(130)는, 읽어온 또는 입력받은 렌더링 기법 선택 결과 정보의 확인을 통해, 오브젝트를 단일 드로잉 렌더링 기법에 따라 렌더링하는 제1 렌더링부(210)와, 오브젝트를 다중 드로잉 렌더링 기법에 따라 렌더링하는 제2 렌더링부(220) 등을 포함할 수 있다.
도 2를 참조하면, 제1 렌더링부(210)는, 읽어온 또는 입력받은 렌더링 기법 선택 결과 정보의 확인을 통해, 오브젝트의 렌더링 기법으로서 단일 드로잉 렌더링 기법이 선택된 경우, 지아메트리(Geometry)을 드로잉하고 지아메트리의 속성들(Attributes)에 대한 정보를 저장하는 "드로잉 프로세스(Drawing Process)"와, 각 조명 소스(Light Source)에 의해 라이팅(Lighting) 되는 공간에 대한 볼륨(Volume)을 계산하고 각 조명 소스(Light Source)에 의한 라이팅(Lighting) 된 표면 컬러를 어큐뮬레이션(Accumulation) 처리를 하는 "조명 프로세스(Lighting Process)"를 수행함으로써, 단일 드로잉 렌더링 기법에 따라 오브젝트를 렌더링할 수 있다.
제1 렌더링부(210)가 오브젝트를 렌더링하는 단일 드로잉 렌더링 기법은, 드로잉 프로세스(Drawing Process) 단계와 조명 프로세스(Lighting Process) 단계로 수행되는 2 단계 프로세스 기반의 렌더링 기법이다.
드로잉 프로세스(Drawing Process) 단계에서는, 지아메트리를 드로잉하고 지아메트리의 속성들을 수 개(예: 4~5개)의 G-버퍼(Geometry-Buffer)에 저장할 수 있다. 여기서, 지아메트리의 속성들은, 일 예로, 깊이(Depth), 노말(Normals), 알베도 컬러(Albedo Color), 스페큘러 컬러(Specular Color), 그리고 다른 머터리얼 특성(Material Properties) 등을 포함할 수 있다.
또한, 조명 프로세스(Lighting Process) 단계에서는, 각 조명 소스(Light Source)에 의해 라이팅(Lighting) 되는 공간에 대한 볼륨(Volume)을 계산하여 계산된 볼륨에 맞게 라이팅 되는 공간을 드르잉하고, 이러한 각 조명 소스(Light Source)에 의해 최종 렌더링 타겟에 라이팅(Lighting) 되는 표면 컬러를 어큐뮬레이션(Accumulation) 처리를 한다. 이때, 어큐뮬레이션 버퍼(Accumulation Buffer)에 라이팅 되는 공간을 드르잉 하는 정보, 어큐뮬레이션 처리된 표면 컬러에 대한 정보 등이 저장될 수 있다.
도 2를 참조하면, 제2 렌더링부(220)는, 읽어온 또는 입력받은 렌더링 기법 선택 결과 정보의 확인을 통해, 오브젝트의 렌더링 기법으로서 다중 드로잉 렌더링 기법이 선택된 경우, 지아메트리(Geometry)을 드로잉하고 조명 처리를 위한 지아메트리의 속성들에 대한 정보를 저장하는 "제1 드로잉 프로세스"와, 각 조명 소스(Light Source)에 의해 라이팅(Lighting) 되는 공간에 대한 볼륨(Volume)을 계산하고 각 조명 소스에 의한 렌더링 타겟으로의 라이팅(Lighting)에 대한 어큐뮬레이션 처리를 하는 "조명 프로세스"와, 지아메트리(Geometry)을 다시 드로잉하는 "제2 드로잉 프로세스"를 수행함으로써, 다중 드로잉 렌더링 기법에 따라 오브젝트를 렌더링하는 제2 렌더링부(220)를 포함할 수 있다.
제2 렌더링부(220)가 오브젝트를 렌더링하는 다중 드로잉 렌더링 기법은, 제1 드로잉 프로세스 단계, 조명 프로세스 단계 및 제2 드로잉 프로세스 단계로 수행되는 3 단계 프로세스 기반의 렌더링 기법이다.
제1 드로잉 프로세스(Drawing Process) 단계에서는, 지아메트리를 드로잉하고 지아메트리의 속성들을 수 개(예: 2~3개)의 G-버퍼(Geometry-Buffer)에 저장할 수 있다. 여기서, 지아메트리의 속성들은, 일 예로, 깊이(Depth), 노말(Normals), 스페큘러 파워(Specular Power) 등을 포함할 수 있다.
또한, 조명 프로세스(Lighting Process) 단계에서는, 각 조명 소스(Light Source)에 의해 라이팅(Lighting) 되는 공간에 대한 볼륨(Volume)을 계산하여 계산된 볼륨에 맞게 라이팅 되는 공간을 드르잉하고, 이러한 각 조명 소스(Light Source)에 의해 최종 렌더링 타겟에 라이팅(Lighting) 되는 표면 컬러를 어큐뮬레이션(Accumulation) 처리를 한다. 이때, 조명 어큐뮬레이션 버퍼(Light Accumulation Buffer)에 라이팅 되는 공간을 드르잉 하는 정보, 어큐뮬레이션 처리된 표면 컬러에 대한 정보 등이 저장될 수 있다.
또한, 제2 드로잉 프로세스(Drawing Process) 단계에서는, 지아메트리(Geometry)을 다시 드로잉하고, 완전한 머터리얼 쉐이더(Full Material Shader)를 평가하고, 조명 프로세스 단계에서 생성된 버퍼(조명 어큐뮬레이션 버퍼)로부터 샘플링된 라이팅(Lighting)에 대한 처리를 할 수 있다.
한편, 전술한 렌더링 기법 선택부(120)는, 오브젝트 종류 판단부(110)에서 판단된 오브젝트 종류 이외에, 오브젝트 렌더링 장치 성능(예: 대역(Bandwidth), 프로세싱 성능 등) 또는 렌더링 요구 조건에 따라 오브젝트를 렌더링하기 위한 렌더링 기법을 선택할 수 있다.
예를 들어, 단일 드로잉 렌더링 기법은, 다중 드로잉 렌더링 기법에 비해 상대적으로, G-버퍼(메모리)가 많이 필요하고 많은 대역을 요구하는 단점이 있으나, 다양한 머터리얼 표현이 어렵고, 2 단계 프로세스 기반의 렌더링 기법이므로 프로세싱 부하가 적다는 장점이 있다.
반대로, 다중 드로잉 렌더링 기법은, 단일 드로잉 렌더링 기법에 비해, 다양한 머터리얼 표현이 가능하고, G-버퍼(메모리)가 적게 필요하고 적은 대역을 요구하는 장점이 있으나, 3 단계 프로세스 기반의 렌더링 기법이므로 프로세싱 부하가 크다는 단점이 있다.
이러한 두 기법의 장단점으로 고려하여, 예를 들어, 프로세싱 부하를 적게 하는 렌더링 요구 조건 또는 프로세싱 성능이 좋지 않은 오브젝트 렌더링 장치 성능을 고려해야 한다면, 프로세싱 부하가 상대적으로 적은 단일 드로잉 렌더링 기법을 오브젝트의 렌더링 기법으로서 선택할 수 있다.
메모리와 대역이 적게 드는 렌더링 요구 조건 또는 메모리와 대역이 충분하지 않은 오브젝트 렌더링 장치 성능을 고려해야 한다면, 메모리와 대역이 상대적으로 적게 드는 다중 드로잉 렌더링 기법을 오브젝트의 렌더링 기법으로서 선택할 수 있다.
이상에서 설명한 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법을 도 3을 참조하여 예시적으로 설명한다.
본 발명의 일 실시예에서는, 오브젝트 종류를 기본 쉐이딩 처리 이외에 다른 특수한 렌더링 처리의 필요 유무에 따라 일반 오브젝트와 특수 오브젝트로 분류하여 판단한다.
도 3을 참조하면, 오브젝트 종류로서 일반 오브젝트는, 일 예로, 지형(Terrain), 나무(Tree), 풀(Grass), 바위(Rock) 등의 오브젝트일 수 있다.
이러한 일반 오브젝트는, 정반사(Specular Reflection) 처리 및 난반사(Diffused Reflection) 처리 등을 포함하는 기본 쉐이딩 처리만을 필요로 하는 일반적인 머터리얼(General Materials) 갖는 오브젝트이다.
이러한 일반 오브젝트의 렌더링 기법으로서는, 단일 드로잉 렌더링 기법이 선택될 수 있다.
단일 드로잉 렌더링 기법은 2 단계 프로세스(드로잉 프로세스→조명 프로세스) 기반의 렌더링 기법으로서, 일 예로, 디퍼드 쉐이딩(Deferred Shading) 기반의 렌더링 기법이 이에 해당한다.
도 3을 참조하면, 오브젝트 종류로서 특수 오브젝트는, 일 예로, 피부(Skin), 머리카락(Hair), 광택이 있는 물체(Glossy Object) 등의 오브젝트일 수 있다.
이러한 특수 오브젝트는, 정반사(Specular Reflection) 처리 및 난반사(Diffused Reflection) 처리 등을 포함하는 기본 쉐이딩 처리 이외에, 다른 특수한 렌더링 처리를 더 필요로 하는 특수한 머터리얼(Special Materials)을 갖는 오브젝트이다.
이러한 특수 오브젝트의 렌더링 기법으로서는, 다중 드로잉 렌더링 기법이 선택될 수 있다.
다중 드로잉 렌더링 기법은 3 단계 프로세스(제1 드로잉 프로세스→조명 프로세스→제2 드로잉 프로세스) 기반의 렌더링 기법으로서, 일 예로, 라이트 프리패스(Light Pre-Pass) 렌더링 기법이 이에 해당한다.
하나의 오브젝트는, 하나 이상의 일반적인 머터리얼으로만 이루어질 수도 있고, 하나 이상의 특수한 머터리얼으로만 이루어질 수도 있다. 또한, 하나의 오브젝트는, 하나 이상의 일반적인 머터리얼과 하나 이상의 특수한 머터리얼로 이루어질 수도 있다. 이와 같이, 복합적인 머터리얼로 이루어진 오브젝트의 경우, 하나의 오브젝트를 렌더링할 때, 단일 드로잉 렌더링 기법과 다중 드로잉 렌더링 기법을 모두 이용하여 렌더링할 수도 있다.
이상에서 전술한 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치(100)는, 컴퓨터, 비디오 게임 등과 같은 실시간 그래픽 표시 기능을 갖춘 상호 작용 응용 프로그램을 구현하는 핵심 소프트웨어 구성 요소인 게임 엔진이거나, 이러한 게임 엔진이 제공하는 2D 또는 3D 그래픽 출력(표현)을 위한 렌더링 엔진("렌더러(Renderer)" 또는 "그래픽 엔진" 또는 "비전 엔진"이라고도 함)일 수 있으며, 경우에 따라서는, 게임 엔진 또는 렌더링 엔진이 구현된 물리적인 장치일 수 있다.
이하에서는, 도 1 내지 도 3을 참조하여 전술한 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치(100)가 실행하는 오브젝트 렌더링 방법에 대하여, 도 4 및 도 5를 참조하여 다시 설명한다.
도 4는 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법에 대한 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 오브젝트 렌더링 장치(100)가 제공하는 오브젝트 렌더링 방법은, 오브젝트의 오브젝트 종류를 판단하는 단계(S400)와, S400 단계에서 판단된 오브젝트 종류에 따라 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 단계(S402)와, S402 단계에서 선택된 렌더링 기법에 따라 오브젝트를 렌더링하는 단계(S404) 등을 포함한다.
도 4에 간략하게 도시된 오브젝트 렌더링 방법을 도 5를 참조하여 더욱 상세하게 설명한다.
도 5를 참조하면, 오브젝트 종류를 판단하는 단계(S400)는, 오브젝트가 미리 정의된 기본 쉐이딩(Shading) 처리 이외에 다른 렌더링 처리가 더 필요한지를 파악하는 단계(S500)와, S500 단계에서의 파악 결과에 따라, 기본 쉐이딩 처리 이외에 다른 렌더링 처리가 불필요한 경우, 오브젝트의 오브젝트 종류를 일반 오브젝트로 판단하는 단계(S501)와, S500 단계에서의 파악 결과에 따라, 기본 쉐이딩 처리 이외에 다른 렌더링 처리가 필요한 경우, 오브젝트의 오브젝트 종류를 특수 오브젝트로 판단하는 단계(S502) 등을 포함한다.
도 5를 참조하면, 오브젝트 종류를 판단하는 단계(S400) 이후에 수행되는 렌더링 기법 선택 단계(S402)는, S400 단계에서 판단된 오브젝트 종류가 일반 오브젝트인 경우, 상기 오브젝트의 렌더링 기법으로서 단일 드로잉 렌더링 기법을 선택하는 단게(S503)와, S400 단계에서 판단된 오브젝트 종류가 상기 특수 오브젝트인 경우, 오브젝트의 렌더링 기법으로서 다중 드로잉 렌더링 기법을 선택하는 단계(S504) 등을 포함한다.
도 5를 참조하면, 렌더링 기법 선택 단계(S402)에서 오브젝트의 렌더링 기법으로서 단일 드로잉 렌더링 기법이 선택된 경우, 렌더링 기법 선택 단계(S402) 이후 수행되는 렌더링 단계(S404)는, 지아메트리(Geometry)을 드로잉하고 지아메트리의 속성들에 대한 정보를 저장하는 드로잉 프로세싱 단계(S505)와, 각 조명 소스(Light Source)에 의해 라이팅(Lighting) 되는 공간에 대한 볼륨(Volume)을 계산하고 각 조명 소스에 의한 라이팅 된 표면 컬러(Surface Color)를 어큐뮬레이션(Accumulation) 처리를 하는 조명 프로세싱 단계(S507) 등을 포함한다.
도 5를 참조하면, 렌더링 기법 선택 단계(S402)에서 오브젝트의 렌더링 기법으로서 다중 드로잉 렌더링 기법이 선택된 경우, 렌더링 기법 선택 단계(S402) 이후 수행되는 렌더링 단계(S404)는, 지아메트리(Geometry)을 드로잉하고 조명 처리를 위한 지아메트리의 속성들에 대한 정보를 저장하는 제1 드로잉 프로세싱 단계(S506)와, 각 조명에 의해 조명이 비추어지는 공간에 대한 볼륨(Volume)을 계산하고 각 조명에 의해 비추어지는 조명에 대한 어큐뮬레이션 처리를 하는 조명 프로세싱 단계(S508)와, 지아메트리(Geometry)을 다시 드로잉하는 제2 드로잉 프로세싱 단계(S510) 등을 포함한다.
이상에서 설명한 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법은, 일 예로, 오브젝트 종류에 따라, 단일 드로잉 렌더링 기법으로서 디퍼드 쉐이딩(Deferred Shading) 또는 다중 드로잉 렌더링 기법으로서 라이트 프리패스 렌더링(Light Pre-Pass Rendering)을 이용하여 오브젝트를 렌더링할 수 있다.
이와 같이, 디퍼드 쉐이딩(Deferred Shading) 및 라이트 프리패스 렌더링(Light Pre-Pass Rendering)를 오브젝트 종류에 따라 사용한다는 점에서, 본 발명의 일 실시예에 따른 오브젝트 렌더링을 "하이브리드 디퍼드 렌더링(Hybrid Deferred Rendering)"이라고도 할 수 있다.
아래에서는, 오브젝트 종류 구분없이 라이트 프리패스 렌더링(Light Pre-Pass Rendering)만을 사용하여 오브젝트를 렌더링한 경우와, 오브젝트 종류에 따라 디퍼드 쉐이딩(Deferred Shading) 및 라이트 프리패스 렌더링(Light Pre-Pass Rendering) 중 하나를 선택적으로 사용하는 하이브리드 디퍼드 렌더링(Hybrid Deferred Rendering)를 사용하여 오브젝트를 렌더링하는 경우에 대하여, 단위 시간당 처리할 수 있는 프레임 수(FPS(Frame/sec))를 비교해보는 실험을 수행한 결과를 도 6을 통해 알아본다.
도 6을 참조하면, 렌더링 방식에 따른 단위시간당 처리되는 프레임 수를 비교 실험은, 상대적 처리량이 많아지는 그림자 처리가 있는 경우(도 6의 (a))와 그림자 처리가 없는 경우(도 6의 (b))로 크게 나누고, 각각에 대하여, 오브젝트의 개수를 100, 200, 500, 1000, 2000 개로 변화시켜가면서, 라이트 프리패스 렌더링을 한 경우와 하이브리드 디퍼드 렌더링을 한 경우에 대한 단위 시간당 처리할 수 있는 프레임 수(FPS)를 측정해본다.
도 6을 참조하면, 그림자 처리가 있는 경우(도 6의 (a))와 그림자 처리가 없는 경우(도 6의 (b)) 모두에 대하여, 하이브리드 디퍼드 렌더링을 사용하여 오브젝트를 렌더링한 경우의 단위 시간당 처리할 수 있는 프레임 수(FPS)가, 라이트 프리패스 렌더링만을 사용하여 오브젝트를 렌더링한 경우의 단위 시간당 처리할 수 있는 프레임 수(FPS)보다 많음을 알 수 있다.
즉, 하이브리드 디퍼드 렌더링을 사용하여 오브젝트를 렌더링하게 되면, 단위시간에 더 많은 오브젝트를 렌더링할 수 있게 되어, 단위시간당 그래픽 처리할 수 있는 프레임 수(FPS)가 많아짐을 알 수 있다.
이상에서는 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법이 도 4 및 도 5에서와 같은 절차로 수행되는 것으로 설명되었으나, 이는 설명의 편의를 위한 것일 뿐, 본 발명의 본질적인 개념을 벗어나지 않는 범위 내에서, 구현 방식에 따라 각 단계의 수행 절차가 바뀌거나 둘 이상의 단계가 통합되거나 하나의 단계가 둘 이상의 단계로 분리되어 수행될 수도 있다.
이상에서 전술한 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법은, 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체에 기록될 수도 있다.
본 발명의 일 실시예에 따른 오브젝트 렌더링 방법을 구현한 프로그램은, 오브젝트의 오브젝트 종류를 판단하는 기능과, 판단된 오브젝트 종류에 따라 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 기능과, 선택된 렌더링 기법에 따라 오브젝트를 렌더링하는 기능 등을 실행한다. 이뿐만 아니라, 도 1 내지도 5를 참조하여 전술한 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법에 대응되는 모든 기능을 실행할 수 있다.
이러한 프로그램은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.
또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
이상에서 전술한 바와 같은, 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한, 본 발명의 일 실시예에 따른 오브젝트 렌더링 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는, 프로그램을 기록한 다른 컴퓨터 또는 그 저장매체일 수도 있다.
이상에서 설명한 바와 같이 본 발명에 의하면, 오브젝트 종류에 따라 다른 렌더링 기법을 이용하여 오브젝트를 렌더링할 수 있도록 해주는 효과가 있다.
본 발명에 의하면, 여러 렌더링 기법을 사용할 수 있도록 각 렌더링 모듈을 구현해 놓은 상태에서, 오브젝트 종류에 따라 다른 렌더링 기법을 선택적으로 사용하여 렌더링함으로써, 하나의 렌더링 기법만을 사용하는 것에 비해, 단위시간당 더 많은 프레임에 대한 그래픽 표현을 할 수 있다.
또한, 본 발명에 의하면, 오브젝트 종류에 따라 렌더링 기법을 적응적으로 변화시킬 수 있게 됨으로써, 여러 가지의 렌더링 기법이 각기 갖는 장점을 모두 얻을 수 있게 되는 효과가 있다. 가령, 프로세싱 부하를 적게 하는 렌더링 요구 조건 또는 프로세싱 성능이 좋지 않은 오브젝트 렌더링 장치 성능을 고려해야 한다면, 프로세싱 부하가 상대적으로 적은 렌더링 기법을 선택하여 렌더링할 수 있고, 메모리와 대역이 적게 드는 렌더링 요구 조건 또는 메모리와 대역이 충분하지 않은 오브젝트 렌더링 장치 성능을 고려해야 한다면, 메모리와 대역이 상대적으로 적게 드는 렌더링 기법을 선택하여 렌더링할 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (7)

  1. 오브젝트의 오브젝트 종류를 판단하는 오브젝트 종류 판단부;
    상기 판단된 오브젝트 종류에 따라 상기 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 렌더링 기법 선택부; 및
    상기 선택된 렌더링 기법에 따라 상기 오브젝트를 렌더링하는 렌더링부를 포함하는 오브젝트 렌더링 장치.
  2. 제1항에 있어서,
    상기 오브젝트 종류 판단부는,
    상기 오브젝트의 렌더링을 위해, 미리 정의된 기본 쉐이딩(Shading) 처리 이외에 다른 렌더링 처리가 필요 유무에 따라, 상기 오브젝트의 오브젝트 종류를 일반 오브젝트 및 특수 오브젝트 중 하나로 판단하는 것을 특징으로 하는 오브젝트 렌더링 장치.
  3. 제2항에 있어서,
    상기 미리 정의된 기본 쉐이딩 처리는,
    정반사(Specular Reflection) 처리 및 난반사(Diffused Reflection) 처리를 포함하는 것을 특징으로 하는 오브젝트 렌더링 장치.
  4. 제2항에 있어서,
    상기 렌더링 기법 선택부는,
    상기 판단된 오브젝트 종류가 상기 일반 오브젝트인 경우, 상기 오브젝트의 렌더링 기법으로서 단일 드로잉 렌더링 기법을 선택하고,
    상기 판단된 오브젝트 종류가 상기 특수 오브젝트인 경우, 상기 오브젝트의 렌더링 기법으로서 다중 드로잉 렌더링 기법을 선택하는 것을 특징으로 하는 오브젝트 렌더링 장치.
  5. 오브젝트 렌더링 장치가 제공하는 오브젝트 렌더링 방법에 있어서,
    오브젝트의 오브젝트 종류를 판단하는 단계;
    상기 판단된 오브젝트 종류에 따라 상기 오브젝트를 렌더링하기 위한 렌더링 기법을 선택하는 단계; 및
    상기 선택된 렌더링 기법에 따라 상기 오브젝트를 렌더링하는 단계를 포함하는 오브젝트 렌더링 방법.
  6. 제5항에 있어서,
    상기 판단하는 단계는,
    상기 오브젝트가 미리 정의된 기본 쉐이딩(Shading) 처리 이외에 다른 렌더링 처리가 더 필요한지를 파악하는 단계; 및
    상기 파악 결과에 따라, 상기 다른 렌더링 처리가 불필요한 경우 상기 오브젝트의 오브젝트 종류를 일반 오브젝트로 판단하고, 상기 다른 렌더링 처리가 필요한 경우 상기 오브젝트의 오브젝트 종류를 특수 오브젝트로 판단하는 단계를 포함하는 것을 특징으로 하는 오브젝트 렌더링 방법.
  7. 제6항에 있어서,
    상기 선택하는 단계는,
    상기 판단된 오브젝트 종류가 상기 일반 오브젝트인 경우, 상기 오브젝트의 렌더링 기법으로서 단일 드로잉 렌더링 기법을 선택하는 단계; 및
    상기 판단된 오브젝트 종류가 상기 특수 오브젝트인 경우, 상기 오브젝트의 렌더링 기법으로서 다중 드로잉 렌더링 기법을 선택하는 단계를 포함하는 것을 특징으로 하는 오브젝트 렌더링 방법.
KR1020120090269A 2012-08-17 2012-08-17 오브젝트 렌더링 방법 및 장치 KR101369457B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120090269A KR101369457B1 (ko) 2012-08-17 2012-08-17 오브젝트 렌더링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120090269A KR101369457B1 (ko) 2012-08-17 2012-08-17 오브젝트 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140023794A true KR20140023794A (ko) 2014-02-27
KR101369457B1 KR101369457B1 (ko) 2014-03-06

Family

ID=50269111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120090269A KR101369457B1 (ko) 2012-08-17 2012-08-17 오브젝트 렌더링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101369457B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050054730A (ko) * 2003-12-05 2005-06-10 한국전자통신연구원 색온도 조정 기능을 갖춘 에이치디알 영상 기반 쉐이더
JP4979323B2 (ja) 2005-12-07 2012-07-18 キヤノン株式会社 画像処理装置及びその制御方法
KR20100132605A (ko) * 2009-06-10 2010-12-20 삼성전자주식회사 하이브리드 렌더링 장치 및 방법

Also Published As

Publication number Publication date
KR101369457B1 (ko) 2014-03-06

Similar Documents

Publication Publication Date Title
US20230033306A1 (en) Image rendering method and apparatus, computer device, and storage medium
US11270497B2 (en) Object loading method and apparatus, storage medium, and electronic device
US9928637B1 (en) Managing rendering targets for graphics processing units
CN108701366B (zh) 用于图形处理中的阴影光线的树遍历的开始节点确定的方法、设备及可读存储媒体
US9881391B2 (en) Procedurally defined texture maps
US10223761B2 (en) Graphics pipeline method and apparatus
JP5960368B2 (ja) ビジビリティ情報を用いたグラフィックスデータのレンダリング
EP2308224B1 (en) Gpu scene composition and animation
US20140362100A1 (en) Scheme for compressing vertex shader output parameters
KR20160004963A (ko) 그래픽 처리
KR20140139553A (ko) 그래픽 프로세싱 유닛들에서 가시성 기반 상태 업데이트들
KR20160130629A (ko) 양안 시차 영상에 대한 렌더링 방법 및 장치
KR20180056316A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
CN108027956B (zh) 后期深度测试与保守深度测试之间的动态切换
US10432914B2 (en) Graphics processing systems and graphics processors
KR20170040698A (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
US20160078671A1 (en) Render-Time Linking of Shaders
KR20170058113A (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
CN109448123B (zh) 模型的控制方法及装置、存储介质、电子设备
US11978234B2 (en) Method and apparatus of data compression
KR20180056932A (ko) 커브 렌더링을 수행하는 방법 및 장치.
US10373286B2 (en) Method and apparatus for performing tile-based rendering
CN110334027B (zh) 游戏画面测试方法和装置
CN113838180A (zh) 一种渲染指令处理方法及其相关设备
KR101369457B1 (ko) 오브젝트 렌더링 방법 및 장치

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: 20170223

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180206

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190212

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200224

Year of fee payment: 7