KR100829561B1 - 3차원 그래픽 데이터 렌더링 방법 및 장치 - Google Patents

3차원 그래픽 데이터 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR100829561B1
KR100829561B1 KR1020060080719A KR20060080719A KR100829561B1 KR 100829561 B1 KR100829561 B1 KR 100829561B1 KR 1020060080719 A KR1020060080719 A KR 1020060080719A KR 20060080719 A KR20060080719 A KR 20060080719A KR 100829561 B1 KR100829561 B1 KR 100829561B1
Authority
KR
South Korea
Prior art keywords
rendering
graphic data
function
processes
data
Prior art date
Application number
KR1020060080719A
Other languages
English (en)
Other versions
KR20080019119A (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 KR1020060080719A priority Critical patent/KR100829561B1/ko
Priority to US11/892,427 priority patent/US8379013B2/en
Publication of KR20080019119A publication Critical patent/KR20080019119A/ko
Application granted granted Critical
Publication of KR100829561B1 publication Critical patent/KR100829561B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Abstract

3차원 그래픽 데이터를 렌더링 하는 방법 및 장치가 개시된다. 본 발명에 따른 3차원 그래픽 데이터 렌더링 방법은 3차원 그래픽 데이터의 렌더링 환경을 고려하여, 상기 3차원 그래픽 데이터를 렌더링하기위한 다수의 과정들 중 적어도 하나의 과정을 제거하고, 상기 적어도 하나의 과정이 제거된 나머지 과정을 수행하는 렌더링 함수를 생성하고, 상기 생성된 렌더링 함수에 기초하여 상기 3차원 그래픽 데이터를 렌더링하는 단계를 포함한다. 본 발명의 구성에 의하면, 데이터의 특성 및 데이터의 렌더링 환경을 고려하여 렌더링 함수의 크기를 축소시키므로, 화질 저하를 최소화하면서 동시에 렌더링에 소비되는 전력을 감소시킬 수 있다.

Description

3차원 그래픽 데이터 렌더링 방법 및 장치{Method for rendering 3D graphic data and apparatus therefore}
도 1a은 코드블록을 사용하는 3차원 그래픽 렌더링 장치의 개략적인 구성도이다.
도 1b는 도 1a에 도시된 캐쉬의 일 예이다.
도 2는 도 1에 도시된 렌더링 장치의 일 실시예에 따른 동작을 나타나는 흐름도이다.
도 3은 본 발명에 따른 차원 그래픽 데이터 렌더링 장치의 개략적인 구성도이다.
도 4은 본 발명의 일 실시예에 따른 3차원 그래픽 렌더링 방법을 설명하기 위한 흐름도이다.
도 5은 본 발명의 일 실시예에 따라 렌더링한 경우, 렌더링 과정의 전력 소비량이 감소되는 것을 설명하기 위한 참고도이다.
도 6a는 본 발명의 제1 실시예에 따른 렌더링 방법을 설명하기 위한 흐름도이다.
도 6b는 도 6a에 도시된 제1 실시예를 설명하기 위한 참고도이다.
도 6a는 본 발명의 제2 실시예에 따른 렌더링 방법을 설명하기 위한 흐름도 이다.
도 6b는 도 6a에 도시된 제2 실시예를 설명하기 위한 참고도이다.
도 8a는 본 발명의 제3 실시예에 따른 렌더링 방법을 설명하기 위한 흐름도이다.
도 8b는 도 8a에 도시된 제3 실시예를 설명하기 위한 참고도이다.
도 9a는 본 발명의 제4 실시예에 따른 렌더링 방법을 설명하기 위한 흐름도이다.
도 9b는 도 9a에 도시된 제4 실시예를 설명하기 위한 참고도이다.
도 10은 도 3에 도시된 렌더링부(350) 및 대기시간 계산부(390)의 일 실시예에 따른 렌더링 방법을 나타내는 흐름도이다.
도 11은 3차원 그래픽 데이터를 렌더링하기위한 소정 처리과정들을 설명하기위한 참고도이다.
도 12는 본 발명의 제4 실시예에 따라 3차원 그래픽 데이터를 렌더링한 결과를 설명하기 위한 참고도이다.
도 13은 버텍스 처리과정에서의 분기블록과 코드블록들이 섞여 있는 흐름도의 일 실시예이다.,
도 14는 도 13에 도시된 흐름도에서 분기블록의 내용을 설명하는 표이다.
도 15는 도 13에 도시된 흐름도에서 코드블록의 내용을 설명하는 표이다.
도 16a 및 도 16b는 도 14에 도시된 흐름도에서 생성될 수 있는 렌더링 함수의 예들이다.
도 17는 픽셀 처리과정에서의 분기블록과 코드블록들이 섞여 있는 흐름도의 일 실시예이다.
도 18는 도 17에 도시된 흐름도에서 분기블록의 내용을 설명하는 표이다.
도 19은 도 17에 도시된 흐름도에서 코드블록의 내용을 설명하는 표이다.
도 20a 및 도 20b는 도 18에 도시된 흐름도에서 생성될 수 있는 렌더링 함수의 예들이다.
본 발명은 3차원 그래픽 데이터를 렌더링하는 방법, 장치 및 그 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
2차원 화면에 3차원 물체를 출력하기 위한 3차원 그래픽 데이터를 기술하는 방식에는 표준기술인 VRML(Virtual Reality Modeling Language) 등이 있다. 3차원 그래픽 데이터는 3차원 공간상에 위치하는 물체들의 기하학적 정보, 물체들의 재질(material) 정보 및 시간에 따른 이러한 정보들의 변화에 관한 정보 등을 포함한다. 예를 들어, 기하학적 정보는 물체를 구성하는 3차원 점들(vertex)의 위치와 이들의 연결 정보 등을 포함하고, 재질 정보는 물체의 질감, 투명도, 물체의 색깔, 물체 표면의 빛 반사도, 광원의 위치와 특성에 관한 정보 등을 포함한다.
이러한 3차원 그래픽 데이터를 이용하여 3차원 물체를 화면에 출력하기 위해서는 읽어들인 3차원 그래픽 데이터의 의미를 해석하고 데이터를 변환을 하는 장치 가 필요하다. 일반적으로 이러한 장치를 3차원 그래픽 렌더링 엔진(3D Graphics Rendering Engine)이라고 한다. 3차원 그래픽 렌더링 엔진은 해석기(parser)와 렌더링기(renderer)를 구비한다. 해석기는 3차원 그래픽 데이터를 읽어들여서 그 의미를 해석하는 유닛이다. 즉, 읽어들인 데이터가 물체에 대한 기하학적 정보인지, 물체의 재질 정보인지 아니면 장면 그래프 구조에 기인한 물체들간의 종속 관계에 대한 정보인지 등을 식별하고 해석 및 판단하는 작업을 수행한다. 렌더링기는 해석기가 해석한 장면 그래프를 렌더링하여 화면에 출력하는 작업을 한다.
그런데, 종래의 렌더링 엔진은 고정된 하나의 렌더링 함수 즉, 3차원 그래픽 데이터를 렌더링하기 위한 소정 처리과정 예를 들어, 텍스쳐 필터링(texture filtering) 또는 안티 앨리어싱(anti aliasing)을 수행하는 소프트웨어 코드를 포함하는 일련의 처리과정을 이용하여 3차원 그래픽 데이터를 렌더링 하였다. 이와 같이, 종래의 렌더링 엔진은 3차원 그래픽 데이터의 특성을 무시한 채, 고정된 렌더링 함수를 이용하여 모든 그래픽 데이터를 동일한 방식으로 렌더링하므로, 불필요한 기능들을 수행하는 코드들을 상당량 포함하게 되고, 그에 따라 렌더링 함수의 크기가 불필요하게 커지는 문제가 발생하였다.
또한, 3차원 그래픽 데이터의 렌더링 과정은 화면상의 각 화소에 대한 색상정보뿐 만 아니라 깊이 정보까지 계산해야 하는 과정이다. 따라서, 렌더링 함수의 크기가 커지게 되면 계산량이 많아지게 되어 렌더링 속도가 저하되는 문제가 발생한다.
이를 해결하기 위하여, 출원인은 3차원 그래픽 데이터의 특성을 분석하고, 분석된 데이터의 특성을 고려하여 생성된 유동적인 렌더링 함수를 사용하여 3차원 그래픽 데이터를 렌더링 하므로 화질의 저하를 방지하면서 렌더링 속도를 향상시킬 수 있는 렌더링 방법 및 장치를 고안하였다. 이 렌더링 방법 및 장치는 국내 특허 출원 10-2005-0009107호에 개시되어 있다. 이 방법에 따르면, 렌더링 함수가 3차원 그래픽 데이터의 특성에 따라 불필요한 코드는 렌더링 함수에서 제외시킴으로 렌더링 함수의 크기가 줄어들고, 계산량이 감소하여 렌더링 속도가 향상된다. 이러한 렌더링 방법 및 장치는 렌더링할 데이터의 특성은 고려할 수 있으나, 렌더링이 수행되는 시스템의 전력 상태 등은 고려하지 못하였다.
그러나, 최근에 모바일 게임기나 차량용 네비게이션 등과 같은 모바일 기기에 3차원 그래픽 데이터를 재생기능이 추가되고 있다. 모바일 기기는 제한된 전력으로 구동되어야 하므로, 계산량이 많은 3차원 그래픽 렌더링 과정을 모바일 기기에서 수행하기 위해서는 렌더링 과정에서 소비되는 전력을 감소시킬 필요가 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 렌더링 장치의 전력 상태, 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리 및 객체가 화면상에 표현되는 면적 등을 포함하는 렌더링 환경을 고려하여, 3차원 그래픽 데이터를 렌더링 하기 위한 다수의 과정들 중 적어도 하나의 과정을 제거한 나머지 과정들만을 수행하도록 렌더링 함수를 생성하고, 그 렌더링 함수를 이용하여 3차원 그래픽 데이터를 렌더링하므로, 화질의 저하를 최소화하면서 렌더링 장치의 전력 상태에 따라 렌더링 과정에 소비되는 전력량을 감소시킬 수 있는 렌더링 방법 및 장치, 그 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것이다.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 3차원 그래픽 데이터 렌더링 방법은 (a) 3차원 그래픽 데이터의 렌더링 환경을 고려하여, 상기 3차원 그래픽 데이터를 렌더링하기위한 다수의 과정들 중 적어도 하나의 과정을 제거하는 단계, (b) 상기 적어도 하나의 과정이 제거된 나머지 과정을 수행하는 렌더링 함수를 생성하는 단계 및 (c) 상기 생성된 렌더링 함수를 이용하여 상기 3차원 그래픽 데이터를 렌더링하는 단계를 포함한다.
또한, 상기 렌더링 환경은 상기 3차원 그래픽 데이터를 렌더링하는 시스템의 전력상태를 포함하거나, 상기 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리 및 상기 객체가 화면상에서 표현되는 면적 중 적어도 어느 하나를 포함할 수 있다.
또한, 상기 (c)단계는 상기 3차원 그래픽 데이터의 프레임들을 소정 시간동안 소정 개수이상 렌더링하지 않을 수 있다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 3차원 그래픽 데이터 렌더링 장치는 3차원 그래픽 데이터의 렌더링 환경을 고려하여, 상기 3차원 그래픽 데이터를 렌더링하기위한 다수의 과정들 중 적어도 하나의 과정을 제거하는 설정부, 상기 적어도 하나의 과정이 제거된 나머지 과정을 수행하는 렌더링 함수를 생성하는 함수 생성부 및 상기 생성된 렌더링 함수를 이용하여 상기 3차원 그래픽 데이터를 렌더링하는 렌더링부를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 3차원 그래픽데이터 렌더링 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이제, 첨부된 도면들을 참조하여 본 발명을 상세히 설명하겠다.
우선, 도 1a 및 도 2를 참조하여, 본 발명이 적용된 코드블록을 사용하여 3차원 그래픽 데이터 렌더링 방법 및 장치를 설명한다.
도 1a는 코드블록을 사용하는 3차원 그래픽 데이터 렌더링 장치의 개략적인 블록도로서, 렌더링 엔진(100)과 프리젠테이션 엔진(160)을 포함한다.
렌더링 엔진(100)은 입력된 3차원 그래픽 데이터의 특성을 분석하고 그 분석 결과에 대응하는 코드블록을 이용하여 렌더링 함수를 생성하고, 생성된 렌더링 함수에 기초하여 입력된 3차원 그래픽 데이터를 렌더링한다. 그 후, 렌더링 한 결과를 프리젠테이션 엔진(160)으로 제공한다.
여기서, 렌더링 함수란 3차원 그래픽 데이터를 렌더링 하기위한 소정 처리과정 이를테면, 모델 변환(Model transform), 시야 변환(View transform), 조명 처리(Lighting), 셰이딩(Shading), 투영(Projection), 클리핑(Clipping), 화면 매핑(Screen mapping) 등의 버텍스의 처리와 텍스쳐 필터링(Texture filtering), 텍스쳐 밉 매핑(Texture mipmaping), 안티 앨리어싱(Anti aliasing), 스펙큘라(Specular), 디더링(Dithdring), 원근 수정(Perspective correction) 등의 픽셀 처리를 수행하기 위한 코드들을 집합을 의미한다.
프리젠테이션 엔진(160)은 렌더링 엔진(100)으로부터 렌더링된 3차원 그래픽 데이터를 전송받아 디스플레이 장치로 출력한다.
도 1a에 도시된 렌더링 엔진(100)은 데이터 분석부(110), 함수 생성부(120), 코드블록 저장부(130), 캐쉬(140) 및 렌더링부(150)를 포함한다.
데이터 분석부(110)는 3차원 그래픽 데이터를 입력받고, 입력된 데이터의 특성을 분석한다. 데이터 분석부(110)로 입력되는 3차원 그래픽 데이터는 개략적으로 3차원 점(vertex)의 특징, 3차원 점들이 모여 구성되는 하나의 집합인 프리미티브(primitive)의 특징, 버텍스의 처리(Vertex processing) 및 픽셀의 처리(Pixel processing)와 관련된 렌더링 상태(Rendering state)의 정보를 포함한다.
버텍스 처리란 렌더링할 3차원 그래픽 데이터로부터 3차원 정보를 2차원의 정보로 변환하는 역할을 수행하는 처리를 의미하고, 픽셀 처리는 버텍스 처리에 의해 변환된 2차원 정보를 대상으로 2차원으로 표시되는 삼각형 등의 내부에 면을 채우는 등의 처리를 의미한다. 버텍스 처리와 픽셀 처리는 처리 대상 정보가 다를 뿐이지, 3차원 그래픽 데이터를 렌더링 하기 위한 일련의 처리과정으로 볼 수 있다.
각 특성에 관한 데이터를 정리해보면 다음과 같다.
우선, 3차원 점(vertex)의 특징으로는 3차원 점의 기본적인 위치 좌표 및 변현된 점의 위치좌표에 관한 점의 위치(position), 법선(normal), 점이 반사하는 색(diffuse color), 물체가 반짝이는 경우, 반짝이는 색(specular color), 재질 정보의 좌표(texture coordinate) 등이 있다. 재정 정보 좌표는 하나 이상이 존재할 수 있으며, 하드웨어 따라 4 내지 8개 까지 가능하다.
다음으로, 프리미티브 특성으로는 점들의 집합, 선들의 집합, 삼각형의 집합, 접의 개수, 인덱스(index)의 여부 및 인덱스가 포함된다. 선들의 집합에는 라인 리스트(line list)와 라인 스트립(line strip)이 있다. 라인 리스트는 선들이 개별적으로 존재하는 것을 나타낸다. 예를 들어, 포지션이 A, B, C, D인 경우 A-B, C-D 두개의 선분이 존재한다. 라인 스트립은 선들이 중첩적으로 존재하는 것을 나타낸다. 예를 들어, 포지션이 A, B, C, D인 경우 A-B, B-C, C-D 세개의 선분이 존재한다. 또, 삼각형의 집합에는 트라이앵글 리스트(Triangle list), 트라이앵글 스트립(Triangle strip), 트라이앵글 팬(Triangle fan)이 있다. 트라이앵글 리스트(Triangle list)는 삼각형들이 개별적으로 존재하는 것을 나타낸다. 예를 들어, 포지션이 A, B, C, D, E, F인 경우 (A B C), (D E F) 두개의 삼각형이 존재한다. 트라이앵글 스트립(Triangle strip)은 삼각형들이 중첩적으로 존재하는 것을 나타낸다. 예를 들어, 포지션이 A, B, C, D, E, F인 경우 (A B C), (B C D), (C D E), (D E F) 4개의 삼각형이 존재한다. 트라이앵글 팬(Triangle fan)은 삼각형들이 중심을 기준으로 중첩적으로 존재하는 것을 나타낸다. 예를 들어, 포지션이 A, B, C, D, E, F인 경우 (A B C), (A C D), (A D E), (A E F) 4개의 삼각형이 존재한다. 인덱스란, 예를 들어 삼각형을 구성하는 점들의 집합이 있을 경우 점들의 입력 순서 대신 인덱스를 사용하여 순서를 결정하는 것을 나타낸다.
다음으로, 버텍스 처리에 관한 렌더링 상태의 특성에는 점, 선, 삼각형 등의 프리미티브가 스크린 밖으로 나간 경우 밖에 나간 것을 제외시킬 것인지에 관한 클리핑 여부, 버텍스 처리만할 것인지 여부, 카메라 좌표계로 변환 여부, 카메라 법 선을 사용한 변환 여부, 광원 효과 여부, 광원의 종류, 안개 효과 여부, 최종 안개의 값 및 안개 효과의 종류 등이 포함된다.
다음으로, 픽셀 처리에 관한 렌더링 상태의 특성에는 적어도 하나의점이 중첩된 경우, 카메라에 가까운 점은 보이게 하고 멀리 있는 점은 보이지 않게 처리하는 방법인 Z 테스트를 수행할 것이지 여부, Z 테스팅 방법, Z 테스팅 후에 Z 버퍼(buffer) 즉, 각 점들의 색 정보가 아닌 깊이 정보만을 기록한 버퍼에 z 값을 기록할 것인지 여부, 그림자 등을 표현하기 위해 따로 존재하는 스텐실(stencil) 버퍼를 사용할 것인지 여부, 스텐실 테스팅의 종류, 거리에 따라 재질 정보가 변하지 않도록 또는 재질 정보의 변화가 최소화되도록 하는 기술인 텍스쳐 원근 수정의 여부, 사용되는 재질 정보의 개수, 각 재질 정보에 사용되는 연산의 종류, 스페큘라 사용여부 및 그 값, 안개 효과 여부 및 그 값, 안개 효과의 종류, 알파 블렌딩 여부 및 그 연산의 종류, 표현할 수 있는 색깔이 적을 때, 많은 색으로 표현된 그림은 적절하게 표현하는 방식인 디더링(dithering) 여부 등을 포함한다.
여기서, 언급한 각 특성들의 종류는 일 예에 불과하다. 따라서 당업자가 용이하게 생각할 수 있는 다양한 특성들이 더 포함될 수 있으며, 이는 본 발명의 범위에 속한다.
코드블록 저장부(130)는 소정 기능을 수행하는 코드로 이루어진 코드블록을 저장하고 있다. 코드블록의 일 예가 도 13a 및 도 13b에 도시되어 있다. 도 13a에 도시된 코드블록은 버텍스 처리를 위한 코드블록들을 나타내고, 도 13b에 도시된 코드블록은 픽셀 처리를 위한 코드블록들을 나타낸다. 각각의 코드블록은 소정 기 능을 수행하는 명령어들의 묶음이다. 이 렌더링 장치에서는 현재 렌더링할 3차원 그래픽 데이터의 특성에 따라 처리되어야 할 코드블록들만 추출하여 렌더링 함수를 구성하기 때문에, 불필요한 코드블록들이 포함되는 것을 막을 수 있다. 또한, 렌더링할 3차원 데이터의 특성에 따라 처리되어야 할 코드블록만을 렌더링 함수에 포함시키기 때문에 분기 블록 또는 조건문이 렌더링 함수에 포함되는 것을 막을 수 있다.
함수 생성부(120)는 데이터 분석부(110)에서 분석한 데이터의 특성 정보를 참조하여 그 특성 정보에 대응하는 코드블록들을 코드블록 저장부(130)에서 읽어오고, 읽어온 코드블록들을 조합함으로써 입력된 3차원 그래픽 데이터의 특성에 적합하게 구성된 렌더링 함수를 생성한다. 이와 같이 생성된 렌더링 함수는 렌더링부(150)로 제공된다.
렌더링부(150)는 이 생성된 렌더링 함수를 사용하여 입력된 3차원 그래픽 데이터를 렌더링한 후, 렌더링된 3차원 그래픽 데이터를 프리젠테이션 엔진(160)으로 전송하고, 프리젠테이션 엔진(160)은 렌더링된 3차원 그래픽 데이터를 디스플레이 장치로 전송하여 디스플레이 한다.
또한, 3차원 그래픽 데이터의 특성상 특성이 비슷한 객체들이 하나 이상 있을 수 있으므로, 이와 같이 한번 생성된 렌더링 함수는 다음번에 다시 사용될 수 있도록 저장되는 것이 바람직하다. 따라서, 캐쉬(140)는 생성된 렌더링 함수를 저장해 두는 역할을 수행한다.
함수 생성부(120)는 생성된 렌더링 함수를 렌더링부(150)로 출력할 뿐만 아 니라 캐쉬(140)에도 전송하여 저장할 수 있도록 한다. 그리고, 다음번 렌더링 과정에서 함수 생성부(120)는 입력된 3차원 그래픽 데이터의 특성에 맞는 렌더링 함수를 먼저 캐쉬(140)에서 검색해보고, 캐쉬(140)에서 검색되는 경우에는 코드블록 저장부(130)로부터 입력된 3차원 그래픽 데이터의 특성에 맞는 코드블록을 읽어오고, 읽어온 코드블록을 조합하여 렌더링 함수를 다시 생성할 필요 없이 캐쉬(140)에서 검색된 렌더링 함수를 호출하여 이 호출된 렌더링 함수를 이용하여 입력된 3차원 그래픽 데이터를 렌더링할 수 하도록 이 호출된 렌더링 함수를 렌더링부(150)로 제공하면 된다. 캐쉬(140)는 선택적으로 이용할 수 있는 수단이므로 점선으로 표시하였다.
도 2는 도 1a에 도시된 렌더링 엔진(100)의 일 실시예에 따른 렌더링 과정을 나타내는 흐름도이다.
제 200단계에서, 데이터 분석부(110)는 입력된 3차원 그래픽 데이터의 특성을 분석하고, 분석된 특성 정보를 함수 생성부(120)로 제공한다.
제 210단계에서, 함수 생성부(120)는 분석된 특성 정보에 대응하는 적어도 하나의 코드블록을 코드블록 저장부(130)에서 읽어온다.
제 220단계에서, 함수 생성부(120)는 읽어온 코드블록을 조합하여 렌더링 함수를 생성하고, 생성된 렌더링 함수를 렌더링부(150)로 제공한다.
제 230단계에서, 렌더링부(150)는 생성된 렌더링 함수를 이용하여 3차원 그래픽 데이터를 렌더링하고, 렌더링된 3차원 그래픽 데이터를 프리젠테이션 엔진(160)으로 전송한다.
제 240단계에서, 프리젠테이션 엔진(160)은 전송받은 렌더링된 3차원 그래픽 데이터를 디스플레이 한다.
도 1b는 도 1a에 도시된 캐쉬(140)의 구체적인 일 예를 나타낸다.
도 1b를 참조하면, 캐쉬(140)는 8개의 블록으로 나누어져 있고, 총 8개의 렌더링 함수가 저장될 수 있다. 예를 들어, 캐쉬(140)의 제1블록(141)에는 렌더링 함수 1이 저장되어 있고, 캐쉬(140)의 제2 블록(142)에는 렌더링 함수 2 가 저장되어 있고, 캐쉬(140)의 제3 블록(143)에는 렌더링 함수 3이 저장되어 있다. 이와 같은 방법으로 캐쉬(140)의 제4 블록(144)에는 렌더링 함수 4가, 제5 블록(145)에는 렌더링 함수 5가, 제6 블록(146)에는 렌더링 함수 6이, 제7 블록(147)에는 렌더링 함수 7이, 제8 블록(148)에는 렌더링 함수 8이 저장되어 있다.
그리고, 캐쉬(140)의 각 블록에 대응하여 두 개의 카운터가 마련될 수 있다. 하나는 대응하는 렌더링 함수가 총 사용된 회수를 나타내는 카운터이고 다른 하나는 대응하는 렌더링 함수가 최근에 참조된 정도를 나타내는 카운터이다.
사용된 회수 카운터는 렌더링 함수가 캐쉬(140)에 처음으로 저장될 때 0으로 초기화되고, 이 블록에 저장된 렌더링 함수가 이용될 때마다 1씩 증가된다. 렌더링 함수 1은 2번 사용되었음을 나타내고, 렌더링 함수 2는 3번 이용되었음을 나타낸다. 최근 참조정도 카운터는 대응하는 렌더링 함수가 최근에 얼마나 참조되었는지를 알려주는 카운터로서 이 역시 대응하는 렌더링 함수가 참조될 때마다 카운터 값이 1씩 증가되도록 구현되어야 할 것이다. 다만, 최근 참조 정도를 나타내기 위해 소정 시간 간격마다 업데이트 되는 것이 바람직하다.
이와 같이 카운터를 두는 이유는 렌더링 함수들 중 어느 하나를 제거해야 할 때 제거할 함수를 선택하는 기준으로 삼기 위함이다. 즉, 캐쉬(140)의 모든 블록에 렌더링 함수가 이미 저장되어 있어서 새로 생성된 렌더링 함수를 저장할 블록이 없을 때는 캐쉬(140)에 저장된 렌더링 함수를 제거해야 하는데, 이때 가장 사용빈도가 낮은 렌더링 함수를 제거하거나 또는 최근에 참조정도가 낮은 렌더링 함수를 제거하는 것이 효율적인 하나의 방법이 될 수 있다. 따라서, 도 6을 참조하면, 사용된 회수 카운터만을 이용하여 제거할 렌더링 함수를 선택한다면 렌더링 함수 3에 대한 카운터 값이 1로서 가장 낮은 값을 나타내기 때문에 새로 생성된 렌더링 함수를 저장하기 위해서는 렌더링 함수 3을 제거하고 제3 블록(143)에 저장하면 된다. 또한 최근 참조 정도 카운터만을 이용하여 제거할 렌더링 함수를 선택한다면, 렌더링 함수 2에 대한 카운터 값이 1로서 가장 낮은 값을 나타내기 때문에 새로 생성된 렌더링 함수를 저장하기 위해서는 렌더링 함수 2를 제거하고 제2 블록(142)에 저장하면 된다. 또는, 사용된 회수 카운터와 최근 참조정도 카운터를 적절히 혼용하여 제거할 렌더링 함수를 선택할 수도 있을 것이다. 물론 제거할 렌더링 함수를 선택하는 방법은 캐쉬 정책에 따라 다양하게 구현할 수 있다. 자주 사용되는 방법은 LRU(Least Recently Used) 방법을 최근에 가장 사용빈도가 낮은 렌더링 함수를 교체하는 것이다.
이제, 코드블록을 이용하여 렌더링 함수를 생성하는 구체적인 예를 설명하겠다. 도 13은 버텍스 처리 과정에서의 분기블록과 코드블록들이 섞여 있는 흐름도의 일 예를 나타낸다.
분기블록이란 3차원 그래픽 데이터의 특성을 분석하여 그 특성에 따라 어떤 코드블록을 수행할 지를 판단하는 조건문 또는 분기문을 의미한다. 코드블록이란 3차원 그래픽 데이터의 특성에 따라 수행되어야 하는 소정 기능을 수행하는 코드들의 집합을 나타낸다. 이 렌더링 방법에서는 3차원 그래픽 데이터의 특성을 분석하여, 그 특성에 따른 코드블록들로만 렌더링 함수를 생성한다. 여기서, 3차원 그래픽 데이터의 특성의 분석은 분기블록의 판단과정에 의해 이루어진다.
도 13을 참조하면, 버텍스 처리와 관련된 전체 흐름도는 다음과 같다.
3차원 그래픽 데이터의 버텍스 처리와 관련된 특성을 분석하여, 분기블록 B1의 판단결과가 Yes이면 코드블록 C1, C2, C3, C4를 수행하고 처리를 종료하고, No이면 코드블록 C5, C6을 수행하고, 분기블록 B2를 판단한다. 분기블록 B2의 판단결과가 Yes이면 코드블록 C7, C8를 수행하고, No이면 분기블록 B3를 판단한다. 분기블록 B3의 판단결과가 Yes 이면 코드블록 C9, C10를 수행하고 No이면 분기블록 B4를 판단한다. 분기블록 B4의 판단결과가 Yes이면 코드블록 C11을 수행하고 No 이면 분기블록 B5를 판단한다. 분기블록 B5의 판단결과가 Yes이면 분기블록 B6를 판단하고, No이면 분기블록 B8을 판단한다. 분기블록 B6의 판단 결과가 No이면 코드블록 C14를 수행하고 Yes이면 코드블록 C12를 수행하고, 분기블록 B7를 판단한다. 분기블록 B7의 판단결과가 Yes이면 코드블록 C13을 수행하고, No이면 분기블록 B8을 판단한다. 분기블록 B8의 판단결과가 Yes이면 코드블록 C17, C18, C19, C20을 수행하고, No이면 분기블록 B9을 판단한다. 분기블록 B9의 판단결과가 No이면 코드블록 C17 내지 C20을 수행하고, Yes이면 코드블록 C15 및 C16을 수행하고, 분기블 록 B10을 판단한다. 분기블록 B10의 판단결과가 No이면 코드블록 C21 및 C22를 수행하고 처리를 종료하며, Yes이면 코드블록 C22를 수행하고 처리를 종료한다.
코드블록 저장부(130)는 도 15에 도시된 바와 같이 버텍스 처리와 관련된 코드블록 C1 내지 C22를 저장하고 있다.
데이터 분석부(110)에서는 도 14에 도시된 바와 같은 분기블록을 이용하여 렌더링할 3차원 그래픽 데이터의 특성을 분석하고, 그 특성에 대응하는 코드블록을 도 15에 도시된 바와 같은 코드블록들로부터 읽어오고, 읽어온 코드블록들을 조합하여 렌더링 함수를 생성한다.
각 분기블록이나 코드블록의 내용은 버텍스 처리를 위해 필요한 분기블록이나 코드블록들의 예를 나타낸 것으로, 이것은 예시적인 것일 뿐이고, 각 분기블록이나 코드블록의 세부적인 의미나 내용은 본 발명의 범위를 벗어나므로 분기블록이나 코드블록의 상세한 설명은 생략하기로 한다.
도 16a 및 도 16b는 도 13에 도시된 흐름도에서 생성될 수 있는 렌더링 함수의 예들을 나타낸다.
도 16a를 참조하면, 렌더링 함수 1은 코드블록 C1, C2, C3, C4로 구성된다.
도 13 및 도 14를 참조하면, 분기블록 B1의 판단에 의해 버텍스 포맷이 XYZRHW 이면서 클리핑인 경우에는 코드블록 C1, C2, C3, C4가 수행되어야 하므로 함수 생성부(120)는 도 15에 도시된 코드블록들 중 C1, C2, C3, C4를 읽어오고, 이들을 조합하여 C1, C2, C3, C4로 이루어진 렌더링 함수 1을 생성한다.
도 16b를 참조하면, 렌더링 함수 2는 코드블록 C5, C6, C12, C15, C16, C21, C22로 구성된다.
도 13 및 도 14을 참조하면, 데이터 분석부(110)는 입력된 3차원 그래픽 데이터를 분석하여, 버텍스 포맷이 XYZRHW 이면서 클리핑인지를 판단하는 분기블록 B1의 판단결과로 No를 결정하고, 클리핑이 아니거나 버텍스 프로세싱인가를 판단하는 분기블록 B2의 판단결과 No를 결정하고, 클리핑인지를 판단하는 분기블록 B3의 판단결과 No를 결정하고, CAMERA VERTEX인지를 판단하는 분기블록 B4의 판단결과 No를 결정하고, CAMERA NORMAL인지를 판단하는 분기블록 B5의 판단결과 Yes를 결정하고, 버텍스 포맷에 노말을 포함하는지를 판단하는 분기블록 B6의 판단결과 Yes를 결정하고, 노말라이제이션을 해야하는지를 판단하는 분기블록 B7의 판단결과 No를 결정하고, 라이팅인지를 판단하는 분기블록 B8의 판단결과 No를 결정하고, DO NOT COPY DATA인지를 판단하는 분기블록 B9의 판단결과 Yes를 결정하고, Fog인지를 판단하는 분기블록 B10의 판단결과 No를 결정한다. 데이터 분석부(110)는 이와 같이 결정된 3차원 그래픽 데이터의 버텍스 처리 관련 특성 정보를 함수 생성부(120)로 제공한다.
함수 생성부(120)는 수신된 버텍스 처리 관련 특성 정보에 따라 이에 대응하는 코드블록 C5, C6, C12, C15, C16, C21, C22를 도 11에 도시된 바와 같은 코드블록들로부터 읽어오고, 읽어온 코드블록들을 조합하여 렌더링 함수를 생성한다. 이와 같이 생성된 렌더링 함수는 렌더링할 3차원 그래픽 데이터의 특성에 따라 처리할 코드블록들만이 포함하며, 분기블록도 포함하지 않는다.
도 17은 픽셀 처리과정에서의 분기블록과 코드블록들이 섞여 있는 흐름도의 일 예를 나타낸다.
도 17을 참조하면, 입력된 3차원 그래픽 데이터의 픽셀 처리와 관련된 특성을 분석하여 분기블록 B11의 판단결과가 Yes이면 코드블록 C23을 수행하고, No이면 분기블록 B12를 판단한다. 분기블록 B12의 판단결과가 Yes이면 코드블록 C24를 수행하고, No이면 분기블록 B13를 판단한다. 분기블록 B13의 판단결과가 No이면 종료하고, Yes이면 분기블록 B14를 판단한다. 분기블록 B14의 판단결과가 No 이면 분기블록 B16을 판단하고, Yes이면 분기블록 B15를 판단한다. 분기블록 B15의 판단결과가 Yes이면 코드블록 C25를 수행하고, 분기블록 B16으로 진행하며 No이면 코드블록 C26을 수행하고 분기블록 B16으로 진행한다. 분기블록 B16의 판단결과가 No이면, 분기블록 B15로 진행하고, Yes이면 분기블록 B17을 판단한다. 분기블록 B17의 판단결과가 Yes이면 코드블록 C27을 수행하고 No이면 분기블록 B18을 판단한다. 분기블록 B18의 판단결과가 No이면 코드블록 C29, C30을 수행하고, Yes이면, 코드블록 C28, C29, C30을 수행하고 종료한다.
도 18는 도 17에 도시된 흐름도에서 분기블록의 내용을 나타낸다.
데이터 분석부(110)는 입력된 3차원 그래픽 데이터의 픽셀 처리와 관련된 특성을 파악하여 도 18에 도시된 바와 같은 분기블록의 판단에 따른 특성 정보를 함수 생성부(120)로 제공한다.
도 19은 도 17에 도시된 흐름도에서 코드블록의 내용을 나타낸다.
함수 생성부(120)는 데이터 분석부(110)로부터 픽셀 처리와 관련된 특성 정보를 수신하면 그에 대응하는 코드블록을 도 19에 도시된 코드블록들에서 읽어오 고, 읽어온 코드블록들을 조합하여 픽셀 처리를 수행하기 위한 렌더링 함수를 생성한다.
도 20a 및 도 20b는 도 17에 도시된 흐름도에서 생성될 수 있는 렌더링 함수의 예들을 나타낸다.
도 20a를 참조하면, 렌더링 함수 1은 코드블록 C23, C24로 구성된다.
도 17 및 도 18를 참조하면, 데이터 분석부(110)는 입력된 3차원 그래픽 데이터를 분석하여, Z 테스팅 하는지를 판단하는 분기블록 B11의 판단결과로 No를 결정하고, 스텐실 테스팅 하는지를 판단하는 분기블록 B12의 판단결과로 No를 결정하고, Z 테스트, 스텐실 테스트 결과 현재 픽셀을 그릴 것인지 판단하는 분기블록 B13의 판단결과로 Yes를 결정하고, 재질 정보가 존재하는지를 판단하는 분기블록 B14의 판단결과로 Yes를 결정하고, 원근 수정(Perspective correction)을 할 것인지를 판단하는 분기블록 B15의 판단결과로 Yes를 결정하고, 모든 텍스쳐의 처리를 마쳤는지를 판단하는 분기블록 B16의 판단결과로 Yes를 결정하고, 알파 테스팅 및 블렌딩을 하는지를 판단하는 분기블록 B17의 판단결과로 Yes를 결정하고, 안개(Fog) 연산을 하는지를 판단하는 분기블록 B18의 판단결과로 Yes를 결정한다. 데이터 분석부(110)는 이와 같이 결정된 3차원 그래픽 데이터의 픽셀 처리 관련 특성 정보를 함수 생성부(120)로 제공한다.
함수 생성부(120)는 수신된 픽셀 처리 관련 특성 정보에 따라 이에 대응하는 코드블록 C25, 27, C28, C29, C30을 도 16에 도시된 바와 같은 코드블록들로부터 읽어오고, 읽어온 코드블록들을 조합하여 렌더링 함수 2를 생성한다. 이와 같이 생 성된 렌더링 함수는 렌더링할 3차원 그래픽 데이터의 특성에 따라 처리할 코드블록들만이 포함하며, 분기블록도 포함되지 않는다.
살펴본 바와 같이 도 1a에 도시된 코드블록을 이용한 3차원 그래픽 데이터 렌더링 장치는 렌더링 속도를 향상시키기 위해, 렌더링 과정에 포함될 수 있는 모든 코드들을 포함하는 하나의 렌더링 함수를 사용한 모든 3차원 그래픽 데이터를 렌더링하는 것이 아니라, 입력되는 3차원 그래픽 데이터의 특성에 따라 렌더링 함수를 새로 생성한다. 이와 같이 생성된 렌더링 함수에는 렌더링할 3차원 그래픽 데이터의 특성에 따라 처리할 코드블록들만이 포함되어 있으며 따라서 분기블록도 포함하지 않는다.
따라서, 이 렌더링 장치는 기존의 렌더링 함수에 포함된 코드들을 의미 있는 코드블록으로 묶어서 저장해두고, 입력된 3차원 그래픽 데이터의 특성에 따라 필요한 코드블록만을 조합하여 새로운 렌더링 함수를 구성한다. 또한, 이 렌더링 장치는 한번 생성된 렌더링 함수를 캐쉬(140)에 저장해두고 이 렌더링 함수에 대응되는 3차원 그래픽 데이터와 특성이 유사한 3차원 그래픽 데이터가 입력되는 경우, 다시 새로운 렌더링 함수를 생성하지 않고, 캐쉬(140)에 저장된 렌더링 함수를 이용함으로써 렌더링을 수행하는데 필요한 시간을 더욱 절약할 수 있다.
그러나, 이러한 렌더링 장치는 3차원 그래픽 데이터의 특성만을 고려하여 렌더링을 수행하므로, 렌더링이 수행되는 시스템의 전력 상황은 전혀 고려할 수 없는 문제가 여전히 존재한다. 따라서, 저전력으로 구동되는 모바일 기기에서 3차원 그래픽 데이터를 렌더링하기 위해서는 렌더링 장치에 저전력 구동 메카니즘을 추가한 것이 요구된다.
이제, 도 3 및 도 4를 참조하여, 본 발명에 따른 3차원 그래픽 렌더링 방법 및 장치를 설명하겠다.
도 3은 본 발명의 일 실시예에 따른 3차원 그래픽 데이터 렌더링 장치로서, 렌더링 엔진(300)과 프리젠테이션 엔진(360)을 포함한다.
렌더링 엔진(300)은 렌더링할 3차원 그래픽 데이터를 입력받고, 입력된 3차원 그래픽 데이터를 렌더링하고, 렌더링한 결과를 프리젠테이션 엔진(360)으로 제공한다. 프리젠테이션 엔진(360)은 전송받은 렌더링된 결과를 디스플레이 장치로 전송하여 디스플레이 한다.
렌더링 엔진(300)은 데이터 분석부(310), 설정부(305), 함수 생성부(320), 코드블록 저장부(330), 캐쉬(340), 렌더링부(350)를 포함하고, 설정부(305)는 렌더링 환경 분석부(370), 지정부(375) 및 제거부(380)를 포함한다.
데이터 분석부(310)는 입력받은 3차원 그래픽 데이터의 특성을 분석하고, 분석된 특성을 참조하여 3차원 그래픽 데이터를 렌더링하기위한 다수의 과정들을 선택한다. 도 1을 참조하여 설명한, 기존발명에 따르면, 선택된 다수의 과정들은 3차원 그래픽 데이터의 특성을 참조하여 필요한 과정들로 판단되어서 선택된 과정들이며, 분기문 등을 포함하지 않는 일련의 렌더링 과정이다. 데이터 분석부(310)는 선택된 다수의 과정들에 관한 정보를 제거부(380)로 전송한다.
도 11을 참조하여, 3차원 그래픽 데이터의 특성을 참조하여 선택되는 다수의 과정들의 구체적인 예를 살펴본다. 이 다수의 과정들은 3차원 그래픽 데이터를 렌 더링하기 위해 수행되는 소정 처리 과정들로서 예를 들면, 텍스쳐 필터링(texture filtering), 텍스쳐 밉 매핑(texture mip mapping), 안티 앨리어싱(anti-aliasing), 반사효과(specular), 디더링(dithering) 및 원근 수정(perspective correction) 등이 포함될 수 있다. 설명의 편의를 위하여, 이러한 소정 처리과정을 렌더링 옵션이라고 정의하기로 한다.
도 11을 참조하여 렌더링 옵션의 구체적인 기능들을 간략히 설명하겠다.
도 11은 각 렌더링 옵션의 기능을 설명하기 위한 참고도이다. 좌측은 각 렌더링 옵션이 오프(off)된 렌더링 함수를 이용하여 3차원 그래픽 데이터를 렌더링한 결과이고, 우측은 각 해당 렌더링 옵션이 온(on)된 렌더링 함수를 이용하여 3차원 그래픽 데이터를 렌더링한 결과이다.
도 11a는 렌더링 옵션 중 텍스쳐 필터링 처리에 의한 효과를 설명하기 위한 참고도이다. 3차원 그래픽 데이터는 텍셀 단위로 텍스쳐가 매핑되므로, 한 텍셀 내부의 픽셀들은 동일한 값을 갖게 된다. 따라서 텍셀의 경계가 마치 각이 진 것처럼 부자연스럽게 표현될 수 있다. 이를 개선하기 위해 텍스쳐 필터링 처리를 할 수 있는데, 텍스쳐 필터링에는 여러 가지 방식이 있을 수 있다. 도 9a에 적용된 방식은 해당 픽셀의 주변의 픽셀을 참조하여 해당점의 가중치를 교차 선형 보간(crossed linear interpolation)하여 새로운 픽섹을 생성하는 방식이다. 이를 통해 한 텍셀 내부에도 다양한 질감 또는 색상 표현이 가능하며, 텍셀간의 경계가 부드럽게 표현될 수 있다.
도 11b는 렌더링 옵션 중 텍스쳐 밉 매핑 처리에 의한 효과를 설명하기 위한 참고도이다. 텍스쳐 밉 매핑이란 여러 면적의 밉 맵(mip map) 즉, 동일한 대상에 대한 다양한 면적의 그림을 만즐어 놓고 매핑하고자 하는 폴리곤(polygon)에 가장 근사한 면적를 갖는 밉 맵을 이용하여 텍스쳐 매핑을 수행하는 것으로서 기계식으로 텍스쳐를 축소하므로 화질이 변화되는 것을 방지하기 위한 처리 과정이다.
도 11c는 렌더링 옵션 중 안티 앨리어싱 처리에 의한 효과를 설명하기 위한 참고도이다. 앨리어싱(aliasing)이란 나이퀴스트의 샘플링 법칙에 따라 3차원 그래픽 데이터가 불충분하게 샘플링되거나, 부적절하게 필터링된 경우, 발생할 수 있는 결함으로서, 이미지의 경계선이 계단과 같이 표현되는 효과를 의미한다. 이러한 앨리어싱 효과를 제거하기 위하여 안티 앨리어싱 처리 과정을 거치게 되는데, 경계선을 배경과 이미지의 중간색으로 단계적으로 채워 부드럽게 보이도록 처리하는 기능을 의미한다.
도 11d는 렌더링 옵션 중 스페큘라 효과를 설명하기 위한 참고도이다. 스페큘라 효과란 3차원 데이터를 사실적으로 표현하기 위하여 광원의 위치, 대상 객체 표현의 각도, 시점의 각도 등에 따라 대상 객체의 표면이 빛을 반사하는 듯한 효과를 갖도록 처리하는 기법이다.
도 11e는 렌더링 옵션 중 디더링 처리에 의한 효과를 설명하기 위한 참고도이다. 디더링 처리란 3차원 그래픽을 디스플레이 하는 디스플레이 장치의 해상도를 초과하는 다 계조 색상을 근사하게 표현하기 위하여 이미지의 각 면을 다른 계조 색상의 픽셀들로 처리하는 기술이다.
도 11f는 렌더링 옵션 중 원근 수정 처리에 의한 효과를 설명하기 위한 참고 도이다. 3차원 데이터를 2차원 화면에 표현하기 위해서는, 3차원 데이터를 2차원 화면에 투영하는 과정이 필요하며, 이 방법에는 크게 원근 투영과 직교 투영이 있다. 원근 투영이란 원근법을 적용하여 3차원 객체를 2차원 화면에 투영하는 과정에서 텍스쳐의 이미지가 굴곡이 진 형태 등으로 변형될 수 있다. 이를 보상하기 위하여 원근 수정 처리를 수행한다.
이상, 설명한 렌더링 옵션들은 개략적인 내용일 뿐이며, 이 외에도 다양한 기법에 의해 상기 렌더링 옵션들이 수행될 수 있으며, 상기 설명한 렌더링 옵션 외에도 3차원 그래픽 데이터를 사실적으로 표현하기 위한 다양한 기법들이 적용될 수 있다. 따라서 본 발명은 위에서 언급한 렌더링 옵션에 한정되지 않으며, 기타 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 용이하게 도출 가능한 다양한 렌더링 옵션들이 적용될 수 있음은 자명하며, 이는 본 발명의 보호범위에 속한다는 것도 자명할 것이다.
이제, 다시 도3의 렌더링 엔진(300)의 다른 구성들을 설명하겠다.
렌더링 환경 분석부(370)는 입력된 3차원 그래픽 데이터의 렌더링 환경을 분석한다. 렌더링 환경에는 예를 들어, 3차원 그래픽 데이터를 렌더링 하는 시스템의 전력 상태 또는 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리 또는 객체가 화면상에서 표현되는 면적 등이 포함될 수 있다. 렌더링 환경 분석부(370)는 분석한 렌더링 환경에 관한 정보를 지정부(375)로 제공한다.
지정부(375)는 전송받은 렌더링 환경을 분석한 결과를 고려하여 데이터 분석부(310)에서 선택된 다수의 렌더링 옵션 중에서 제거할 렌더링 옵션들을 지정하고, 지정된 렌더링 옵션에 관한 정보를 제거부(380)로 전송한다.
지정부(375)는 제거할 렌더링 옵션들을 지정함에 있어서, 데이터 분석부(310)로부터 선택된 다수의 렌더링 옵션들에 관한 정보를 제공받고, 이 중에서 제거하여도 3차원 그래픽 데이터로부터 표현되는 화질에 미치는 영향이 작은 렌더링 옵션들의 순서에 따라 제거할 렌더링 옵션들을 지정하는 것이 바람직할 것이다. 이 때, 지정부(375)는 3차원 그래픽 데이터의 특성을 고려하거나 후술할 거리 및 면적 분석부(374)에서 분석한 거리 및 면적을 고려하여 화질에 미치는 영향이 작은 렌더링 옵션의 순서를 설정할 수 있을 것이다.
제거부(380)는 데이터 분석부(310)로부터 선택된 다수의 렌더링 옵션에 관한 정보를 제공받고, 지정부(375)로부터 렌더링 환경을 고려하여 지정된 제거할 렌더링 옵션을 제공받는다. 그리고, 제거부(380)는 다수의 렌더링 옵션에서 지정된 렌더링 옵션을 제거한다. 지정된 렌더링 옵션이 제거된 나머지 렌더링 옵션에 관한 정보는 함수 생성부(320)로 제공된다.
함수 생성부(320)는 제거부(380)에서 제공받은 나머지 렌더링 옵션에 해당되는 3차원 그래픽 데이터를 렌더링하기 위한 소정 처리 과정들을 수행하는 적어도 하나의 코드블록들을 코드블록 저장부(330)에서 읽어오고, 읽어온 코드블록들을 조합하여 렌더링 함수를 생성하고, 생성된 렌더링 함수를 렌더링부(350)로 제공한다. 또는 제공받은 나머지 렌더링 옵션에 대응되는 렌더링 함수가 이전에 생성되어 캐쉬(140)에 저장되어 있는지 검색하고, 검색된 렌더링 함수가 있는 경우, 그 렌더링 함수를 불러들여 렌더링부(350)로 제공한다. 코드블록이란 3차원 그래픽 데이터를 렌더링 하기 위한 소정 처리과정들을 수행하는 코드들의 묶음이라 할 수 있다.
코드블록 저장부(330)와 캐쉬(340)는 도 1과 유사하므로 상세한 설명은 생략한다.
렌더링부(350)는 제공된 렌더링 함수를 사용하여 입력된 3차원 그래픽 데이터를 렌더링하고, 렌더링된 3차원 그래픽 데이터를 프리젠테이션부(360)에 전송한다.
프리젠테이션부(360)는 전송된 3차원 그래픽 데이터의 렌더링된 결과를 디스플레이 한다.
이제, 도 4를 참조하여, 본 발명의 일 실시예에 따른 3차원 그래픽 데이터 렌더링 방법을 설명하겠다.
제 400단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터의 특성을 분석한다.
제 410단계에서, 렌더링 엔진은 분석된 3차원 그래픽 데이터의 특성을 참조하여 3차원 그래픽 데이터를 렌더링하기 위한 다수의 과정들을 선택한다. 앞서 설명한 바와 같이, 이 다수의 과정들은 텍스쳐 필터링, 안티 앨리어싱 등의 기능들을 수행하는 과정을 말한다.
제 420단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터의 렌더링 환경을 분석한다.
제 430단계에서, 렌더링 엔진은 분석된 렌더링 환경에 대응되는 적어도 하나의 과정을 지정한다.
제 440단계에서, 렌더링 엔진은 선택된 다수의 과정들에서 지정된 적어도 하나의 과정을 제거한다.
제 450단계에서, 렌더링 엔진은 적어도 하나의 과정이 제거된 나머지 과정에 대응되는 적어도 하나의 코드블록을 추출한다.
제 460단계에서, 렌더링 엔진은 추출된 적어도 하나의 코드블록을 조합하여 렌더링 함수를 생성한다.
제 470단계에서, 렌더링 엔진은 생성된 렌더링 함수에 기초하여 3차원 그래픽 데이터를 렌더링 한다.
제 480단계에서, 프리젠테이션 엔진은 전송받은 렌더링된 3차원 그래픽 데이터를 디스플레이 한다.
살펴본 바와 같이, 본 발명에 따른 3차원 그래픽 데이터 렌더링 방법 및 장치는 3차원 그래픽 데이터의 특성을 참조하여 선택된 다수의 과정들 중에서 3차원 렌더링 환경을 고려하여 지정된 일부 과정들을 제거한 나머지 과정들만을 포함하는 렌더링 함수에 의해 렌더링을 수행한다. 즉, 렌더링 함수에 포한되는 렌더링 옵션의 종류가 줄어든다.
도 11을 참조하여 설명한 바와 같이, 렌더링 옵션들을 추가하면 고화질의 3차원 그래픽을 구현할 수 있지만, 추가되는 렌더링 옵션들이 많을수록 계산량이 증가하며, 그에 따라 전력 소비도 증가한다. 렌더링 옵션들을 사용할 때 3차원 그래픽의 화질이 개선되는 것은 사실이나, 이를 사용하지 않더라도 3차원 그래픽 컨텐츠(contents) 자체가 달라지지는 않는다. 또한, 경우에 따라서 어떤 렌더링 옵션들 은 화질 개선에 큰 효과를 가져오지 못할 수 있다. 예를 들어, 3차원 그래픽 데이터의 샘플링 레이트(sampling rate)가 충분히 보장된 경우는 앨리어싱 효과가 크게 나타나지 않을 수 있고, 안티 앨리어싱 처리를 수행하지 않더라고 화질이 크게 저하되지 않을 수 있다. 이처럼 렌더링을 수행하는 시스템의 전력 사용이 부족한 경우 또한 렌더링 옵션이 화질 변화를 가져오지 못하는 경우에는 해당되는 렌더링 옵션을 제외한 렌더링 함수를 이용하여 렌더링을 수행하므로 추가적인 전력 소비를 방지할 수 있다.
특히, 시스템의 잔여 전력이 부족한 경우, 모든 렌더링 옵션을 수행하게 되면, 전력 부족현상으로 인해 모든 렌더링 옵션들이 제대로 수행되지 못하거나, 아예 3차원 그래픽 데이터를 렌더링 하지 못하게 될 수 있다. 따라서 시스템의 전력 상태를 고려하여 화질 개선 효과가 작은 렌더링 옵션부터 순차적으로 제외시킴으로 시스템의 전력 상황을 고려하여 설정된 렌더링 옵션을 이용하여 렌더링을 수행하므로 제한된 전력조건하에서도 화질 저하를 최소한으로 하면서 렌더링을 안정적으로 수행할 수 있게 된다.
도 5는 일부 렌더링 옵션을 오프시킴에 따라 개선되는 렌더링 처리 속도를 나타내는 표이다. 도 5에 도시된 표는 렌더링 옵션의 온/오프에 따라 1초당 처리되는 프레임(frame)의 개수(렌; frame per second)를 보여준다. 렌의 역수는 한 프레임을 렌더링하는데 사용되는 시간을 의미하고, 한 프레임을 렌더링하는데 사용되는 시간이 길어질수록 소비되는 전력이 커짐을 의미하므로, 표의 렌 값을 통해 상대적인 렌더링 과정의 전력 소비량을 추측할 수 있다.
도 5에 도시된 표에서 볼 수 있듯이, 텍스쳐 필터링과 원근 수정이 모두 오프(off)된 A의 경우는 나머지 B, C, D의 경우보다 렌이 높은 것을 보면, 상대적으로 적은 전력이 소비됨을 알 수 있고, 텍스쳐 필터링과 원근 수정이 모두 온(on)된 D의 경우가 가장 렌이 낮은 것을 보면, 상대적으로 많은 전력이 소비됨을 알 수 있다. 이처럼, 불필요한 렌더링 옵션을 제외한 렌더링 함수를 이용하여 3차원 그래픽 데이터를 렌더링 하게 되면, 화질 저하를 최소한으로 하면서 저전력으로 동작하는 렌더링 엔진을 구현할 수 있게 된다.
도 6a 내지 도 9b를 참조하여, 본 발명에 따른 렌더링 방법의 다양한 실시예를 설명하겠다.
이하, 도 3 및 도 6b를 참조하여 본 발명의 제1 실시예를 설명하겠다. 본 발명의 제 1실시예에 따르면, 렌더링 환경 분석부(370)는 전력상태 분석부(372)만을 포함할 수 있다.
전력상태 분석부(372)는 3차원 그래픽 데이터를 렌더링하는 시스템의 현재 전력 상태를 분석하고, 분석한 결과를 지정부(375)로 제공한다. 시스템의 전력상태에는 예를 들어, 시스템의 전력 잔량 또는 시스템에서 3차원 그래픽 데이터를 렌더링하는데 사용가능한 전력량 등이 포함될 수 있다.
전력상태 분석부(372)에서 시스템의 잔여 전력량을 분석하는 경우를 예로 들어 설명하겠다. 이 경우, 지정부(375)는 도 6b에 도시된 바와 같이, 렌더링 옵션과 해당 옵션을 끌(off) 최소 잔여 전력량간의 대응관계를 미리 설정해 놓고, 분석된 전력량과 미리 설정된 최소 잔여 전력량을 비교하여 분석된 전력량보다 큰 최소 잔여 전력량을 갖는 렌더링 옵션을 제거할 렌더링 옵션으로 지정할 수 있다.
이 대응관계는 전력 잔량의 크기가 큰 순서로 나열된 전력 상태들 각각과 3차원 그래픽 데이터로 표현되는 화질에 미치는 영향이 작은 순서로 나열된 렌더링 옵션들 각각이 일대일로 대응하도록 마련될 수 있다. 예를 들어, texture filtering(A), texture mipmap(B), anti-aliasing(C), specular(D), dithering(E) 및 perspective correction(F)의 렌더링 옵션 중에서 C, D, E, B, A, F의 순서로 먼저 꺼져야 한다면, 즉 이 순서가 화질에 미치는 영향이 작은 순서라면, 렌더링 옵션에 대응되는 해당 옵션을 끌 최소 잔여 전력량인 POWER_A내지 POWER_F를 설정함에 있어, 상기 렌더링 옵션의 순서에 대응하여 POWER_C를 가장 높게, POWER_F를 가장 낮게 설정하는 것이 바람직할 것이다.
또한, 지정부(375)는 화질에 미치는 영향이 작은 순서에 따라 렌더링 옵션이 꺼지도록 POWER_A 내지 POWER_F를 설정할 수 있으며, 이 때, 데이터 분석부(610)에서 분석된 3차원 그래픽 데이터의 특성을 고려하여 POWER_A 내지 POWER_F의 순서를 정할 수 있다. 또는, 후술할 거리 및 면적 분석부(374)에서 분석한 거리 및 면적을 고려하여 POWER_A 내지 POWER_F의 값들을 설정할 수도 있을 것이다.
도 6a는 본 발명의 제1 실시예에 따른 렌더링 방법의 흐름도이다.
제 600단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터의 특성을 분석한다.
제 610단계에서, 렌더링 엔진은 분석된 3차원 그래픽 데이터의 특성을 참조하여 3차원 그래픽 데이터를 렌더링하기 위한 다수의 과정들을 선택한다.
제 620단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터를 렌더링 하는 시스템의 현재 전력 상태를 분석한다.
제 630단계에서, 렌더링 엔진은 분석된 전력 상태에 따라 상기 다수의 과정들 중 적어도 하나의 과정을 지정한다.
제 640단계에서, 렌더링 엔진은 선택된 다수의 과정들에서 지정된 적어도 하나의 과정을 제거한다.
제 650단계에서, 렌더링 엔진은 적어도 하나의 과정이 제거된 나머지 과정에 대응되는 적어도 하나의 코드블록을 추출한다.
제 660단계에서, 렌더링 엔진은 추출된 적어도 하나의 코드블록을 조합하여 렌더링 함수를 생성한다.
제 670단계에서, 렌더링 엔진은 생성된 렌더링 함수에 기초하여 3차원 그래픽 데이터를 렌더링 한다.
제 680단계에서, 프리젠테이션 엔진은 전송받은 렌더링된 3차원 그래픽 데이터를 디스플레이 한다.
이와 같이, 본 발명의 제1 실시예에 따르면, 입력된 3차원 그래픽 데이터가 렌더링되는 시스템의 전력 상태를 고려하여, 렌더링이 수행되는 시스템의 제한된 전력 상황에 적합하게 렌더링 함수를 생성하므로 전력 소비를 감소시킬 수 있으며, 제한된 전력 상황에서도 안정되게 렌더링을 수행할 수 있다.
이하, 도 3 및 도 7b를 참조하여 제2 실시예를 설명하겠다. 본 발명의 제 2 실시예에 따르면, 렌더링 환경 분석부(370)는 거리 및 면적 분석부(374)만을 포함 할 수 있다.
거리 및 면적 분석부(374)는 3차원 그래픽 데이터의 대상 객체와 카메라와의 거리를 분석하며, 분석한 결과를 지정부(375)로 전송한다.
지정부(375)는 도 7b에 도시된 바와 같이, 렌더링 옵션과 해당 옵션을 끌(off) 최소 거리간의 대응관계를 미리 설정해 놓고, 분석된 거리와 미리 설정된 최소 거리와 비교하여 분석된 거리보다 먼 거리를 갖는 렌더링 옵션을 제거할 렌더링 옵션으로 지정할 수 있다. 바람직하게는, 도 6b에 도시된 렌더링 옵션과 해당 옵션을 끌(off) 최소 거리간의 대응관계는 3차원 그래픽 데이터가 표현하는 객체와 카메라와의 거리가 멀어짐에 따라 화질에 미치는 영향이 작은 렌더링 옵션이 순서대로 지정되도록 각 렌더링 옵션에 대응되는 최소 거리를 설정할 수 있다. 즉, 거리 값이 큰 순서로 나열된 거리 값들 각각과 화질에 미치는 영향이 작은 순서로 나열된 렌더링 옵션들 각각이 일대일로 대응하도록 마련될 수 있다.
도 7a는 본 발명의 제2 실시예에 따른 렌더링 방법의 흐름도이다.
제 700 단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터의 특성을 분석한다.
제 710단계에서, 렌더링 엔진은 분석된 3차원 그래픽 데이터의 특성을 참조하여 3차원 그래픽 데이터를 렌더링하기 위한 다수의 과정들을 선택한다.
제 720단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리를 분석한다.
제 730단계에서, 렌더링 엔진은 분석된 거리에 따라 적어도 하나의 과정을 지정한다.
제 740단계에서, 렌더링 엔진은 선택된 다수의 과정들에서 지정된 적어도 하나의 과정을 제거한다.
제 750단계에서, 렌더링 엔진은 적어도 하나의 과정이 제거된 나머지 과정에 대응되는 적어도 하나의 코드블록을 추출한다.
제 760단계에서, 렌더링 엔진은 추출된 코드블록을 조합하여 렌더링 함수를 생성한다.
제 770단계에서, 렌더링 엔진은 생성된 렌더링 함수에 기초하여 3차원 그래픽 데이터를 렌더링 한다.
제 780단계에서, 프리젠테이션 엔진은 전송받은 렌더링된 3차원 그래픽 데이터를 디스플레이 한다.
이와 같이 본 발명의 제2 실시예에 따르면, 입력된 3차원 그래픽 데이터가 표현하는 객체와 카메라와의 거리를 고려하여, 불필요한 렌더링 옵션들을 제외된 렌더링 함수를 생성하므로 렌더링을 수행하는데 필요한 전력 소비를 감소시키면서도 화질 저하는 최소화할 수 있다. 예를 들어, 카메라와 멀리 떨어진 물체는 화면상에서 작게 표시되기 때문에, 빛에 의한 반사효과를 표현하는 스펙큘라 등은 불필요할 수 있다. 따라서, 불필요한 렌더링 옵션은 제외하므로, 사용자가 느끼는 화질에는 별다른 차이가 없지만, 전력 소모량은 감소시킬 수 있게 된다.
그러나, 본 발명의 제2 실시예에서와 같이 객체와 카메라와의 거리만 고려하는 경우, 객체의 실제 크기를 고려할 수 없어 문제가 된다. 예를 들어, 객체와 카 메라와의 거리가 동일하게 멀더라도, 객체의 크기가 크면 크기가 작은 객체보다 화면상에 표시되는 면적이 넓기 때문에, 크기가 작은 객체보다 정교하게 렌더링이 수행될 필요가 있기 때문이다. 앞으로 설명할 본 발명의 제3 및 제4 실시예는 앞서 언급한 문제점을 해결하기 위해, 객체가 화면상에서 표현되는 면적을 고려하여 렌더링 함수를 생성하도록 하고 있다.
이하, 도 3 및 도 8b를 참조하여 제3 실시예를 설명하겠다. 본 발명의 제 3실시예에 따르면, 렌더링 환경 분석부(370)는 거리 및 면적 분석부(374)만을 포함할 수 있다.
거리 및 면적 분석부(374)는 3차원 그래픽 데이터가 표현하는 객체가 화면상에서 표현되는 면적을 분석하며, 분석한 결과를 지정부(375)로 전송한다. 여기서,
지정부(375)는 도 8b에 도시된 바와 같이, 렌더링 옵션과 해당 옵션을 끌(off) 최소 면적간의 대응관계를 미리 설정해 놓고, 분석된 면적과 미리 설정된 최소 면적을 비교하여 분석된 면적보다 작은 면적을 갖는 렌더링 옵션을 제거할 렌더링 옵션으로 지정할 수 있다.
이 대응관계는 크기가 큰 순서로 나열된 면적 값들 각각과 3차원 그래픽 데이터로 표현되는 화질에 미치는 영향이 작은 순서로 나열된 렌더링 옵션들 각각이 일대일로 대응하도록 마련될 수 있다. 즉, 객체가 화면상에서 표현되는 면적 값이 작아짐에 따라 화질에 미치는 영향이 작은 렌더링 옵션의 순서에 따라 렌더링 옵션이 제거되도록 각 렌더링 옵션에 대응되는 최소 면적값을 설정할 수 있다.
도 8a는 본 발명의 제3 실시예에 따른 렌더링 방법의 흐름도이다.
제 800 단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터의 특성을 분석한다.
제 810단계에서, 렌더링 엔진은 분석된 3차원 그래픽 데이터의 특성을 참조하여 3차원 그래픽 데이터를 렌더링하기 위한 다수의 과정들을 선택한다.
제 820단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터가 표현하는 객체가 화면상에서 표현되는 면적을 분석한다.
제 830단계에서, 렌더링 엔진은 분석된 면적에 대응되는 적어도 하나의 과정을 지정한다.
제 840단계에서, 렌더링 엔진은 선택된 다수의 과정들에서 지정된 적어도 하나의 과정을 제거한다.
제 850단계에서, 렌더링 엔진은 적어도 하나의 과정이 제거된 나머지 과정에 대응되는 적어도 하나의 코드블록을 추출한다.
제 860단계에서, 렌더링 엔진은 추출된 적어도 하나의 코드블록을 조합하여 렌더링 함수를 생성한다.
제 870단계에서, 렌더링 엔진은 생성된 렌더링 함수에 기초하여 3차원 그래픽 데이터를 렌더링 한다.
제 880단계에서, 프리젠테이션 엔진은 전송받은 렌더링된 3차원 그래픽 데이터를 디스플레이 한다.
이와 같이, 본 발명의 제3 실시예에 따르면, 입력된 3차원 그래픽 데이터가 표현하는 객체가 화면상에서 표현되는 면적을 고려하여, 불필요한 렌더링 옵션들을 제외하여 렌더링 함수를 생성하므로 렌더링을 수행하는데 필요한 전력 소비를 감소시키면서도 화질 저하는 최소화할 수 있다. 특히, 카메라와의 거리가 동일한 위치에 있는 객체라 하더라도 크기가 다를 경우, 화면상에서 표현되는 객체의 면적에 차이가 발생한다. 이 때, 화면상에서 표현되는 객체의 면적이 넓은 경우는, 면적이 좁은 경우보다 정교하게 렌더링될 필요가 있고, 수행되어야 할 렌더링의 옵션에도 차이가 있을 수 있다. 따라서, 실제 사용자가 화질을 직접적으로 느끼게 되는 화면상의 면적을 고려하므로, 객체와 카메라간의 거리만을 고려하는 경우보다 화질이 저하되는 것을 방지할 수 있다. 화면상에 표시되는 면적이 넓은데도 카메라와의 거리만으로 일부 렌더링 옵션을 제외하는 경우, 화질이 예상치 못하게 저하될 수 있기 때문이다.
이하, 도 3 및 도 9b를 참조하여 제4 실시예를 설명하겠다. 본 발명의 제 4실시예에 따르면, 렌더링 환경 분석부(370)는 거리 및 면적 분석부(374)를 포함할 수 있으며, 입력된 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리와 객체가 화면상에 표현되는 면적을 종합적으로 고려하여 제거할 렌더링 옵션을 지정할 수 있다.
거리 및 면적 분석부(374)는 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리 및 객체가 화면상에서 표현되는 면적을 분석하며, 분석한 결과를 지정부(375)로 전송한다.
지정부(375)는 거리 및 면적 분석부(374)에서 분석된 거리 및 면적을 종합적으로 고려하여 제거할 렌더링 옵션을 지정한다. 예를 들어, 다음 수학식 1을 이용 하여 거리 및 면적을 고려한 함수값을 계산하고, 이 함수값에 대응하는 렌더링 옵션을 지정한다.
f(d, S) = a * (D-d)/D + (1-a)* s/S
a : 가중치(0??a??1)
d : 대상 객체와 카메라와의 거리
s : 대상 객체의 화면상의 면적
D : 거리를 최대값으로 설정된 상수
S : 면적의 최대값으로 설정된 상수
f(d, s)는 0 에서 1사이의 값을 가지며, 가중치 a는 사용자의 요구 및/또는 렌더링할 3차원 그래픽 데이터의 특성에 따라서 조절되도록 할 수 있다. 예를 들어,화면상의 면적이 렌더링 옵션을 설정하는데 중요한 요소일 경우는 a를 0으로 설정하여 카메라와의 거리는 고려하지 않고 화면상의 면적만을 고려하여 렌더링 옵션을 설정하도록 할 수 있다. 반대로 카메라와의 거리가 중요한 요소일 경우는 a를 1로 설정할 수 있을 것이다. 또한, 거리와 면적 두 요소를 모두 동등하게 고려하고자 한다면, a를 0.5로 설정하여 f(d, s)를 계산할 수 있을 것이다.
지정부(375)는 도 9b에 도시된 바와 같이, 렌더링 옵션과 해당 옵션을 끌(off) f(d, s)와의 대응관계를 미리 설정해 놓고, 계산된 함수값과 해당 옵션을 끌(off) 함수값을 비교하여 계산된 함수값에 대응하는 렌더링 옵션을 제거할 렌더링 옵션으로 지정할 수 있다. 이 함수값은 객체와 카메라간의 거리가 멀어질수록 값이 작아지며, 객체가 화면상에서 표현되는 면적이 작아질수록 값이 작아진다. 따라서, 이 대응관계는 함수값의 큰 순서로 나열된 다수의 함수값들 각각과 화질에 미치는 영향이 작은 순서로 나열된 다수의 렌더링 옵션 각각이 일대일로 대응하는 관계일 수 있다. 즉, 함수값이 작아짐에 따라 다수의 렌더링 옵션 중 화질에 미치는 영향이 작은 순서에 따라 렌더링 옵션들이 제거되도록 각 렌더링 옵션에 대응되는 함수값 즉, f(d, s)값을 설정할 수 있을 것이다.
도 9a는 본 발명의 제4 실시예에 따른 렌더링 방법의 흐름도이다.
제 900 단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터의 특성을 분석한다.
제 910단계에서, 렌더링 엔진은 분석된 3차원 그래픽 데이터의 특성을 참조하여 3차원 그래픽 데이터를 렌더링하기 위한 다수의 과정들을 선택한다.
제 920단계에서, 렌더링 엔진은 입력된 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리 및 객체가 화면상에서 표현되는 면적을 분석한다.
제 930단계에서, 렌더링 엔진은 분석된 거리 및 면적에 대응되는 적어도 하나의 과정을 지정한다. 즉, 거리 및 면적을 이용하여 계산된 소정 값에 대응되는 적어도 하나의 과정을 지정한다.
제 940단계에서, 렌더링 엔진은 선택된 다수의 과정들에서 지정된 적어도 하나의 과정을 제거한다.
제 950단계에서, 렌더링 엔진은 적어도 하나의 과정이 제거된 나머지 과정에 대응되는 적어도 하나의 코드블록을 추출한다.
제 960단계에서, 렌더링 엔진은 추출된 코드블록을 조합하여 렌더링 함수를 생성한다.
제 970단계에서, 렌더링 엔진은 생성된 렌더링 함수에 기초하여 3차원 그래픽 데이터를 렌더링 한다.
제 980단계에서, 프리젠테이션 엔진은 전송받은 렌더링된 3차원 그래픽 데이터를 디스플레이 한다.
이와 같이, 본 발명의 제4 실시예에 따르면, 입력된 3차원 그래픽 데이터의 대상 객체와 카메라와의 거리 및 대상 객체의 화면상의 면적을 종합적으로 고려하여, 불필요한 렌더링 옵션들을 제외된 렌더링 함수를 생성하므로, 렌더링을 수행하는데 필요한 전력 소비를 감소시키면서도 화질 저하는 최소화할 수 있다. 특히, 거리와 면적을 종합적으로 고려하므로 화질 저하를 더욱 감소시킬 수 있다.
도 12은 본 발명의 제4 실시예에 따라 객체와 카메라와의 거리 및 객체가 화면상에 표시되는 면적을 고려하여 생성된 렌더링 함수에 의해 3차원 그래픽 데이터를 렌더링한 결과, 화질이 크게 저하되지 않았음을 보여주는 참고도이다. 구체적으로, 좌측의 렌더링 결과는 거리 및 면적을 고려하여 텍스쳐 필터링 처리에 관한 렌더링 옵션이 제거된 렌더링 함수를 이용하여 입력된 3차원 그래픽 데이터를 렌더링한 경우이고, 우측은 텍스쳐 필터링 처리를 포함한 렌더링 함수를 이용하여 렌더링한 경우이다. 좌측의 렌더링 과정이 우측의 렌더링 과정에 비해 렌더링 속도가 향상되고, 렌더링을 수행하는데 소비되는 전력량이 감소하지만, 화질에 있어서는 좌측과 우측이 거의 동일함을 확인할 수 있다.
살펴본 바와 같이, 본 발명에 의한 3차원 그래픽 데이터 렌더링 방법 및 장치에 의하면, 3차원 그래픽 데이터의 특성을 참조하여 선택된 일련의 과정에 포함되는 다수의 렌더링 옵션들 중에서 3차원 그래픽 데이터의 렌더링 환경을 고려하여 일부 렌더링 옵션을 제외하므로, 도 5에서 볼 수 있는 것과 같이 렌더링 처리 속도가 향상된다. 그러나, 렌더링 처리 속도가 빨라지는 만큼 처리되는 프레임의 개수가 증가된다면, 한 프레임을 처리하는데 소비되는 전력량은 감소하겠지만 결국 일정 시간동안 소비되는 전력량에는 큰 변화가 없을 것이다.
또한, 그런데, 인간의 느낄 수 있는 화질에는 한계가 있기 때문에, 일정 속도 이상으로 프레임 전송 속도가 증가된다고 하더라고 인간이 느끼는 화질에는 별 차이가 없게 된다. 예를 들어, 애니메이션의 경우, 24 fps, 텔레비전 영상데이터의 경우에는 29.9 fps 이상의 전송 속도로 영상을 출력하더라도 사람이 느끼는 화질은 크게 개선되지 않는다.
따라서, 본 발명의 일 실시예에 따르면, 렌더링부(350)는 3차원 그래픽 데이터의 프레임들을 소정 시간동안 소정 개수이상 렌더링하지 않는 것이 바람직할 것이다. 여기서 프레임이란, 3차원 그래픽 데이터를 렌더링하는 일 처리 단위를 말한다.
프리젠테이션 엔진(360)는 렌더링부(350)에서 전송된 렌더링된 결과를 실시간으로 디스플레이 하므로 3차원 그래픽 데이터의 전송 속도를 제어하기 위해서는 렌더링부(350)에서 렌더링하는 프레임의 개수를 제어해야한다.
예를 들어, 3차원 그래픽 데이터의 전송 속도가 30 fps를 넘지 않도록 하고 자 한다면, 렌더링엔진에서 3차원 그래픽 데이터를 렌더링 하는 속도가 1초에 30 프레임을 넘지 않도록 해야 한다.
이처럼 렌더링부(350)에서 소정 시간동안 소정 프레임 이상 렌더링을 수행하지 않도록 하기 위해, 본 발명에 따른 3차원 그래픽 데이터 렌더링 장치는 대기시간 계산부(390)를 더 포함할 수 있다.
대기시간 계산부(390)는 미리 설정된 최대 전송 속도를 이용하여 3차원 그래픽 데이터 한 프레임을 렌더링하는데 사용할 수 있는 시간(T_max)을 계산하고, 렌더링부(350)에서 현재 프레임을 렌더링하는데 실제로 사용된 시간(T_real)을 측정한다. 그리고, 계산된 최대 사용시간(T_max)에서 실제 사용시간(T_real)을 뺀 대기시간(T_delay)을 계산하여 렌더링부(350)로 전송한다. 만약 실제 사용시간(T_real)이 최대 사용시간(T_max)보다 길어진 경우는, 대기시간(T_delay)이 음수가 될 것이다. 이 경우는 대기시간(T_delay)을 0으로 수정하여 렌더링부(350)로 전송하므로, 렌더링부(350)에서 대기하는 과정 없이 바로 다음 프레임을 렌더링하도록 할 수 있도록 할 수 있다.
렌더링부(350)는 대기시간 계산부(390)에서 계산된 대기시간을 전송받고, 전송받은 대기시간(T_delay)만큼 대기한 후, 현재 프레임의 다음 프레임을 렌더링한다.
예를 들어, 최대 전송 속도가 30 fps로 설정된 경우, 한 프레임당 렌더링하는데 사용할 수 있는 시간(T_max)은 1000ms/30 fps 즉, 33.3ms가 된다. 실제 사용된 시간(T_real)이 15ms라면, 대기시간(T_delay)은 33.3ms - 15ms = 18ms가 된다. 렌더링부(350)는 현재 프레임의 대기시간(T_deal)을 전송받고, 18ms를 대기한 후 다음 프레임의 렌더링을 수행한다. 물론, 최대 전송 속도는 입력되는 3차원 그래픽 데이터의 종류 또는 3차원 그래픽 데이터를 렌더링하는 시스템의 스펙에 따라 유동적으로 설정될 수 있을 것이다.
도 10은 본 발명의 일 실시예에 따른 렌더링부(350) 및 대기시간 계산부(390)의 동작을 설명하기 위한 흐름도이다.
제 1100단계에서, 렌더링 엔진은 현재 프레임을 렌더링하고, 렌더링한 결과를 출력한다.
제 1120단계에서, 렌더링 엔진은 현재 프레임을 렌더링하는데 소비된 시간을 측정한다.
제 1130단계에서, 렌더링 엔진은 렌더링의 제한속도에 따라 한 프레임에 주어지는 렌더링 시간 또는 렌더링 주기와 측정된 소비시간과의 차인 대시시간을 계산한다.
여기서, 렌더링 제한속도란 렌더링 엔진(300)에서 소비되는 전력량을 줄이기 위해서, 렌더링부(350)에서 소정 시간동안 렌더링하는 프레임의 개수를 제한하기 위한 속도이다. 제한속도가 설정되면, 설정된 제한속도에 따라 한 프레임에 주어지는 렌더링 시간 또는 주기가 결정된다. 예를 들어, 렌더링부(350)에서 3차원 그래픽 데이터를 렌더링하는 속도를 최대 30 fps로 제한하는 경우, 즉, 1초에 30 프레임 이상 렌더링하지 않도록 제한하는 경우, 한 프레임에 주어지는 렌더링 주기(T_max)는 1/30 second 즉, 33.3ms가 될 것이다.
제 1140단계에서, 렌더링 엔진은 계산된 대기시간이 음수인지 판단한다.
계산된 대기시간이 음수가 아닌 경우, 제 1150단계로 진행하고, 음수인 경우는 제 1160단계로 진행한다.
제 1150단계에서, 렌더링 엔진은 계산된 대시시간만큼 대기한다.
제 1160단계에서, 렌더링 엔진은 다음 프레임을 렌더링 한다.
살펴본 바와 같이, 본 발명에 따른 3차원 그래픽 데이터 렌더링 장치 및 방법은 입력되는 3차원 그래픽 데이터의 종류 또는 3차원 그래픽 데이터를 렌더링하는 시스템의 스펙을 고려하여 설정된 출력 전송 속도에 따라 렌더링 하므로, 화질의 향상에 큰 영향을 주지 못하는 불필요한 렌더링을 방지할 수 있어, 전력 손실을 줄일 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치, 프로브 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에 따른 3차원 그래픽 렌더링 방법 및 장치는, 3차원 그래픽 데이터의 렌더링 환경을 고려하여, 3차원 그래픽 데이터를 렌더링하기위한 다수의 과정들 중 적어도 하나의 과정을 제거하고, 적어도 하나의 과정이 제거된 나머지 과정들만 수행하는 렌더링 함수를 이용하여 3차원 그래픽 데이터를 렌더링한다. 따라서, 렌더링 환경에 따라 렌더링 과정에서 필요한 소비 전력을 감소시킬 수 있으며, 그로 인한 화질의 저하도 최소화시킬 수 있다.
또한, 본 발명에 따른 렌더링 방법 및 장치는 3차원 그래픽 데이터의 종류 또는 렌더링 시스템의 처리 능력 등을 고려하여 렌더링 속도를 제한하고, 제한된 렌더링 속도에 맞추어 3차원 그래픽 데이터를 렌더링하므로, 화질 향상의 효과도 없이 불필요하게 렌더링 속도만 증가함으로 인한 전력 손실을 방지할 수 있다.

Claims (18)

  1. (a) 3차원 그래픽 데이터의 렌더링 환경을 고려하여, 화질과 관련된 상기 3차원 그래픽 데이터를 렌더링하는 과정들 중 적어도 하나의 과정을 제거하는 단계;
    (b) 상기 적어도 하나의 과정이 제거된 나머지 과정을 수행하는 렌더링 함수를 생성하는 단계; 및
    (c) 상기 생성된 렌더링 함수를 이용하여 상기 3차원 그래픽 데이터를 렌더링하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  2. 제1항에 있어서, 상기 렌더링 환경은 상기 3차원 그래픽 데이터를 렌더링하는 시스템이 현재 사용가능한 전력량을 포함하는 것을 특징으로 하는 렌더링 방법.
  3. 제2항에 있어서, 상기 (a)단계는
    (a1) 상기 시스템이 현재 사용가능한 전력량을 분석하는 단계;
    (a2) 상기 렌더링하는 과정들이 화질에 영향을 미치는 정도를 고려하여 상기 렌더링하는 과정들 각각에 상기 과정들을 제거할 기준이 되는 최소 잔여 전력량을 대응시킨 대응관계와 상기 시스템이 현재 사용가능한 전력량에 기초하여 상기 렌더링하는 과정들 중 적어도 하나의 과정을 지정하는 단계; 및
    (a3) 상기 렌더링하는 과정들 중 상기 지정된 적어도 하나의 과정을 제거하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  4. 제3항에 있어서, 상기 (a2)단계는
    상기 대응관계는 화질에 미치는 영향이 작은 렌더링 과정일수록 상기 렌더링 과정에 대응하는 최소 잔여 전력량에 큰 것을 대응시키는 관계임을 특징으로 하는 렌더링 방법.
  5. 제1항에 있어서, 상기 렌더링 환경은 상기 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 현재 거리 및 상기 객체가 화면상에서 표현되는 현재 면적 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 렌더링 방법.
  6. 제5항에 있어서, 상기 (a)단계는
    (a1) 상기 현재 거리 및 상기 면적 중 적어도 어느 하나를 분석하는 단계;
    (a2) 상기 거리 길이 및 상기 면적의 크기 중 적어도 어느 하나에 따라 결정되는 다수의 소정 값들과 상기 렌더링하는 과정들간의 대응관계에 기초하여, 상기 분석된 결과를 이용하여 계산된 소정 값에 따라 적어도 하나의 과정을 지정하는 단계; 및
    (a3) 상기 렌더링하는 과정들에서 상기 지정된 적어도 하나의 과정을 제거하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  7. 제6항에 있어서, 상기 소정 값은
    상기 거리의 길이가 감소하거나 상기 면적의 크기가 증가할수록 증가하는 값이고,
    상기 대응관계는 화질에 미치는 영향이 작은 렌더링 과정일수록 상기 소정의 값이 작은 것에 대응되는 관계임을 특징으로 하는 렌더링 방법.
  8. 제1항에 있어서, 상기 렌더링 방법은
    (p1) 상기 3차원 그래픽 데이터의 특성을 분석하는 단계; 및
    (p2) 상기 분석된 3차원 그래픽 데이터의 특성을 참조하여 상기 렌더링하는 과정들을 선택하는 단계를 더 포함하고,
    상기 (a)단계는 상기 렌더링 환경을 고려하여, 상기 선택된 렌더링하는 과정들 중 적어도 하나의 과정을 제거하는 단계인 것을 특징으로 하는 렌더링 방법.
  9. 제1항에 있어서, 상기 (b)단계는
    (b1) 상기 나머지 과정이 수행하는 상기 3차원 그래픽 데이터를 렌더링하기위한 소정 기능들에 대응되는 적어도 하나의 코드블록을 추출하는 단계;
    (b2) 상기 추출된 코드블록을 조합함으로써 상기 렌더링 함수를 생성하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  10. 제1항에 있어서, 상기 (c)단계는
    상기 3차원 그래픽 데이터의 프레임들을 소정 시간동안 소정 개수이상 렌더링하지 않는 것을 특징으로 하는 렌더링 방법.
  11. 제10항에 있어서, 상기 (c)단계는
    (c1) 현재 프레임을 렌더링하는데 소비된 시간을 측정하는 단계;
    (c2) 상기 소정 시간 및 상기 소정 개수에 의해 결정되는 하나의 프레임의 렌더링 시간과 상기 측정된 시간의 차인 대기시간을 계산하는 단계; 및
    (c3) 상기 계산된 대기시간이 음수인 경우는 상기 현재 프레임의 다음 프레임을 렌더링 하고, 상기 계산된 대기시간이 음수가 아닌 경우는 상기 대시시간만큼 대기한 후에 상기 다음 프레임을 렌더링 하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법.
  12. 제1항 내지 제11항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  13. 3차원 그래픽 데이터의 렌더링 환경을 고려하여, 화질과 관련된 상기 3차원 그래픽 데이터를 렌더링하는 과정들 중 적어도 하나의 과정을 제거하는 설정부;
    상기 적어도 하나의 과정이 제거된 나머지 과정을 수행하는 렌더링 함수를 생성하는 함수 생성부; 및
    상기 생성된 렌더링 함수를 이용하여 상기 3차원 그래픽 데이터를 렌더링하는 렌더링부를 포함하는 것을 특징으로 하는 렌더링 장치.
  14. 제13항에 있어서, 상기 설정부는
    상기 렌더링 환경을 분석하는 렌더링 환경 분석부;
    상기 렌더링 환경이 가질 수 있는 다수의 상태들과 상기 렌더링하는 과정들간의 대응관계에 기초하여, 상기 분석된 렌더링 환경의 상태에 따라 적어도 하나의 과정을 지정하는 지정부; 및
    상기 렌더링하는 과정들 중 상기 지정된 적어도 하나의 과정을 제거하는 제거부를 포함하는 것을 특징으로 하는 렌더링 장치.
  15. 제13항에 있어서, 상기 렌더링 환경은 상기 3차원 그래픽 데이터를 렌더링하는 시스템이 현재 사용가능한 전력량을 포함하는 것을 특징으로 하는 렌더링 장치.
  16. 제13항에 있어서, 상기 렌더링 환경은 상기 3차원 그래픽 데이터가 표현하는 객체와 카메라간의 거리 및 상기 객체가 화면상에서 표현되는 면적 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 렌더링 장치.
  17. 제13항에 있어서, 상기 렌더링 장치는
    상기 3차원 그래픽 데이터의 특성을 분석하고, 상기 분석된 3차원 그래픽 데이터의 특성을 참조하여 상기 렌더링하는 과정들을 선택하는 데이터 분석부를 더 포함하는 것을 특징으로 하는 렌더링 장치.
  18. 제13항에 있어서, 상기 렌더링부는
    상기 3차원 그래픽 데이터의 프레임들을 소정 시간동안 소정 개수이상 렌더링하지 않는 것을 특징으로 하는 렌더링 장치.
KR1020060080719A 2006-08-24 2006-08-24 3차원 그래픽 데이터 렌더링 방법 및 장치 KR100829561B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060080719A KR100829561B1 (ko) 2006-08-24 2006-08-24 3차원 그래픽 데이터 렌더링 방법 및 장치
US11/892,427 US8379013B2 (en) 2006-08-24 2007-08-22 Method, medium and apparatus rendering 3D graphic data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060080719A KR100829561B1 (ko) 2006-08-24 2006-08-24 3차원 그래픽 데이터 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080019119A KR20080019119A (ko) 2008-03-03
KR100829561B1 true KR100829561B1 (ko) 2008-05-15

Family

ID=39224433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060080719A KR100829561B1 (ko) 2006-08-24 2006-08-24 3차원 그래픽 데이터 렌더링 방법 및 장치

Country Status (2)

Country Link
US (1) US8379013B2 (ko)
KR (1) KR100829561B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8480482B2 (en) 2002-04-18 2013-07-09 Igt Method and apparatus for providing a bonus to a player based on a credit balance
US8127297B2 (en) 2007-10-31 2012-02-28 International Business Machines Corporation Smart virtual objects of a virtual universe independently select display quality adjustment settings to conserve energy consumption of resources supporting the virtual universe
US8013861B2 (en) 2007-10-31 2011-09-06 International Business Machines Corporation Reducing a display quality of an area in a virtual universe to conserve computing resources
US8214750B2 (en) 2007-10-31 2012-07-03 International Business Machines Corporation Collapsing areas of a region in a virtual universe to conserve computing resources
US8127235B2 (en) 2007-11-30 2012-02-28 International Business Machines Corporation Automatic increasing of capacity of a virtual space in a virtual world
US8068120B2 (en) * 2008-03-07 2011-11-29 Via Technologies, Inc. Guard band clipping systems and methods
US8199145B2 (en) * 2008-05-06 2012-06-12 International Business Machines Corporation Managing use limitations in a virtual universe resource conservation region
US20090281885A1 (en) * 2008-05-08 2009-11-12 International Business Machines Corporation Using virtual environment incentives to reduce real world energy usage
GB2461912A (en) * 2008-07-17 2010-01-20 Micron Technology Inc Method and apparatus for dewarping and/or perspective correction of an image
US9268385B2 (en) 2008-08-20 2016-02-23 International Business Machines Corporation Introducing selective energy efficiency in a virtual environment
CN103080981B (zh) * 2010-08-27 2016-03-02 矽锂铬艺术有限公司 选择纹理映射水平的方法及利用该方法的材质贴图系统
US9682315B1 (en) * 2011-09-07 2017-06-20 Zynga Inc. Social surfacing and messaging interactions
US20140204101A1 (en) * 2011-11-30 2014-07-24 Murali Ramadoss Adaptive frame rate control for a graphics subsystem
CN103186917B (zh) * 2011-12-30 2017-09-22 腾讯科技(深圳)有限公司 一种实现视图动画显示的方法和装置
US10198856B2 (en) * 2013-11-11 2019-02-05 Oxide Interactive, LLC Method and system of anti-aliasing shading decoupled from rasterization
JP6373620B2 (ja) * 2014-04-01 2018-08-15 株式会社ソニー・インタラクティブエンタテインメント ゲーム提供システム
JP6412708B2 (ja) 2014-04-01 2018-10-24 株式会社ソニー・インタラクティブエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
KR102313529B1 (ko) * 2015-03-09 2021-10-15 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 최적 렌더링에 기반한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20170034727A (ko) 2015-09-21 2017-03-29 삼성전자주식회사 그림자 정보 저장 방법 및 장치, 3d 렌더링 방법 및 장치
KR102009765B1 (ko) 2017-03-24 2019-08-12 주식회사 피티오크리에이티브 모바일용 전체 조명 실시간 렌더링 방법
KR102411764B1 (ko) * 2017-06-30 2022-06-22 주식회사 넥슨코리아 이미지 생성 방법 및 장치
US11127214B2 (en) * 2018-09-17 2021-09-21 Qualcomm Incorporated Cross layer traffic optimization for split XR
US11436783B2 (en) 2019-10-16 2022-09-06 Oxide Interactive, Inc. Method and system of decoupled object space shading
US11625848B2 (en) * 2020-01-30 2023-04-11 Unity Technologies Sf Apparatus for multi-angle screen coverage analysis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060088273A (ko) * 2005-02-01 2006-08-04 삼성전자주식회사 3차원 그래픽스 데이터를 랜더링하는 방법 및 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530477A (en) 1994-04-29 1996-06-25 Intel Corporation Method and apparatus for selectively omitting video frames during playback
JPH089347A (ja) 1994-06-22 1996-01-12 Matsushita Electric Ind Co Ltd 動画像伝送装置
US5805171A (en) * 1996-07-19 1998-09-08 Van Houten Technologies, Inc. Technical schematic display system utilizing preassigned component detail levels
US6072498A (en) * 1997-07-31 2000-06-06 Autodesk, Inc. User selectable adaptive degradation for interactive computer rendering system
US6160559A (en) * 1997-09-30 2000-12-12 Intel Corporation Method and apparatus for providing frame-time feedback to graphics application programs
US6313838B1 (en) * 1998-02-17 2001-11-06 Sun Microsystems, Inc. Estimating graphics system performance for polygons
US20020080143A1 (en) * 2000-11-08 2002-06-27 Morgan David L. Rendering non-interactive three-dimensional content
US7017053B2 (en) * 2002-01-04 2006-03-21 Ati Technologies, Inc. System for reduced power consumption by monitoring video content and method thereof
US20030210271A1 (en) * 2002-05-13 2003-11-13 King William Davis Power based level-of- detail management system for a portable computer graphics display
JP2003162734A (ja) 2002-09-02 2003-06-06 Namco Ltd ゲームシステム及び情報記憶媒体
US7268785B1 (en) * 2002-12-19 2007-09-11 Nvidia Corporation System and method for interfacing graphics program modules
US7418606B2 (en) * 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
KR20050061249A (ko) 2004-01-15 2005-06-22 엔에이치엔(주) 단말 수단의 영상 신호 처리 능력에 연동되는 영상데이터의 정밀도 조정 방법 및 조정 시스템
US7656417B2 (en) * 2004-02-12 2010-02-02 Ati Technologies Ulc Appearance determination using fragment reduction
US20070211055A1 (en) * 2006-03-10 2007-09-13 Autodesk, Inc. Adaptive degradation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060088273A (ko) * 2005-02-01 2006-08-04 삼성전자주식회사 3차원 그래픽스 데이터를 랜더링하는 방법 및 장치

Also Published As

Publication number Publication date
KR20080019119A (ko) 2008-03-03
US20080074415A1 (en) 2008-03-27
US8379013B2 (en) 2013-02-19

Similar Documents

Publication Publication Date Title
KR100829561B1 (ko) 3차원 그래픽 데이터 렌더링 방법 및 장치
US6259461B1 (en) System and method for accelerating the rendering of graphics in a multi-pass rendering environment
US7042462B2 (en) Pixel cache, 3D graphics accelerator using the same, and method therefor
KR101286318B1 (ko) 렌더링된 그래픽 엘리먼트들을 위한 성능 메트릭들의 시각적 표현의 디스플레이
JP3635051B2 (ja) 画像生成方法及び装置、画像処理プログラムを記録した記録媒体、画像処理プログラム
CN111508052B (zh) 三维网格体的渲染方法和装置
EP1519319A2 (en) Method and apparatus for antialiased blending in image rendering
EP3346448B1 (en) Graphics processing method and system
JP4116648B2 (ja) オクルージョンカリング方法および描画処理装置
JP4142065B2 (ja) 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法
KR20130029149A (ko) 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US20020126133A1 (en) Fast anisotropic/anisotropy sensitive single MIPmap sampled filtering
EP2797054B1 (en) Rendering of an indirect illumination data buffer
KR100668326B1 (ko) 3차원 그래픽스 데이터를 랜더링하는 방법 및 장치
KR20060125269A (ko) 그래픽스 처리장치와 처리방법, 및 그 기록 매체
KR20210152952A (ko) 그래픽 프로세싱
KR20180060198A (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
EP1519317A1 (en) Apparatus and method for antialiasing based on z buffer or normal vector information
KR20170040698A (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
CN111986304A (zh) 使用射线追踪和光栅化的结合来渲染场景
KR20180023856A (ko) 그래픽 처리 시스템 및 그래픽 프로세서
EP1759355B1 (en) A forward texture mapping 3d graphics system
KR20180037838A (ko) 텍스쳐를 처리하는 방법 및 장치
US20060202990A1 (en) Computer graphics system and method for rendering a computer graphic image
JP5937957B2 (ja) リアルタイム大局照明レンダリングシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130422

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140424

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150422

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160422

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 12