KR102282189B1 - 밉맵 생성 방법 및 장치 - Google Patents

밉맵 생성 방법 및 장치 Download PDF

Info

Publication number
KR102282189B1
KR102282189B1 KR1020140082528A KR20140082528A KR102282189B1 KR 102282189 B1 KR102282189 B1 KR 102282189B1 KR 1020140082528 A KR1020140082528 A KR 1020140082528A KR 20140082528 A KR20140082528 A KR 20140082528A KR 102282189 B1 KR102282189 B1 KR 102282189B1
Authority
KR
South Korea
Prior art keywords
mipmap
level
calculated
texture
mipmap level
Prior art date
Application number
KR1020140082528A
Other languages
English (en)
Other versions
KR20160004096A (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 KR1020140082528A priority Critical patent/KR102282189B1/ko
Priority to US14/598,590 priority patent/US9881392B2/en
Publication of KR20160004096A publication Critical patent/KR20160004096A/ko
Application granted granted Critical
Publication of KR102282189B1 publication Critical patent/KR102282189B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Abstract

밉맵 생성 장치가, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하고, 텍스처에 대한 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하고, 밉맵 상태 레지스터를 이용하여, 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 판단 결과에 기초하여, 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는, 방법이 개시된다.

Description

밉맵 생성 방법 및 장치{Mipmap Generation Method and apparatus}
개시된 실시 예들은 밉맵 생성 방법 및 장치에 관한 것이다.
텍스처 매핑(texture mapping)이란 컴퓨터 그래픽스 분야에서 가상의 삼차원 물체의 표면에 세부적인 질감을 묘사하거나 색을 칠하는 기법이다. 텍스처란, 텍스처 매핑 시 물체의 표면에 입혀지는 이미지를 의미한다. 일반적으로 텍스처 매핑에서 단순한 이차원 정지 이미지인 2D 텍스처가 사용되며, 이때 렌더링 속도의 향상과 에일리어싱(aliasing) 방지를 위해 밉맵(mipmap)이라는 기법이 사용된다.
3차원 그래픽스의 텍스처 매핑 분야에서, 밉맵은 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이다. 밉맵을 사용할 경우 최종 결과에서 텍스처가 입혀지는 물체의 크기를 고려하여 이에 대응되는 텍스처를 사용하게 된다. 텍스처가 미리 그려진 이미지인 경우, 밉맵으로 사용되는 여러 크기의 이미지는 일반적으로 오프라인으로 계산되어 렌더링 시 즉시 사용될 수 있다.
특정한 경우에 있어, 미리 그려진 텍스처를 사용할 수 없는 경우가 있다. 렌더-투-텍스처(render to texture)란, 동적으로 화면을 반영하는 표면 등의 특수 효과를 만들 때 렌더링을 화면이 아닌 텍스처에 수행하여, 프로그램 실행 중에 텍스처를 생성하고, 이를 다른 장면의 렌더링에 사용하는 기법이다. 또한, 정지 영상이 아닌 동영상을 텍스처로 사용하는 경우도 있다. 예들 들어, 가상의 공간에 존재하는 TV를 렌더링 하는 경우, 화면에 보여지는 영상 자체를 모델링 하는 것은 어렵기 때문에, 모델링된 화면에 동영상의 각 프레임을 텍스처로 사용하여 마치 TV 영상이 나오는 것과 같은 효과를 얻을 수 있다. 이러한 기법은 텍스처 스트리밍, 혹은 (동적) 비디오 텍스처라고 한다.
비디오 텍스처에서, 요구되는 비디오 프레임을 계산하고 해당 프레임의 압축을 해제해야 현재 렌더링 중인 장면에 사용할 2D 텍스처를 얻을 수 있다. 또한, 렌더-투-텍스처의 경우에도 해당 장면의 렌더링이 완료된 이후에 사용할 텍스처가 생성된다. 이렇게 얻은 텍스처는 밉맵이 아닌 기본 크기의 텍스처이므로 밉맵 생성과정을 거쳐야 일반적인 텍스처와 같이 사용이 가능하다. 이처럼 응용 프로그램의 실행 중에 매 프레임에 대한 밉맵을 생성하는 경우, 오프라인에서 생성이 가능한 일반 영상의 텍스처와 달리 응용 프로그램의 속도가 저하될 수 있다.
일 실시예는 실제 밉맵이 요청된 시점으로 밉맵 생성 시점을 지연시켜 요청되는 밉맵 레벨의 밉맵을 생성할 수 있는 밉맵 생성 방법 및 장치를 제공한다.
또한, 다른 실시예는 사용될 밉맵 레벨을 예측하고, 예측된 밉맵 레벨의 밉맵을 준비할 수 있는 장치 및 방법을 제공한다.
일 실시 예에 따른 밉맵 생성 방법은, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 단계; 상기 텍스처에 대한 요청을 수신하고, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 단계; 상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하는 단계; 및 상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 단계를 포함한다.
또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및 상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계; 상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함할 수 있다.
또한, 상기 밉맵을 생성하는 것으로 결정하는 단계는, 상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및 상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함할 수 있다.
또한, 상기 밉맵 상태 레지스터를 할당하는 단계는, 상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하는 단계; 상기 밉맵 레벨을 예측하는 단계; 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계; 상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계; 및 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 더 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및 상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계; 상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함할 수 있다.
또한, 상기 밉맵을 생성하는 것으로 결정하는 단계는, 상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및 상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함할 수 있다.
또한, 상기 밉맵 상태 레지스터를 할당하는 단계는, 상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하는 단계를 더 포함하고, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계는, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하는 단계를 포함하고, 상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계는, 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하는 단계를 포함하고, 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계는, 상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하는 단계를 포함하고, 상기 밉맵 레벨을 산출하는 단계는, 상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록하는 단계를 더 포함할 수 있다.
또한, 상기 밉맵 레벨을 예측하는 단계는, 상기 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함할 수 있다.
또한, 상기 밉맵 레벨을 예측하는 단계는, 상기 프리미티브를 구성하는 정점의 좌표를 획득하는 단계; 상기 정점의 좌표에 기초하여 상기 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출하는 단계; 및 상기 프리미티브의 크기, 상기 프리미티브의 Z 평면상에서의 기울기, 상기 텍스처의 좌표 및 상기 텍스처의 크기에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함할 수 있다.
또한, 상기 허용 오차는 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부에 기초하여 조정될 수 있다.
또한, 상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및 상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하는 경우, 상기 허용 오차를 감소시키는 단계를 더 포함할 수 있다.
또한, 상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및 상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하지 않는 경우, 상기 허용 오차를 증가시키는 단계를 더 포함할 수 있다.
다른 실시예는, 상기 밉맵 생성 방법을 수행하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
또 다른 실시예는, 밉맵 생성 장치에 있어서, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 레지스터 할당부; 상기 텍스처에 대한 요청을 수신하고, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 밉맵 레벨 산출부; 및 상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 제어부를 포함한다.
또한, 상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵에 액세스 할 수 있다.
또한, 상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
또한, 상기 레지스터를 할당부는, 상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하고, 상기 제어부는, 상기 밉맵 레벨을 예측하고, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
또한, 상기 레지스터를 할당부는, 상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하고, 상기 제어부는, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하고, 상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하고, 상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록할 수 있다.
일 실시 예에 따른 밉맵 생성 방법은 프로그램의 실행 중에 밉맵을 생성하는 경우 밉맵 생성으로 인한 프로그램의 실행 속도 저하를 줄일 수 있다.
또한, 일 실시 예에 따른 밉맵 생성 방법은 실제 밉맵이 사용되는 시점에, 요청되는 밉맵 레벨의 밉맵을 생성할 수 있다.
또한, 일 실시 예에 따른 밉맵 생성 방법은 밉맵 레벨을 예측하여 밉맵을 생성할 수 있다.
도 1은 밉맵의 사용 예 및 일 실시예에 따른 지연된 밉맵 생성을 설명하기 위한 개념도이다.
도 2는 일 실시 예에 따른 밉맵 생성 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시 예에 따른 지연된 밉맵 생성 방법을 설명하기 위한 흐름도이다.
도 4는 도 3에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.
도 5는 다른 실시 예에 따른 밉맵 레벨을 예측하여 밉맵을 생성하는 방법을 설명하기 위한 흐름도이다.
도 6은 도 5에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.
도 7은 다른 실시 예에 따른 밉맵 레벨을 예측하는 방법을 설명하기 위한 흐름도이다.
도 8은 또 다른 실시 예에 따른 밉맵 레벨을 예측 시 허용 오차 조정을 설명하기 위한 예시도이다.
도 9는 일 실시 예에 따른 밉맵 생성 장치의 구조를 나타내는 블록도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 실시 예를 첨부도면을 참조하여 상세히 설명하기로 한다. 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 밉맵의 사용 예 및 일 실시예에 따른 지연된 밉맵 생성을 설명하기 위한 개념도이다.
도 1(a)는 일반적인 밉맵 집합 및 밉맵의 맵핑을 설명하기 위한 개념도이다.
밉맵은 하나의 이미지를 기반으로 이를 축소시킨 여러 개의 이미지로 구성된다. 구현에 따라 차이가 있지만 보통 6 내지 8정도의 레벨을 가지며, 낮은 레벨은 높은 정밀도를 가지는 원본 이미지를, 높은 레벨은 낮은 정밀도를 가지는 이미지를 나타낸다. 밉맵 레벨이 올라감에 따라 일반적으로 이미지의 가로, 세로는 각각 (2를 밉맵 레벨만큼 거듭제곱한)만큼 작아지게 된다. 보통 X, Y축 방향으로 동시에 축소되지만 특이한 경우 X, Y축으로 서로 다른 비율의 축소를 적용하여 최종 결과물의 품질을 향상시키기도 한다. 사용될 밉맵의 밉맵 레벨(Level Of Detail)은, 연산에 의해 산출된다. 오브젝트가 화면에 크게 사상되는 경우(110), 낮은 밉맵 레벨(120)이 선택된다. 동일한 텍스쳐를 사용하는 오브젝트가 화면에 작게 사상되는 경우(130), 높은 밉맵 레벨(140)이 선택된다.
일반적으로 텍스처로 사용될 2D 이미지가 생성되면, 텍스처 바인딩, 밉맵을 저장할 메모리 공간 할당, 밉맵 생성, 밉맵 사용의 순으로 단계가 진행된다.
도 1(b)는 일 실시예에 따른 지연된 밉맵 생성 및 사용을 나타내는 개념도이다.
일 실시예에 따르면, 밉맵 생성은 함수 호출 단계가 아닌, 밉맵이 사용될 시점으로 미뤄질 수 있다. 즉, 밉맵 생성 장치는 텍스처로 사용될 2D 이미지의 밉맵 생성 함수가 호출된 시점에 이를 기록해 두고 함수를 리턴시키고, 실제 텍스처 요청이 발생한 시점에 요청된 밉맵 레벨의 밉맵을 생성할 수 있다. 이 경우, 정확히 사용되는 밉맵 레벨의 밉맵만을 생성할 수 있다.
다른 실시예에 따르면, 밉맵 생성 장치는 프리미티브(primitive)의 셋업 단계를 거쳐 화면 좌표가 얻어진 시점에서 밉맵 레벨을 예측하고, 예측된 밉맵 레벨의 밉맵을 생성할 수 있다. 이 경우 드로우 명령을 받은 이후부터 각각의 프리미티브에 대한 픽셀 셰이딩(Pixel Shading)이 수행될 때까지의 시간 동안 밉맵이 생성될 수 있기 때문에, 밉맵이 생성되는 시간이 감춰질 수 있다. 프리미티브란, 컴퓨터 그래픽스에서 그래픽스 프로그램에 의해 개별적인 실체로 그려지고 저장, 조작될 수 있는 선/원/곡선/다각형과 같은 그래픽 디자인을 창작하는 데 필요한 요소를 의미한다. 개시된 실시예를 적용하기 위한 프리미티브는 복잡하지 않은 형태인 것을 가정한다. 또한, 픽셀 셰이딩이란, 렌더링 단계에서 각각의 픽셀을 부드럽게 보이도록 하는 기능을 의미한다.
개시된 실시예들은 초대규모 집적 회로 (VLSI: Very Large Scale Integration), 그래픽 처리 장치 (GPU: Graphics Processing Unit), 애플리케이션 프로세서 (AP: Application Processor) 등의 분야에 적용될 수 있으나, 이에 제한되지 않는다.
도 2는 일 실시 예에 따른 밉맵 생성 방법을 설명하기 위한 흐름도이다.
단계 210에서, 밉맵 생성 장치는 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(register)를 할당한다.
일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해 밉맵 상태 레지스터를 할당할 수 있다. 밉맵 상태 레지스터는, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트(bit)들의 집합인 비트 벡터로 구성될 수 있다. 밉맵 상태 레지스터는 해당 밉맵 레벨의 밉맵이 존재하는지 여부를 나타낼 수 있다.
다른 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨을 기록할 밉맵 예측 레지스터 및 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터 각각에 슬롯을 더 할당할 수 있다. 밉맵 생성 장치는 밉맵 레벨을 예측하고, 예측된 밉맵 레벨의 밉맵을 생성할 수 있다. 또한, 밉맵 생성 장치는 밉맵 상태 레지스터에 생성된 밉맵 레벨을 나타내도록 기록할 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 최초의 밉맵 상태 레지스터가 원본 텍스처(레벨 0)가 존재하는 것을 나타내도록 초기값을 설정할 수 있다.
단계 220에서, 밉맵 생성 장치는 텍스처에 대한 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨을 산출한다.
일 실시예에 따른 밉맵 생성 장치는 해당 오브젝트에 사용될 텍스처에 대한 밉맵 레벨을 산출할 수 있다. 밉맵 생성 장치는 픽셀 셰이딩에서 발생한 텍스쳐 요청에 따라, 주소 생성 유닛에서 참조할 밉맵의 레벨을 산출할 수 있다. 밉맵 레벨의 산출은 호스트 프로세서에서 수행될 수도 있고, 별도의 하드웨어에서 수행될 수도 있으나, 이에 제한되지 않는다.
단계 230에서, 밉맵 생성 장치는 밉맵 상태 레지스터에 기초하여, 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단한다.
밉맵 상태 레지스터에 기초하여 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하는 방법에 대해서는, 도 4에서 후술 하도록 한다.
단계 240에서, 밉맵 생성 장치는 판단 결과에 기초하여, 산출된 밉맵 레벨을 생성할지 여부를 결정한다.
일 실시예에 따른 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정할 수 있다. 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. 밉맵 생성 장치는 액세스한 밉맵을 이용하여 텍스처 맵핑을 수행할 수 있다.
예를 들어, 다른 프리미티브에 의해 해당 텍스처의 밉맵이 이미 생성되어 있는 경우, 밉맵 생성 장치는 재차 밉맵 생성 단계를 거칠 필요 없이, 필요한 밉맵 레벨의 밉맵을 액세스하여 텍스처 맵핑에 사용할 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정할 수 있다. 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. 밉맵 생성 장치는, 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
또한, 판단 결과, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 밉맵 생성 장치는 텍스처 요청을 다시 시도할 것을 명령할 수 있다. 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵을 생성하는 동안에, 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리할 수 있다.
일 실시예에 따라, 해당 밉맵이 준비되지 전까지 텍스처 요청에 대해 전술한 단계 220 내지 단계 240이 반복적으로 수행될 수 있다. 다른 텍스처 요청은 현재 처리 중인 텍스처와는 무관하게, 해당 밉맵이 준비되면 곧바로 처리될 수 있다.
도 3은 일 실시 예에 따른 지연된 밉맵 생성 방법을 설명하기 위한 흐름도이다.
도 2에서와 중복되는 설명은 생략한다.
단계 310에서, 밉맵 생성 장치는 비디오 프레임을 디코딩하고, 렌더-투-텍스처 기법을 적용하여 텍스처를 생성할 수 있다.
단계 320에서, 밉맵 생성 장치는 생성된 텍스처를 바인딩할 수 있다.
단계 330에서, 밉맵 생성 장치는 밉맵 생성 함수의 호출에 따라, 텍스처에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터를 할당할 수 있다.
일 실시예에 따라, 밉맵 생성 장치는 텍스처 밉맵 생성 명령과 무관하게 메모리 공간 할당 후, 밉맵은 생성하지 않은 채로 명령을 리턴할 수 있다.
단계 340에서, 밉맵 생성 장치는 텍스처 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨을 산출할 수 있다.
일 실시예에서 밉맵 생성 장치는, 픽셀 셰이딩 중 실제 텍스처 요청이 발생한 경우, 픽셀 셰이딩에서 발생한 텍스처 요청을 기반으로 주소 생성 유닛에서 참조할 밉맵의 레벨을 산출할 수 있다.
밉맵 생성 장치는 그래픽스 파이프라인(graphics pipeline)을 통과하여 해당 텍스처에 대한 실제 요청이 발생했을 때, 텍스처 주소를 참조해, 산출된 밉맵 레벨을 수신할 수 있다. 그래픽스 파이프라인이란, 3차원 컴퓨터 그래픽스에서 3차원 이미지를 2차원 래스터 이미지로 표현을 하기 위한 단계적인 방법을 의미한다. 대부분의 그래픽 카드는 그래픽 처리 과정을 3차원 사영, 윈도 클리핑, 셰이딩, 렌더링 등으로 나누어 각각의 하부 모듈에서 병렬적으로 수행할 수 있다.
단계 350에서, 밉맵 생성 장치는 밉맵 상태 레지스터를 이용하여 산출된 밉맵 레벨의 밉맵이 존재하는지 판단할 수 있다.
밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 단계 360을 수행하고, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 단계 370을 수행할 수 있다.
단계 360에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단됨에 따라, 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다.
밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단됨에 따라, 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정할 수 있다.
밉맵 생성 장치는 액세스된 밉맵을 해당 오브젝트에 대한 텍스처 맵핑에 사용할 수 있다.
예를 들어, 최초 상태에서는 원본 텍스처(레벨 0)만이 존재하지만, 산출된 밉맵 레벨이 레벨 0인 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단할 수 있다. 또한, 밉맵 생성 장치는 원본 텍스처를 사용하여 텍스처 맵핑을 수행할 수 있다.
다른 예로, 산출된 밉맵 레벨이 레벨 0이 아니지만, 해당 텍스처가 이전에 요청되어 산출된 밉맵 레벨의 밉맵이 이미 생성된 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단할 수 있다.
단계 370에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단됨에 따라, 텍스처 요청을 다시 시도할 것을 명령할 수 있다.
예를 들어, 해당 텍스처가 최초로 요청된 경우, 원본 텍스처(레벨 0)만이 존재하므로, 산출된 밉맵 레벨이 0이 아닌 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단할 수 있다.
밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단됨에 따라, 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정할 수 있다.
단계 380에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다.
일 실시예에 따라, 밉맵 생성을 함수 호출 단계가 아닌, 텍스처가 요청된 이후로 지연됨으로써, 밉맵 생성 장치는 실제로 사용되는 밉맵 레벨의 밉맵만을 생성할 수 있다. 따라서, 밉맵 생성 장치는 불필요한 밉맵 레벨의 밉맵 생성을 피할 수 있다.
단계 390에서, 밉맵 생성 장치는 밉맵 상태 레지스터에 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 생성된 밉맵의 밉맵 레벨에 대응되는, 밉맵 상태 레지스터의 비트 벡터에 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
또한, 밉맵 생성 장치는 일정 시간 경과 후, 텍스처 요청을 다시 수신할 수 있다. 즉, 다시 단계 340이 수행될 수 있다. 밉맵 생성 장치는 밉맵 상태 레지스터를 이용하여, 텍스처에 대해 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단할 수 있다. 판단 결과 산출된 밉맵 레벨의 밉맵이 존재하는 경우, 단계 360이 수행되어, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다.
일 실시예에 따르면, 원본 텍스처(레벨 0)만이 사용되었을 경우, 또는 해당 텍스처가 전혀 사용되지 않았을 경우, 밉맵 생성 단계를 생략할 수 있다. 이에 따라, 프로그램 실행 중 밉맵 생성에 따른 부하를 제거할 수 있다.
또한, 예를 들어, 8개의 밉맵 레벨 중 레벨 1의 텍스처만 사용되는 경우, 레벨 1의 밉맵만을 생성하면 되므로, 레벨 2 내지 레벨 8의 밉맵 생성에 필요한 시간 및 컴퓨팅 소스를 절감할 수 있다.
도 4는 도 3에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.
도 4a는 할당된 최초의 밉맵 상태 레지스터를 나타낸다.
일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해 밉맵 상태 레지스터를 할당할 수 있다. 즉, 밉맵 생성 장치는 각각의 텍스처마다 밉맵 상태를 저장하기 위해 저장 공간의 한 슬롯(slot)(430)을 할당할 수 있다. 도 4a를 참조하면, 제1 텍스처, 제2 텍스처, 제3 텍스처, … 각각에 대해 밉맵 상태 레지스터가 할당된 것이 나타난다.
밉맵 상태 레지스터는, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트(410-418)들의 집합인 비트 벡터(420)로 구성될 수 있다.
도 4a를 참조하면, 밉맵은 8개의 밉맵 레벨로 구현될 수 있다. 밉맵 상태 레지스터의 제1 비트(410)는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트(411)는 레벨 1을 나타내고, 제3 비트(412)는 레벨 2를 나타내고, 제4 비트(413)는 레벨 3를 나타내고, 제5 비트(414)는 레벨 4를 나타내고, 제6 비트(415)는 레벨 5를 나타내고, 제7 비트(416)는 레벨 6을 나타내고, 제8 비트(417)는 레벨 7을 나타내고, 제9 비트(418)는 레벨 8을 나타낼 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 최초의 밉맵 상태 레지스터가 원본 텍스처(레벨 0)가 존재하는 것을 나타내도록 초기값을 설정할 수 있다. 즉, 밉맵 상태 레지스터의 제1 비트는 ‘1’이고, 나머지 제2 내지 제9 비트는 ‘0’을 나타낼 수 있다. 이는, 현재 원본 텍스처만이 존재하며, 레벨 1 내지 레벨 8의 밉맵은 존재하지 않는다는 것을 나타낼 수 있다.
도 4b는 밉맵 생성 후 상태 레지스터를 나타낸다.
도 4b를 참조하면, 설명의 편의를 위해 제1 텍스처에 대한 상태 레지스터만이 도시되어 있다.
일 실시예에 따른 밉맵 생성 장치는, 밉맵 생성 단계에서, 밉맵 상태 레지스터에 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
예를 들어, 밉맵 생성 장치는, 요청되는 밉맵 레벨이 레벨 3인 경우, 원본 텍스처로부터 레벨 1, 레벨2, 및 레벨 3의 밉맵을 순차적으로 생성할 수 있다.
일 실시예에 따라, 요청되는 밉맵 레벨의 밉맵과 이전에 순차적으로 생성된 밉맵들을 모두 저장하는 경우(440), 밉맵 생성 장치는 제2 내지 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 1 내지 3을 나타내는 제2 내지 제4 비트는 ‘1’을 나타내고, 레벨 4 내지 8을 나타내는 제4 내지 제8 비트는 ‘0’을 나타낼 수 있다.
다른 실시예에 따라, 요청되는 밉맵 레벨의 밉맵만을 저장하고, 이전에 순차적으로 생성된 밉맵들은 저장하지 않는 경우(450), 밉맵 생성 장치는 밉맵 상태 레지스터의 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 3을 나타내는 제4 비트는 ‘1’을 나타내고, 레벨 1, 2, 4 내지 8을 나타내는 제2, 제3, 제5 내지 제9 비트는 ‘0’을 나타낼 수 있다.
도 5는 다른 실시 예에 따른 밉맵 레벨을 예측하여 밉맵을 생성하는 방법을 설명하기 위한 흐름도이다.
단계 510에서, 밉맵 생성 장치는 밉맵 생성 함수 호출에 따라, 텍스처에 대해, 해당 텍스처의 밉맵 레벨의 밉맵이 존재하는지 여부를 나타내는 밉맵 상태 레지스터 및 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당할 수 있다.
일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해, 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당할 수 있다.
단계 520에서, 밉맵 생성 장치는 렌더링을 시작할 수 있다.
단계 530에서, 밉맵 생성 장치는 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하는지 여부를 판단할 수 있다.
판단 결과, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하는 경우, 단계 540이 수행되고, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하지 않는 경우, 단계 545가 수행될 수 있다.
단계 545에서, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하지 않는다는 판단에 따라, 밉맵 생성 장치는 밉맵 기법의 적용이 없이 렌더링을 수행할 수 있다.
단계 540에서, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용한다는 판단에 따라, 밉맵 생성 장치는 사용될 밉맵 레벨을 예측할 수 있다.
일 실시예에 따라, 밉맵 생성 장치는 밉맵 예측 레지스터에 예측된 밉맵 레벨을 기록할 수 있다.
일 실시예에 따라, 밉맵 생성 장치는 오브젝트마다 밉맵 레벨을 예측할 수 있다. 이 경우, 실제 요청되는 밉맵 레벨의 산출은 오브젝트를 구성하는 각각의 픽셀마다 행해진다는 점에서, 밉맵 레벨의 산출과 밉맵 레벨의 예측은 차이가 있다.
일 실시예에 따라, 밉맵 생성 장치는 정점 셰이딩을 통과한 각 정점과 이를 기반으로 하는 프리미티브가 셋업 단계를 거쳐 화면 좌표가 얻어지면, 이를 기초로 하여 밉맵 레벨을 예측할 수 있다. 밉맵 생성 장치는 실제 텍스처 요청과 무관하게 그리기 명령(드로우 콜)이 들어온 이후 셋업 단계에서 각 프리미티브를 구성하는 여러 정점의 화면좌표, Z평면상 기울기, 텍스처 좌표 및 텍스쳐의 크기를 기반으로 해당 밉맵 레벨을 예측할 수 있다.
일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨의 밉맵을 생성할 수 있다. 또한, 밉맵 생성 장치는 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
밉맵 레벨을 예측하는 방법에 대해서는 도 7에서 상세히 후술한다.
단계 550에서, 밉맵 생성 장치는 텍스처를 요청하고 텍스처에 대해 요청되는 밉맵 레벨을 산출할 수 있다.
밉맵 생성 장치는 예측된 밉맵 레벨과는 별개로, 실제 맵핑에 사용될 밉맵 레벨을 산출할 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 밉맵 요청 레지스터 상에 산출된 밉맵 레벨을 기록할 수 있다.
단계 560에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단할 수 있다.
일 실시예에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 밉맵 상태 레지스터에 기초하여 판단할 수 있다.
판단 결과, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단되면, 단계 575가 수행되고, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단되면, 단계 570이 수행될 수 있다.
단계 575에서, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단됨에 따라, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다.
밉맵 생성 장치는 액세스한 밉맵을 맵핑에 사용하여 장면 렌더링을 수행할 수 있다.
단계 570에서, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단됨에 따라, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 텍스처 요청을 다시 시도할 것을 명령을 할 수 있다.
단계 580에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다.
단계 590에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 밉맵 상태 레지스터에 기록할 수 있다.
또한 밉맵 생성 장치는, 일정 시간 경과 후, 텍스처 요청을 다시 수신할 수 있다. 즉, 단계 550이 다시 수행될 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 밉맵 상태 레지스터에 기초하여, 텍스처에 대해 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단할 수 있다. 판단 결과, 산출된 밉맵 레벨의 밉맵은 단계 580에서 이미 생성되었으므로, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단될 수 있다. 이러한 판단 결과에 기초하여, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다.
일 실시예에 따르면, 예측된 밉맵 레벨이 실제 사용되는 것으로 산출된 밉맵 레벨과 상이할 수도 있다. 그러나, 밉맵이 생성되는 시간은 드로우 명령을 받은 이후부터 해당 각 프리미티브에 대한 픽셀 셰이딩이 수행 될 때까지의 시간으로 감춰질 수 있다.
일 실시예에 따르면, 밉맵 생성 장치는 프리미티브의 개수에 따라, 프리미티브의 개수가 임계값 이상인 경우, 밉맵 생성 지연 방식을 적용하지 않고, 모든 밉맵 레벨에 대해 밉맵을 생성하는 일반적인 방식을 적용할 수 있다. 임계값은 프리미티브의 개수가 많음으로 인해, 개시된 실시예에 따른 밉맵 생성 지연 방식을 적용하는 것이 큰 부하로 작용하여 오히려 종래 방식을 적용하는 것보다 비효율적인 것으로 판단되는 수준에서 정해질 수 있다.
일 실시예에 따르면, 밉맵 생성 장치는 오브젝트의 바운딩 박스에 기초하여, 복잡한 프리미티브를 가지는 오브젝트에 대해서는, 밉맵 생성 지연 방식을 적용하지 않고, 모든 밉맵 레벨에 대해 밉맵을 생성하는 일반적인 방식을 적용할 수 있다. 복잡한 프리미티브란, 개시된 실시예에 따른 밉맵 생성 지연 방식을 적용하는 것이 큰 부하로 작용하여 오히려 종래 방식을 적용하는 것보다 비효율적인 것으로 판단되는 수준에서 정해질 수 있다.
도 6은 도 5에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.
일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해 밉맵 상태 레지스터(StatusReg), 밉맵 예측 레지스터(PredReg) 및 밉맵 요청 레지스터(RequestReg)를 할당할 수 있다. 밉맵 상태 레지스터는, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트들의 집합인 비트 벡터로 구성될 수 있다. 마찬가지로, 밉맵 예측 레지스터는 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트들의 집합인 비트 벡터로 구성될 수 있다. 밉맵 요청 레지스터 또한, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트들의 집합인 비트 벡터로 구성될 수 있다.
도 6를 참조하면, 밉맵은 8개의 밉맵 레벨로 구현될 수 있으며, 하나의 텍스처에 대한 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터가 나타난다. 밉맵 상태 레지스터의 제1 비트는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트는 레벨 1을 나타내고, 제n 비트는 n을 나타낼 수 있다. 밉맵 예측 레지스터의 제1 비트는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트는 레벨 1을 나타내고, 제n 비트는 레벨 n을 나타낼 수 있다. 밉맵 요청 레지스터의 제1 비트는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트는 레벨 1을 나타내고, 제n 비트는 레벨 n을 나타낼 수 있다.
도 6a는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하는 경우를 나타낸다.
610은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
일 실시예에 따른 밉맵 생성 장치는, 최초의 밉맵 상태 레지스터가 원본 텍스처(레벨 0)가 존재하는 것을 나타내도록 초기값을 설정할 수 있다. 예를 들어, 밉맵 상태 레지스터의 제1 비트는 ‘1’이고, 나머지제2 내지 제9 비트는 ‘0’을 나타낸다. 이는, 현재 원본 텍스처만이 존재하며, 레벨 1 내지 8의 밉맵은 존재하지 않는다는 것을 나타낼 수 있다.
612는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
일 실시예에 따른 밉맵 생성 장치는, 밉맵 생성 단계에서, 밉맵 상태 레지스터에 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
예를 들어, 예측된 밉맵 레벨이 레벨 3인 경우, 원본 텍스처로부터 레벨 1, 레벨2, 및 레벨 3의 밉맵을 순차적으로 생성할 수 있다. 일 실시예에 따라, 요청되는 밉맵 레벨의 밉맵과 이전에 순차적으로 생성된 밉맵들을 저장하는 경우, 밉맵 생성 장치는 제2 내지 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 1 내지 3을 나타내는 제2 내지 제4 비트는 ‘1’을 나타내고, 레벨 4 내지 8을 나타내는 나머지 비트들은 ‘0’을 나타낼 수 있다.
614는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
예를 들어, 실제 요청되는 밉맵 레벨이 레벨 3으로 산출된 경우, 레벨 3을 나타내는, 밉맵 요청 레지스터의 제4 비트에 ‘1’을 기록할 수 있다.
616은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 대한 판단에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
산출된 밉맵 레벨과 예측된 밉맵 레벨이 일치하는 경우 즉, 산출된 밉맵 레벨의 밉맵이 이미 존재하는 경우, 밉맵 생성 장치는 밉맵 생성을 새로 할 필요가 없이 이미 존재하는 밉맵을 액세스하여 사용할 수 있다. 따라서, 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터는 614에서와 비교하여 변화가 없다.
도 6b는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 상이한 경우를 나타낸다.
이하, 도 6a에서 전술한 것과 중복되는 내용은 생략한다.
620은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
622는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
624는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
예를 들어, 실제 요청되는 밉맵 레벨이 레벨 4으로 산출된 경우, 레벨 4를 나타내는, 밉맵 요청 레지스터의 제5 비트에 ‘1’을 기록할 수 있다.
626은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 대한 판단에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
산출된 밉맵 레벨과 예측된 밉맵 레벨이 상이한 경우 즉, 산출된 밉맵 레벨의 밉맵이 존재하지 않는 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. 밉맵 생성 장치는 밉맵 상태 레지스터에 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. 밉맵 생성 장치는 레벨 4를 나타내는, 밉맵 상태 레지스터의 제5 비트에 ‘1’을 기록할 수 있다.
도 6c는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 상이하고, 순차적으로 생성된 밉맵이 모두 저장된 경우를 나타낸다.
이하, 도 6a에서 전술한 것과 중복되는 내용은 생략한다.
630은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
632는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
634는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
예를 들어, 실제 요청되는 밉맵 레벨이 레벨 1로 산출된 경우, 레벨 1을 나타내는, 밉맵 요청 레지스터의 제2 비트에 ‘1’을 기록할 수 있다.
636은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 대한 판단에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
도 6c를 참조하면, 산출된 밉맵 레벨과 예측된 밉맵 레벨이 상이하다. 그러나, 밉맵 생성 장치가 예측된 밉맵 레벨의 밉맵을 생성할 때, 원본 텍스처로부터 레벨 1, 레벨 2, 및 레벨 3의 밉맵을 순차적으로 생성하여 저장하였으므로, 산출된 밉맵 레벨인 레벨 2의 밉맵이 존재한다. 따라서, 산출된 밉맵 레벨과 예측된 밉맵 레벨이 일치하지 않지만, 산출된 밉맵 레벨의 밉맵이 이미 존재하므로, 밉맵 생성 장치는 밉맵을 새로 생성할 필요 없이 이미 존재하는 밉맵을 액세스하여 사용할 수 있다. 따라서, 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터는 634에서와 비교하여 변화가 없다.
도 6d는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 상이하고, 예측된 밉맵 레벨의 밉맵만이 저장된 경우를 나타낸다.
이하, 도 6a에서 전술한 것과 중복되는 내용은 생략한다.
640은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
642는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
도 6d를 참조하면, 밉맵 생성 장치는 예측된 밉맵 레벨의 밉맵만을 저장할 수 있다. 예를 들어, 예측된 밉맵 레벨이 레벨 3인 경우, 원본 텍스처로부터 레벨 1, 레벨 2, 및 레벨 3의 밉맵을 순차적으로 생성하나, 레벨 3만을 저장할 수 있다. 일 실시예에 따라, 예측된 밉맵 레벨의 밉맵만을 저장하는 경우, 밉맵 생성 장치는 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 3을 나타내는 제4 비트는 ‘1’을 나타내고, 레벨 1, 2, 및 4 내지 8을 나타내는 나머지 비트들은 ‘0’을 나타낼 수 있다.
644는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
예를 들어, 실제 요청되는 밉맵 레벨이 레벨 2로 산출된 경우, 레벨 2를 나타내는, 밉맵 요청 레지스터의 제3 비트에 ‘1’을 기록할 수 있다.
646은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
산출된 밉맵 레벨과 예측된 밉맵 레벨이 상이한 경우 즉, 산출된 밉맵 레벨의 밉맵이 존재하지 않는 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. 밉맵 생성 장치는 밉맵 상태 레지스터에 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. 밉맵 생성 장치는 레벨 2를 나타내는, 밉맵 상태 레지스터의 제3 비트에 ‘1’을 기록할 수 있다.
도 7은 다른 실시 예에 따른 밉맵 레벨을 예측하는 방법을 설명하기 위한 흐름도이다.
단계 710에서 밉맵 생성 장치는, 텍스처를 사용할 프리미티브를 구성하는 정점의 좌표를 획득할 수 있다.
단계 720에서, 밉맵 생성 장치는 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 밉맵 레벨을 예측할 수 있다.
일 실시예에 따른 밉맵 생성 장치는, 프리미티브를 구성하는 정점의 좌표를 획득하고, 획득된 정점의 좌표에 기초하여 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출할 수 있다. 밉맵 생성 장치는 프리미티브의 크기, 프리미티브의 Z 평면상에서의 기울기, 텍스처의 좌표 및 텍스처의 크기에 기초하여 밉맵 레벨을 예측할 수 있다.
단계 730에서, 밉맵 생성 장치는 밉맵 레벨 예측에 허용 오차(tolerance)를 적용할지 여부를 판단할 수 있다.
예를 들어, 밉맵 생성 장치는 사용자 입력에 기초하여 밉맵 레벨 예측에 허용 오차를 적용할지 여부를 결정할 수 있다.
허용 오차를 적용하는 경우, 단계 740이 수행되고, 허용 오차를 적용하지 않는 경우, 단계 745가 수행될 수 있다.
단계 740에서, 허용 오차를 적용함에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 레벨의 밉맵을 생성할 수 있다.
단계 750에서, 밉맵 생성 장치는 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하는지 여부에 따라 허용 오차를 조정할 수 있다.
단계 760에서, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하는 경우, 밉맵 생성 장치는 허용 오차 범위를 감소시킬 수 있다.
단계 765에서, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하지 않는 경우, 밉맵 생성 장치는 허용 오차 범위를 증가시킬 수 있다.
허용 오차 조정에 대한 상세한 설명은 도 8에서 후술한다.
단계 745에서, 허용 오차를 적용 적용하지 않음에 따라, 밉맵 생성 장치는 예측된 레벨의 밉맵만을 생성할 수 있다.
도 8은 또 다른 실시 예에 따른 밉맵 레벨을 예측 시 허용 오차 조정을 설명하기 위한 예시도이다.
일 실시예에 따라, 허용 오차는 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부에 기초하여 조정될 수 있다.
밉맵 생성 장치는 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 이용하여, 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부를 판단할 수 있다.
도 8a는 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하는 경우 허용 오차 조정을 설명하기 위한 예시도이다.
일 실시예에 따라, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하는 경우, 밉맵 생성 장치는 허용 오차 범위를 감소시킬 수 있다.
810은 최초로 할당된 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
812는 예측된 밉맵 레벨이 레벨 3인 경우를 나타낸다. 즉, 레벨 3을 나타내는 제4 비트가 ‘1’을 나타낸다.
814는 밉맵 레벨 예측에 허용 오차를 적용한 것을 나타낸다.
일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨을 나타내는 밉맵 예측 레지스터의 비트에 ‘1’을 기입하고, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨에 대해 밉맵을 생성할 수 있다.
예를 들어, 예측된 밉맵 레벨이 레벨 3이고, 허용 오차의 값이 2인 경우, 레벨 1 내지 레벨 5를 나타내는 제2 내지 제6 비트에 ‘1’을 기입하고, 레벨 1 내지 레벨 5의 밉맵 레벨에 대해 밉맵을 생성할 수 있다.
즉, 허용 오차 적용 범위는 <수식 1>에 의해 산출될 수 있다.
<수식 1>
Pred_Mip_Level - t ≤ Gen_Mip ≤ Pred_Mip_Level + t
수식 1에서, Pred_Mip_Level은 예측된 밉맵 레벨을, t는 허용 오차를, Gen_Mip는 허용 오차 적용 범위 내의 밉맵 레벨을 나타낼 수 있다.
일 실시예에서, 최초의 허용 오차 값은 미리 설정될 수 있다. 예를 들어, 밉맵 생성 장치는 최초의 허용 오차 값을 사용자 입력에 기초하여 결정할 수 있다. 다른 예로, 최초의 허용 오차 값을 <수식 2>에 의해 결정할 수 있다.
<수식 2>
t = NUM_MIP_LEVEL/2
여기서, t는 허용 오차를, NUM_MIP_LEVEL은 구현되는 밉맵 레벨을 의미할 수 있다.
816은 예측된 밉맵 레벨과 산출된 밉맵 레벨의 일치 여부를 판단하는 것을 나타낸다.
밉맵 생성 장치는 예측된 밉맵 레벨(PredReg)과 실제 요청되는 밉맵 레벨인 산출된 밉맵 레벨(RequestReg)을 비교할 수 있다. 예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우에만 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다.
다른 예로, 밉맵 생성 장치는 “AND(PredReg, RequestReg)”이 0이 아니면 즉, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다.
밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다는 판단에 따라, 허용 오차의 크기를 감소시킬 수 있다. 예를 들어, 초기 허용 오차 값이 2인 경우, 1로 감소시킬 수 있다.
일 실시예에서, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우와, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우에, 허용 오차의 감소 폭을 달리 할 수 있다.
예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우, 허용 오차의 크기를 2만큼 감소시킬 수 있다. 또한, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 허용 오차의 크기를 1만큼 감소시킬 수 있다.
여기 개시된 예에서는, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우에만 허용 오차의 크기를 1만큼 감소시킬 수 있다.
820은 밉맵 생성 장치가 새로 밉맵 레벨을 예측하는 경우를 나타낸다. 예를 들어, 예측된 밉맵 레벨은 레벨 4일 수 있다.
822는 밉맵 레벨 예측에 새로운 허용 오차를 적용한 것을 나타낸다.
일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨을 나타내는 밉맵 예측 레지스터의 벡터에 ‘1’을 기입하고, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨에 대해 밉맵을 생성할 수 있다.
예를 들어, 예측된 밉맵 레벨이 레벨 4이고, 허용 오차의 값이 1이 된 경우, 레벨 3 내지 레벨 5를 나타내는 제4 내지 제6 비트에 ‘1’을 기입하고, 레벨 3 내지 레벨 5의 밉맵 레벨에 대해 밉맵을 생성할 수 있다.
일 실시예에서, 밉맵 생성 장치는 허용 오차 값이 0인 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하는 경우에도 허용 오차 값이 더이상 감소시키지 않을 수 있다.
도 8b는 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하지 않는 경우 허용 오차 조정을 설명하기 위한 예시도이다.
전술한 도 8a에서와 중복되는 내용은 생략한다.
일 실시예에 따라, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하지 않는 경우, 밉맵 생성 장치는 허용 오차 범위를 증가시킬 수 있다.
830은 최초로 할당된 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.
832는 예측된 밉맵 레벨이 레벨 3인 경우를 나타낸다. 즉, 레벨 3을 나타내는 제4 비트가 ‘1’을 나타낸다.
834는 밉맵 레벨 예측에 허용 오차를 적용한 것을 나타낸다.
예를 들어, 예측된 밉맵 레벨이 레벨 3이고, 허용 오차의 값이 2인 경우, 레벨 1 내지 레벨 5의 밉맵 레벨에 대해 밉맵을 생성하고, 레벨 1 내지 레벨 5를 나타내는 제2 내지 제6 비트에 ‘1’을 기입할 수 있다.
836은 예측된 밉맵 레벨과 산출된 밉맵 레벨의 일치 여부를 판단하는 것을 나타낸다.
밉맵 생성 장치는 예측된 밉맵 레벨(PredReg)과 실제 요청되는 밉맵 레벨인 산출된 밉맵 레벨(RequestReg)을 비교할 수 있다. 예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우에만 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다.
다른 예로, 밉맵 생성 장치는 “AND(PredReg, RequestReg)”이 0이 아니면 즉, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다.
밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하지 않는다는 판단에 따라, 허용 오차의 크기를 증가시킬 수 있다. 예를 들어, 초기 허용 오차 값이 2인 경우, 4로 증가시킬 수 있다.
일 실시예에서, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우와, 산출된 밉맵 레벨이 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 어느 것과도 일치하지 않는 경우에, 허용 오차의 증가 폭을 달리 할 수 있다.
예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 허용 오차의 크기를 1만큼 증가시킬 수 있다. 또한, 밉맵 생성 장치는 산출된 밉맵 레벨이 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 어느 것과도 일치하지 않는 경우, 허용 오차의 크기를 2만큼 증가시킬 수 있다.
여기 개시된 예에서는, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지 않는 경우, 밉맵 생성 장치는 허용 오차의 크기를 2만큼 증가시킬 수 있다.
840은 밉맵 생성 장치가 새로 밉맵 레벨을 예측하는 경우를 나타낸다. 예를 들어, 예측된 밉맵 레벨은 레벨 4일 수 있다.
842는 밉맵 레벨 예측에 새로운 허용 오차를 적용한 것을 나타낸다.
일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨에 대해 밉맵을 생성하고, 해당 밉맵 레벨을 나타내는 밉맵 요청 레지스터의 벡터에 ‘1’을 기입할 수 있다.
예를 들어, 예측된 밉맵 레벨이 레벨 4이고, 허용 오차의 값이 4이 된 경우, 레벨 0 내지 레벨 8의 밉맵 레벨에 대해 밉맵을 생성하고, 레벨 1 내지 레벨 8을 나타내는 첫 번째 내지 여덟 번째 벡터에 ‘1’을 기입할 수 있다.
일 실시예에서, 허용 오차 값이 <수식 2>에서 산출된 값과 같은 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하지 않는 경우에도 허용 오차 값을 더이상 증가시키지 않을 수 있다.
일 실시예에서, 밉맵 생성 장치는 허용 오차 값의 증가 크기와 감소 크기를 다르게 할 수도 있다. 또한, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨의 차이에 따라 허용 오차 값의 증감 폭을 가변적으로 할 수 있다. 또한, 밉맵 생성 장치는 과거 다른 오브젝트 또는 다른 프레임에 대한 텍스쳐 사용 기록을 허용 오차 설정에 사용할 수 있다.
일 실시예에서, 밉맵 생성 장치는 허용 오차의 적용을 선택적으로 할 수 있으며, 허용 오차를 적용하지 않는 경우 t=0이 된다. 예를 들어, 밉맵 생성 장치는 허용 오차 적용 여부를 사용자 입력에 기초하여 결정할 수 있다.
도 9는 일 실시 예에 따른 밉맵 생성 밉맵 생성 장치의 구조를 나타내는 블록도이다.
도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 밉맵 생성 장치 (900)는, 레지스터 할당부(910), 밉맵 레벨 산출부(920) 및 제어부(930)를 포함할 수 있다. 그러나 도시된 구성요소보다 많은 구성요소에 의해 밉맵 생성 장치 (900)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 디바이스(100)는 구현될 수 있다.
레지스터 할당부(910)는, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터를 할당한다.
일 실시예에 따른 레지스터 할당부(910)는, 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당할 수 있다. 또한, 레지스터 할당부(910)는, 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당할 수 있다.
밉맵 레벨 산출부(920)는, 텍스처에 대한 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출한다.
제어부(930)는 밉맵 상태 레지스터를 이용하여, 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 판단 결과에 기초하여, 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정한다.
일 실시예에 따른 제어부(930)는, 판단 결과, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다.
일 실시예에 따른 제어부(930)는, 판단 결과, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 산출된 밉맵 레벨의 밉맵을 생성하고, 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. 또한, 제어부(930)는, 텍스처 요청을 다시 시도할 것을 명령하고, 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리할 수 있다.
다른 실시예에 따른 제어부(930)는, 밉맵 레벨을 예측하고, 밉맵 예측 레지스터에 예측된 밉맵 레벨을 기록할 수 있다. 또한, 제어부(930)는, 예측된 밉맵 레벨의 밉맵을 생성하고, 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.
예를 들어, 제어부(930)는 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 밉맵 레벨을 예측할 수 있다. 구체적으로, 제어부(930)는 프리미티브를 구성하는 정점의 좌표를 획득하고, 정점의 좌표에 기초하여 상기 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출할 수 있다. 제어부(930)는 프리미티브의 크기, 프리미티브의 Z 평면상에서의 기울기, 텍스처의 좌표 및 텍스처의 크기에 기초하여 밉맵 레벨을 예측할 수 있다.
또 다른 실시예에 따른 제어부(930)는, 밉맵 예측에 허용 오차를 적용함에 따라, 밉맵 예측 레지스터에 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨을 기록할 수 있다. 제어부(930)는, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하고, 밉맵 상태 레지스터에 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록할 수 있다. 또한, 제어부(930)는, 밉맵 요청 레지스터 상에 산출된 밉맵 레벨을 기록할 수 있다.
허용 오차는 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부에 기초하여 조정될 수 있다. 예를 들어, 제어부(930)는, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 이용하여, 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부를 판단할 수 있다. 판단 결과, 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하는 경우, 제어부(930)는 허용 오차를 감소시킬 수 있다. 상기 판단 결과, 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하지 않는 경우, 제어부(930)는 허용 오차를 증가시킬 수 있다.
일 실시예에 따른 밉맵 생성 장치(900)는 실행되는 응용 프로그램에 의해 밉맵 생성 명령이 발생했을 때 이를 즉시 처리하지 않고 우선 리턴한 후, 실제 밉맵이 사용되는 시점, 혹은 사용 이전 시점에 예측하여 밉맵을 준비할 수 있다.
일 실시예에 따라, 밉맵 생성 장치(900)는 밉맵 생성을 위한 별도의 하드웨어(미도시)를 구비할 수 있다. 별도의 하드웨어를 두지 않는 경우, 호스트 프로세서의 디바이스 드라이버(미도시)를 통해 밉맵 생성을 수행할 수도 있다.
본 실시 예들에 따른 밉맵 생성 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.
본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (20)

  1. 밉맵(mipmap) 생성 함수가 호출되면, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 단계;
    상기 밉맵 생성 함수의 호출 시점으로부터 제1 기간 이후에 상기 텍스처에 대한 요청을 수신하면, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 단계;
    상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하는 단계; 및
    상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 단계를 포함하는 밉맵 생성 방법.
  2. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및
    상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함하는 밉맵 생성 방법.
  3. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계;
    상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및
    상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함하는, 밉맵 생성 방법.
  4. 제3항에 있어서,
    상기 밉맵을 생성하는 것으로 결정하는 단계는,
    상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및
    상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함하는, 밉맵 생성 방법.
  5. 제1항에 있어서,
    상기 밉맵 상태 레지스터를 할당하는 단계는,
    상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하는 단계;
    상기 밉맵 레벨을 예측하는 단계;
    상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계;
    상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계; 및
    상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 더 포함하는, 밉맵 생성 방법.
  6. 제5항에 있어서,
    상기 결정하는 단계는,
    상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및
    상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함하는, 밉맵 생성 방법.
  7. 제5항에 있어서,
    상기 결정하는 단계는,
    상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계;
    상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및
    상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함하는, 밉맵 생성 방법.
  8. 제7항에 있어서,
    상기 밉맵을 생성하는 것으로 결정하는 단계는,
    상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및
    상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함하는, 밉맵 생성 방법.
  9. 제5항에 있어서,
    상기 밉맵 상태 레지스터를 할당하는 단계는,
    상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하는 단계를 더 포함하고,
    상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계는,
    상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하는 단계를 포함하고,
    상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계는,
    상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하는 단계를 포함하고,
    상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계는,
    상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하는 단계를 포함하고,
    상기 밉맵 레벨을 산출하는 단계는,
    상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록하는 단계를 더 포함하는, 밉맵 생성 방법.
  10. 제5항에 있어서,
    상기 밉맵 레벨을 예측하는 단계는,
    상기 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함하는, 밉맵 생성 방법.
  11. 제10항에 있어서,
    상기 밉맵 레벨을 예측하는 단계는,
    상기 프리미티브를 구성하는 정점의 좌표를 획득하는 단계;
    상기 정점의 좌표에 기초하여 상기 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출하는 단계; 및
    상기 프리미티브의 크기, 상기 프리미티브의 Z 평면상에서의 기울기, 상기 텍스처의 좌표 및 상기 텍스처의 크기에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함하는, 밉맵 생성 방법.
  12. 제9항에 있어서,
    상기 허용 오차는 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부에 기초하여 조정되는, 밉맵 생성 방법.
  13. 제9항에 있어서,
    상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및
    상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하는 경우, 상기 허용 오차를 감소시키는 단계를 더 포함하는, 밉맵 생성 방법.
  14. 제9항에 있어서,
    상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및
    상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하지 않는 경우, 상기 허용 오차를 증가시키는 단계를 더 포함하는, 밉맵 생성 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  16. 밉맵(mipmap) 생성 함수가 호출되면, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 레지스터 할당부;
    상기 밉맵 생성 함수의 호출 시점으로부터 제1 기간 이후에 상기 텍스처에 대한 요청을 수신하면, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 밉맵 레벨 산출부; 및
    상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 제어부를 포함하는, 밉맵 생성 장치.
  17. 제16항에 있어서,
    상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵에 액세스하는, 밉맵 생성 장치.
  18. 제16항에 있어서,
    상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는, 밉맵 생성 장치.
  19. 제16항에 있어서,
    상기 레지스터를 할당부는, 상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하고,
    상기 제어부는, 상기 밉맵 레벨을 예측하고, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는, 밉맵 생성 장치.
  20. 제19항에 있어서,
    상기 레지스터를 할당부는, 상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하고,
    상기 제어부는, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하고, 상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하고, 상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록하는, 밉맵 생성 장치.
KR1020140082528A 2014-07-02 2014-07-02 밉맵 생성 방법 및 장치 KR102282189B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140082528A KR102282189B1 (ko) 2014-07-02 2014-07-02 밉맵 생성 방법 및 장치
US14/598,590 US9881392B2 (en) 2014-07-02 2015-01-16 Mipmap generation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140082528A KR102282189B1 (ko) 2014-07-02 2014-07-02 밉맵 생성 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160004096A KR20160004096A (ko) 2016-01-12
KR102282189B1 true KR102282189B1 (ko) 2021-07-27

Family

ID=55017332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140082528A KR102282189B1 (ko) 2014-07-02 2014-07-02 밉맵 생성 방법 및 장치

Country Status (2)

Country Link
US (1) US9881392B2 (ko)
KR (1) KR102282189B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170243375A1 (en) * 2016-02-18 2017-08-24 Qualcomm Incorporated Multi-step texture processing with feedback in texture unit
US10460502B2 (en) 2016-12-14 2019-10-29 Samsung Electronics Co., Ltd. Method and apparatus for rendering object using mipmap including plurality of textures
GB2557657B (en) * 2016-12-14 2020-08-12 Samsung Electronics Co Ltd Mipmap rendering
KR102589861B1 (ko) 2018-11-01 2023-10-16 삼성전자주식회사 표시 장치
USD938985S1 (en) 2018-12-20 2021-12-21 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120038657A1 (en) * 2010-08-16 2012-02-16 Microsoft Corporation Gpu texture tile detail control
US20130321443A1 (en) * 2012-06-05 2013-12-05 Aroon Pahwa Method, system and apparatus for rendering a map with adaptive textures for map features

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3645024B2 (ja) 1996-02-06 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 描画装置及び描画方法
US5973701A (en) * 1996-09-30 1999-10-26 Cirrus Logic, Inc. Dynamic switching of texture mip-maps based on pixel depth value
KR100258883B1 (ko) 1997-09-23 2000-06-15 구자홍 멀티 프로세서 시스템의 캐시 메모리 제어방법 및 장치
JPH11195132A (ja) 1997-10-31 1999-07-21 Hewlett Packard Co <Hp> テクスチャマッピング用バッファ、3次元グラフィクス処理装置、3次元グラフィクス処理システム、3次元グラフィクス処理方法および処理プログラムが記憶された記憶媒体
US6219064B1 (en) 1998-01-07 2001-04-17 Seiko Epson Corporation Graphics mechanism and apparatus for mipmap level estimation for anisotropic texture mapping
US6452603B1 (en) * 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US6924814B1 (en) * 2000-08-31 2005-08-02 Computer Associates Think, Inc. System and method for simulating clip texturing
DE10242639A1 (de) 2002-09-13 2004-03-25 Sp3D Chip Design Gmbh Verfahren zur Analyse und Modifikation eines Footprints
US8106918B2 (en) 2007-05-01 2012-01-31 Vivante Corporation Apparatus and method for texture level of detail computation
KR101345379B1 (ko) 2007-06-28 2014-01-22 삼성전자주식회사 3차원 그래픽스 데이터 렌더링 방법 및 장치
US8233006B2 (en) * 2008-10-10 2012-07-31 Advanced Micro Devices, Inc. Texture level tracking, feedback, and clamping system for graphics processors
KR101508388B1 (ko) * 2008-12-15 2015-04-06 엘지전자 주식회사 밉맵 생성 장치 및 방법
CN103080981B (zh) * 2010-08-27 2016-03-02 矽锂铬艺术有限公司 选择纹理映射水平的方法及利用该方法的材质贴图系统
TWI528328B (zh) 2012-04-20 2016-04-01 財團法人資訊工業策進會 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120038657A1 (en) * 2010-08-16 2012-02-16 Microsoft Corporation Gpu texture tile detail control
US20130321443A1 (en) * 2012-06-05 2013-12-05 Aroon Pahwa Method, system and apparatus for rendering a map with adaptive textures for map features

Also Published As

Publication number Publication date
US20160005191A1 (en) 2016-01-07
US9881392B2 (en) 2018-01-30
KR20160004096A (ko) 2016-01-12

Similar Documents

Publication Publication Date Title
US10991152B2 (en) Adaptive shading in a graphics processing pipeline
US9569885B2 (en) Technique for pre-computing ambient obscurance
KR102282189B1 (ko) 밉맵 생성 방법 및 장치
US9842424B2 (en) Volume rendering using adaptive buckets
US9153209B2 (en) Method and system for generating a displacement map from a normal map
KR102247565B1 (ko) 렌더링 방법 및 장치
US9779533B2 (en) Hierarchical tiled caching
CA2866849C (en) Method for estimating the opacity level in a scene and corresponding device
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
KR20160049031A (ko) 타일 기반 렌더링에서의 테셀레이션
JP6333840B2 (ja) 最適化ポリゴンに基づいたシェルメッシュを形成する方法
US9773341B2 (en) Rendering cover geometry without internal edges
US9396515B2 (en) Rendering using multiple render target sample masks
US9558573B2 (en) Optimizing triangle topology for path rendering
CN105096375B (zh) 图像处理方法和设备
US8854392B2 (en) Circular scratch shader
US9342891B2 (en) Stencil then cover path rendering with shared edges
US10607390B2 (en) Techniques for tiling compute work with graphics work
KR102399686B1 (ko) 3d 렌더링 방법 및 장치
US9767600B2 (en) Target independent rasterization with multiple color samples
EP4205082A1 (en) Shader core instruction to invoke depth culling
KR20230018368A (ko) 폐색 처리 기법을 위한 방법 및 장치
US10636210B2 (en) Dynamic contour volume deformation
US20230063422A1 (en) Techniques for rendering signed distance functions
KR20100046797A (ko) 텍스쳐 팩터를 이용한 3차원 그래픽 데이터 처리 장치 및 그 방법

Legal Events

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