KR20180071767A - 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치 - Google Patents

큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치 Download PDF

Info

Publication number
KR20180071767A
KR20180071767A KR1020160174769A KR20160174769A KR20180071767A KR 20180071767 A KR20180071767 A KR 20180071767A KR 1020160174769 A KR1020160174769 A KR 1020160174769A KR 20160174769 A KR20160174769 A KR 20160174769A KR 20180071767 A KR20180071767 A KR 20180071767A
Authority
KR
South Korea
Prior art keywords
pixels
coordinates
pixel
face
cube map
Prior art date
Application number
KR1020160174769A
Other languages
English (en)
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 KR1020160174769A priority Critical patent/KR20180071767A/ko
Priority to US15/794,202 priority patent/US10593096B2/en
Priority to JP2017233437A priority patent/JP7096661B2/ja
Priority to EP17206725.8A priority patent/EP3340183B1/en
Priority to CN201711382658.3A priority patent/CN108230435B/zh
Publication of KR20180071767A publication Critical patent/KR20180071767A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/0031Geometric image transformation in the plane of the image for topological mapping of a higher dimensional structure on a lower dimensional surface
    • G06T3/06
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/016Exploded view

Abstract

픽셀들이 큐브 맵의 서로 다른 면에 대응되는 경우, 픽셀들의 좌표를 보정하고, 보정된 좌표를 이용하여, 픽셀들의 변화율(derivative)을 계산하고, 계산된 변화율에 기초하여, 픽셀들에 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는 방법 및 이를 위한 장치를 제공한다.

Description

큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치 {Apparatus and method for determining LOD(level Of detail) for texturing cube map}
본 개시는 큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 방법 및 장치에 관한 것이다.
3차원 그래픽 시스템에서 보다 현실감 있는 영상을 얻기 위한 방법의 일환으로 텍스쳐링 또는 텍스쳐 맵핑(texture mapping) 기술이 활용되고 있다. 텍스쳐링 또는 텍스쳐 맵핑이란, 3차원 물체의 표면에 질감을 주기 위해 2차원 이미지를 3차원 물체 표면에 입히는 것을 의미한다. 여기서, 텍스쳐는 2차원 이미지를 의미하고, 텍스쳐 내의 각 점들은 텍셀(texel)로서 스크린 스페이스 상의 픽셀에 대응한다. 3차원 그래픽스 파이프라인이 수행되면서 2차원 스크린 스페이스의 각 픽셀에 대응되는 3차원 스페이스 상의 오브젝트 표면이 결정되면, 오브젝트 표면에 해당하는 텍스쳐 좌표를 갖는 텍셀들이 계산되고 이에 따라 픽셀과 텍셀 간의 텍스쳐 매핑이 수행될 수 있다.
큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 방법 및 장치를 제공하는데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따라, 큐브 맵(cube map)을 텍스쳐링하기 위한 LOD(Level Of Detail)를 결정하는 방법은, 인접하는 픽셀들에 대해 큐브 맵 상에서의 좌표를 결정하는 단계; 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정하는 단계; 보정된 좌표를 이용하여, 큐브 맵 상에서 픽셀들의 변화율(derivative)을 계산하는 단계; 및 계산된 변화율에 기초하여, 픽셀들에 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는 단계;를 포함할 수 있다.
또한, 보정하는 단계는, 픽셀들 중 기준 픽셀에 대응되는 면(face)의 원점 및 좌표축을 기준으로, 픽셀들 중 다른 픽셀의 좌표를 보정할 수 있다.
또한, 보정하는 단계는, 픽셀들의 좌표에 요구되는 보정 연산에 대한 정보를 포함하는 좌표 보정 테이블에 기초하여, 픽셀들의 좌표를 보정할 수 있다.
또한, 픽셀들의 변화율을 계산하는 단계는, 큐브 맵의 좌표축 상에서 픽셀들 간의 좌표값 차이(difference)를, 픽셀들의 변화율로써, 계산할 수 있다.
또한, 큐브 맵은, 정규화된 크기를 갖는 6개의 정사각형 면(face)들로 구성된 정육면체의 텍스쳐일 수 있다.
또한, 보정하는 단계는, 스크린 스페이스 상에서의 픽셀들의 방향 벡터를 기준으로, 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는지 여부를 판단하는 단계;를 포함할 수 있다.
다른 측면에 따른, 큐브 맵(cube map)을 텍스쳐링하기 위한 LOD(Level Of Detail)를 결정하는 장치는, 컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및 컴퓨터 실행가능 명령어를 실행함으로써, 인접하는 픽셀들에 대해 큐브 맵 상에서의 좌표를 결정하고, 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정하고, 보정된 좌표를 이용하여, 큐브 맵 상에서 픽셀들의 변화율(derivative)을 계산하고, 계산된 변화율에 기초하여, 픽셀들에 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는, 프로세서를 포함할 수 있다.,
또 다른 측면에 따라, 큐브 맵(cube map)을 텍스쳐링하기 위한 LOD(Level Of Detail)를 결정하는 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체가 제공된다.
본 실시예들에 따르면, 픽셀들의 큐브 맵 상의 보정된 좌표로부터 픽셀들의 변화율(derivative)을 직접 계산할 수 있는바, 변화율을 계산하는 데 필요한 연산기의 개수를 줄일 수 있고, 이에 따라 장치의 면적과 소비 전력을 줄일 수 있다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다.
도 2는 그래픽 처리 장치가 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 텍스쳐 맵핑을 설명하기 위한 도면이다.
도 4는 밉맵을 설명하기 위한 도면이다.
도 5는 일 실시예에 따라, 큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 장치를 나타낸다.
도 6은 스크린 스페이스 상의 좌표계와 큐브 맵 상의 좌표계의 일 실시예를 나타낸다.
도 7은 스크린 스페이스 상의 픽셀에 대해 큐브 맵 상의 좌표를 결정하는 실시예를 나타낸다.
도 8은 스크린 스페이스 상의 픽셀에 대해 큐브 맵 상의 좌표를 결정하는 구체적인 실시예를 나타낸다.
도 9는 좌표 보정 테이블을 이용하여 픽셀들의 변화율을 계산하는 실시예를 나타낸다.
도 10은 픽셀들의 좌표를 보정하여 픽셀들의 변화율을 계산하는 실시예를 나타낸다.
도 11은 픽셀의 좌표를 보정하여 픽셀들의 변화율을 계산하는 다른 실시예를 나타낸다.
도 12는 일 예에 따라, 큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 방법을 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예를 상세히 설명하기로 한다. 하기 실시예는 기술적 내용을 구체화하기 위한 것일 뿐 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 해당 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시예들은 큐브 맵이라는 텍스쳐를 처리하는 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다.
도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 관련 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참고하면, 그래픽 처리 장치(100)는 래스터라이저(rasterizor)(110), 쉐이더 코어(shader core)(120), 텍스쳐 처리 장치(texture processing unit)(130), 픽셀 처리 장치(pixel processing unit)(140), 타일 버퍼(tile buffer)(150) 등을 포함할 수 있다. 그래픽 처리 장치(100)는 버스(BUS)(300)를 통하여 외부의 메모리(200)와 데이터를 송수신할 수 있다.
도 1에 도시된 그래픽 처리 장치(100)는 3차원 그래픽스를 처리하는 장치로서, 타일에 기초한 렌더링(tile based rendering, TBR) 방식을 사용할 수 있다. 다시 말해서, 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 3차원 그래픽스를 생성하기 위해서, 일정한 크기로 분할된 복수 개의 타일들을 래스터라이저(110), 쉐이더 코어(120), 픽셀 처리 장치(140)를 거치도록 하여, 처리 결과를 타일 버퍼(150)에 저장할 수 있다. 그래픽 처리 장치(100)는 프레임을 구성하는 모든 타일들에 대해서, 래스터라이저(110), 쉐이더 코어(120), 및 픽셀 처리 장치(140)로 구성되는 채널을 복수 개 이용하여, 병렬 처리할 수 있다. 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 복수 개의 타일들이 처리되면, 타일 버퍼(150)에 저장된 처리 결과를 메모리(200)의 프레임 버퍼(미도시)로 전송할 수 있다.
래스터라이저(110)는 기하 변환 과정을 거쳐 버텍스 쉐이더로부터 생성된 프리미티브에 대해 래스터화(rasterization)를 수행할 수 있다.
쉐이더 코어(120)는 래스터라이저(110)로부터 래스터화된 프리미티브를 전달받아, 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 래스터화를 거쳐 생성된 프리미티브의 프레그먼트들을 포함하는 타일들에 대하여, 타일을 구성하는 모든 픽셀들의 색상을 결정하는 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 픽셀 쉐이딩 과정에서 입체적이고 현실감있는 3차원 그래픽스를 생성하기 위해 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다.
쉐이더 코어(120)는 픽셀 쉐이더(pixel shader)를 포함할 수 있다. 또한 쉐이더 코어(120)는 버텍스 쉐이더(vertex shader)를 더 포함한 형태이거나, 버텍스 쉐이더와 픽셀 쉐이더가 통합된 형태의 통합 쉐이더일 수도 있다. 쉐이더 코어(120)가 버텍스 쉐이더의 기능을 수행할 수 있는 경우, 오브젝트를 나타내는 프리미티브(primitive)를 생성하여 래스터라이저(110)에 전달할 수 있다.
쉐이더 코어(120)가 원하는 픽셀에 대응되는 픽셀 값을 전달해 줄 것을 텍스쳐 처리 장치(130)에 요청하면, 텍스쳐 처리 장치(130)는 미리 준비된 텍스쳐를 처리하여 생성된 픽셀 값을 전달해 줄 수 있다. 텍스쳐는 텍스쳐 처리 장치(130) 내부 또는 외부의 소정의 공간 또는 그래픽 처리 장치(100) 외부의 메모리(200)에 저장되어 있을 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)에서 요청한 픽셀 값을 생성하는데 이용되는 텍스쳐가 텍스쳐 처리 장치(130) 내부의 소정의 공간에 없는 경우, 텍스쳐 처리 장치(130) 외부의 공간 또는 메모리(200)로부터 텍스쳐를 가져와 사용할 수 있다.
픽셀 처리 장치(140)는 하나의 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 모든 픽셀 값들을 결정할 수 있다.
타일 버퍼(150)는 픽셀 처리 장치(140)로부터 전달된 하나의 타일에 해당하는 모든 픽셀 값들을 저장할 수 있다. 하나의 프레임을 구성하는 모든 타일들에 대한 그래픽 처리 과정이 완료되면, 타일 버퍼(150)에 저장된 처리 결과가 메모리(200)의 프레임 버퍼로 전달될 수 있다.
도 2는 그래픽 처리 장치가 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
3차원 그래픽스를 처리하는 과정은 크게 기하변환, 래스터화, 픽셀 쉐이딩의 3단계로 나눌 수 있으며, 이하 도 2를 참조하여, 보다 세부적인 과정에 대해 설명한다. 구체적으로, 도 2는 단계 11 내지 단계 18을 통해 3차원 그래픽스를 처리하는 과정을 나타낸다.
단계 11은 버텍스들(vertices)을 생성하는 단계이다. 버텍스들은 3차원 그래픽스에 포함된 객체(object)들을 나타내기 위해 생성된다.
단계 12는 생성된 버텍스들을 쉐이딩(shading)하는 단계이다. 버텍스 쉐이더(vertex shader)는 단계 11에서 생성된 버텍스들의 위치를 지정함으로써, 버텍스들에 대한 쉐이딩을 수행할 수 있다.
단계 13은 프리미티브(primitive)들을 생성하는 단계이다. 프리미티브는 하나 이상의 버텍스들을 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 예를 들어, 프리미티브는 3개의 버텍스들이 연결된 삼각형일 수 있다.
단계 14는 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 프레그먼트들(fragments)로 분할하는 것을 의미한다. 프레그먼트는 프리미티브에 대한 그래픽스 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터라이징을 통해 버텍스와 버텍스 사이의 프레그먼트들이 생성됨으로써, 3차원 그래픽스 처리가 수행될 수 있다.
단계 15는 픽셀들을 쉐이딩하는 단계이다. 래스터화에 의해 생성된, 프리미티브를 구성하는 프레그먼트들은 픽셀들이 될 수 있다. 당해 분야에서, 프레그먼트와 픽셀이란 용어는 경우에 따라 혼용되어 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프레그먼트 쉐이더라고 호칭될 수 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프레그먼트라고 부르고, 이후, 픽셀 쉐이딩부터 그래픽 처리의 기본 단위를 픽셀이라 지칭할 수 있다. 픽셀 쉐이딩에 의하여 픽셀들의 값들, 속성들 등(예를 들어 픽셀의 색)이 결정될 수 있다.
단계 16은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계이다. 텍스쳐링은 미리 준비된 이미지인 텍스쳐를 이용하여 픽셀의 색을 결정하는 과정이다. 이때 다양한 색상과 패턴의 모습을 표현하기 위해서 각각의 픽셀의 색상을 계산하여 결정하는 것은 그래픽 처리에 필요한 데이터 연산량과 그래픽 처리 시간을 증가시키므로, 그래픽 처리 장치는 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정할 수 있다.
단계 17은 테스트 및 믹싱(testing and mixing) 단계이다. 깊이 테스트(depth test), 컬링(curling), 클리핑(clipping) 등을 통해 최종적으로 표시될 픽셀 값들이 결정된다.
단계 18은 11 내지 단계 17을 통해 생성된 프레임을 프레임 버퍼(frame buffer)에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계이다.
도 2에서 설명된 3차원 그래픽스를 처리하는 과정은 개괄적인 것으로서, 보다 세부적인 과정들에 대해서는 당해 기술분야의 통상의 기술자에게 자명하다.
도 3은 텍스쳐 맵핑을 설명하기 위한 도면이다.
도 3을 참고하면, 래스터라이징에 의하여 스크린 스페이스 상의 픽셀들(301)이 생성된 경우, 텍스쳐 처리 장치(130)는 픽셀들(301)에 맵핑될 텍스쳐(302)를 결정할 수 있다. 이때 텍스쳐(302)는 3차원 객체 표면의 색상, 질감 및 패턴 등에 대한 정보를 갖는 이미지로 정의되며, 텍스쳐 공간 상의 텍셀(texel) 단위로 구성된다.
한편, 객체의 크기는 스크린 스페이스 상에서 연속적으로 변하기 때문에, 모든 픽셀들(301)에 대응되는 텍스쳐(302)들을 미리 준비하는 것은 어렵다. 따라서, 텍스쳐 처리 장치(130)는 한 장의 텍스쳐 또는 복수의 텍스쳐들을 이용한 보간(interpolation) 작업을 통해, 픽셀들(301)의 값을 추정하는, 텍스쳐 필터링을 수행할 수 있다.
한편, 텍스쳐 처리 장치(130)는 스크린 스페이스 상의 인접하는 픽셀들에 매핑될 큐브 맵(cube map)을 결정할 수 있다. 큐브 맵은 6개의 면(face)들로 구성된 정육면체의 텍스쳐를 의미할 수 있다. 예를 들어, 큐브 맵은, 특정 시점(viewpont)에서 바라본 주변 환경을 표현하는 6개의 면들로 구성될 수 있다. 또한, 큐브 맵은 그래픽 처리에 있어 다양한 효과(effect)를 위해 이용될 수 있다. 예를 들어, 큐브 맵은 렌더링 하고자 하는 장면 내에서의 반사(reflection) 및 광 효과(lighting effect)를 위한 소스 데이터로 이용될 수 있다. 따라서, 텍스쳐 처리 장치(130)는 미리 준비된 큐브 맵을 이용하여 텍스쳐링을 수행할 수 있다.
도 4는 밉맵을 설명하기 위한 도면이다.
텍스쳐 처리 장치(130)는 스크린 스페이스 상에서 변화되는 객체의 크기에 적응적으로 대응할 수 있도록, 미리 준비된 텍스쳐를 이용할 수 있다. 이때, 기본 텍스쳐와 이를 축소시킨 텍스쳐들로 이루어진 비트맵 이미지의 집합을 밉맵(mipmap)이라고 한다.
이때, 다른 레벨의 밉맵은 해상도가 상이할 수 있다. 도 4를 참고하면, 레벨 0 밉맵(410)은 텍스쳐들 중에서 해상도가 제일 높은 텍스쳐로, 기본 텍스쳐를 의미할 수 있다. 레벨 0 밉맵(410)을 표현하기 위해, 8×8 텍셀들이 필요하다. 또한, 기본 텍스쳐의 크기보다 1/4 축소된 밉맵은 레벨 1 밉맵(411)이다. 레벨 1 밉맵(411)을 표현하기 위해, 4×4 텍셀들이 필요하다. 또한, 기본 텍스쳐의 크기보다 1/16 축소된 밉맵은 레벨 2 밉맵(412)일 수 있다. 레벨 2 밉맵(412)을 표현하기 위해, 2×2 텍셀들이 필요하다.
한편, 시점(view point)과 픽셀간 거리가 변함에 따라, 픽셀에 맵핑되는 텍스쳐가 달라질 수 있다. 예를 들어, 도로의 타일을 스크린 공간에 표시할 때 시점에서 가까운 타일에 대응하는 픽셀들에 맵핑되는 텍스쳐는 해상도가 높은 레벨 0 밉맵(410)일 수 있다. 또한, 시점에서 멀리 떨어진 도로의 타일에 대응하는 픽셀들에 맵핑될 텍스쳐는 해상도가 낮은 레벨 2 밉맵(412)일 수 있다. 즉, 복수의 밉맵을 이용할 경우, 먼 거리에 있는 객체는 낮은 해상도로 표현되기 때문에, 그래픽 처리 장치는 3차원 그래픽을 자연스럽게 표현할 수 있다. 더불어, 상이한 텍스쳐들이 맵핑된 픽셀들의 경계면에서 텍스쳐 필터링이 수행되면, 3차원 그래픽의 품질이 향상될 수 있다.
한편, 도 4에서는 2차원의 텍스처를 기준으로 복수의 밉맵들을 설명하였지만, 6개의 텍스쳐 면들로 구성된 큐브 맵에도 복수의 밉맵들이 준비되고 이용될 수 있다.
또한, 스크린 스페이스 상의 픽셀들에 맵핑시킬 텍스쳐들은, 그래픽의 LOD(level of detail)에 기초하여 결정될 수 있다. 여기서 LOD는 3차원 그래픽 이미지를 표현하는 정밀도를 단계화한 것을 의미한다. 텍스쳐 처리 장치(130)는 픽셀 정보를 수신한 후 그래픽의 LOD 값을 결정하고, 결정된 LOD 값에 따라 텍스쳐 필터링을 수행할 때 필요한 밉맵들을 결정할 수 있다. 예를 들어, 텍스쳐 처리 장치는 2×2 픽셀들로 구성된 쿼드(quad) 단위로 그래픽의 LOD 값을 계산할 수 있으나, LOD 값을 계산할 때 필요한 픽셀의 수는 이에 제한되지 않는다.
마찬가지로, 스크린 스페이스 상의 픽셀들에 매핑시킬 큐브맵은, 그래픽의 LOD에 기초하여 결정될 수 있다. 따라서, 텍스쳐 처리 장치(130)는 픽셀 정보를 수신한 후 그래픽의 LOD 값을 결정하고, 결정된 LOD 값에 따라 텍스쳐 필터링을 수행할 때 필요한 밉맵들을 결정할 수 있다.
도 5는 일 실시예에 따라, 큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 장치를 나타낸다.
장치(500)는 메모리(510) 및 프로세서(520)를 포함할 수 있다. 한편, 도 5에 도시된 장치(500)는 큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 5에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다. 또한, 일 실시예에 따라, 장치(500)는 도 1 의 텍스쳐 처리 장치(130)에 포함될 수 있으며, 텍스쳐 처리 장치(130) 내의 세부 구성들로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(510)는 컴퓨터 실행가능 명령어(computer executable instruction)를 저장할 수 있다.
프로세서(520)는, 메모리(510)에 저장된 컴퓨터 실행가능 명령어를 실행함으로써, 인접하는 픽셀들에 대해 큐브 맵 상에서의 좌표를 결정할 수 있다. 다시 말해, 프로세서(520)는 인접하는 픽셀들 각각의 스크린 스페이스 상의 좌표를, 텍스쳐 스페이스인 큐브 맵 상의 좌표로 변환할 수 있다. 일 실시예에 따라, 프로세서(520)는 스크린 스페이스 상에서 픽셀의 방향 벡터를 기준으로, 픽셀을 큐브 맵 상으로 투영(project)시킨 지점의 좌표를, 픽셀의 큐브 맵 상의 좌표로 결정할 수 있다. 이하 도 6 내지 8에서, 픽셀의 큐브 맵 상의 좌표를 결정하는 구체적인 실시예를 살펴보기로 한다.
도 6은 스크린 스페이스 상의 좌표계와 큐브 맵 상의 좌표계의 일 실시예를 나타낸다.
도 6에서, 스크린 스페이스는 서로 직교하는 x, y, 및 z축으로 구성된 3차원 좌표계를 가지며, 큐브 맵은 6개의 면(face)들 각각마다 원점을 기준으로 sface 및 tface 축으로 구성된 2차원 좌표계를 가질 수 있다. 구체적으로, 큐브 맵의 중심에 스크린 스페이스 상이 원점이 위치한다고 가정할 수 있고, 큐브 맵은, +x축과 교차하는 X+ face, -x축과 교차하는 X- face, +y축과 교차하는 Y+ face, -y축과 교차하는 Y- face, +z축과 교차하는 Z+ face 및 -z축과 교차하는 Z- face를 포함할 수 있으며, 6개의 면들 각각은 각 면의 원점을 기준으로 sface 및 tface 축으로 구성된 2차원 좌표계를 가질 수 있다.
도 7은 스크린 스페이스 상의 픽셀에 대해 큐브 맵 상의 좌표를 결정하는 실시예를 나타낸다.
프로세서(520)는 표(710) 및 수식(720)에 기초하여, 큐브 맵 상에서의 픽셀의 좌표를 결정할 수 있다.
스크린 스페이스 상에서의 픽셀의 방향 벡터가 (rx, ry, rz)(단, rx, ry, rz 각각은 실수)인 경우, 프로세서(520)는 픽셀의 rx, ry, 및 rz 각각의 크기 및 부호를 기준으로 Major Axis Direction을 결정할 수 있고, 이어서 Cube map face, sc, tc, 및 rc를 결정할 수 있다.
예를 들어, 픽셀의 rx, ry, 및 rz 중 rx가 크기가 가장 크고 부호가 양수인 경우, 프로세서(520)는 픽셀의 Major Axis Direction이 +x축이라고 결정할 수 있고, 이에 따라 픽셀이 큐브 맵 중 X+ face에 해당한다고 결정할 수 있고, 픽셀의 (sc, tc , rc)를 (-rz, -ry, rx)로 결정할 수 있다. 따라서, 프로세서(520)는 결정된 (sc, tc, rc)를 이용하여, X+ face 상에서의 좌표 (sface, tface)를 결정할 수 있다.
마찬가지로, 픽셀의 rx, ry, 및 rz 중 rz가 크기가 가장 크고 부호가 음수인 경우, 프로세서(520)는 픽셀의 Major Axis Direction이 -z축이라고 결정할 수 있고, 이에 따라 픽셀이 큐브 맵 중 Z- face에 해당한다고 결정할 수 있고, 픽셀의 (sc, tc , rc)를 (-rx, -ry, rz)로 결정할 수 있다. 따라서, 프로세서(520)는 결정된 (sc, tc, rc)를 이용하여, Z- face 상에서의 좌표 (sface, tface)를 결정할 수 있다.
도 8은 스크린 스페이스 상의 픽셀에 대해 큐브 맵 상의 좌표를 결정하는 구체적인 실시예를 나타낸다.
프로세서(520)는 스크린 스페이스 상의 픽셀 P0와 P1에 대해 큐브 맵 상의 좌표를 결정할 수 있다. 다시 말해, 프로세서(520)는, 픽셀 P0와 P1을 큐브 맵 상으로 투영(project)시킨 지점의 좌표를 결정할 수 있다.
도 8은 설명 및 이해의 편의를 위해 픽셀 P0 및 P1 각각의 y축 방향의 방향 벡터가 0인 경우를 기준으로 설명한다. 도 9에 도시되어 있듯이, 픽셀 P0의 스크린 스페이스 상의 좌표는 (P0.rx, 0, P0.rz)이고, 픽셀 P1의 스크린 스페이스 상의 좌표는 (P1.rx, 0, P1.rz)이다.
프로세서(520)는 픽셀 P0의 방향 벡터 (P0.rx, 0, P0.rz)에 기초하여, 큐브 맵 상의 픽셀 P0의 좌표를, 큐브 맵의 X+ face 상의 (P0.sface, P0.tface)로 결정할 수 있다. 예를 들어, 프로세서(520)는 도 7의 표(710) 및 수식(720)을 이용하여, 픽셀 P0의 좌표를 큐브 맵의 X+ face 상의 (P0.sface, P0.tface)로 결정할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P1의 방향 벡터 (P1.rx, 0, P1.rz)에 기초하여, 큐브 맵 상의 픽셀 P1의 좌표를, 큐브 맵의 Z+ face 상의 (P1.sface, P1.tface)로 결정할 수 있다. 예를 들어, 프로세서(520)는 도 7의 표(710) 및 수식(720)을 이용하여, 픽셀 P1의 좌표를 큐브 맵의 Z+ face 상의 (P1.sface, P1.tface)로 결정할 수 있다.
다시 도 5를 참조하면, 프로세서(520)는 컴퓨터 실행가능 명령어를 실행함으로써, 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정할 수 있다.
먼저, 프로세서(520)는 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는지 여부를 판단할 수 있다. 다시 말해, 프로세서(520)는 스크린 스페이스 상의 픽셀들이 큐브 맵의 서로 다른 면들로 투영되는지 여부를 판단할 수 있다. 일 실시예에 따라, 프로세서(520)는 기 결정된 픽셀들 각각의 큐브 맵 상의 좌표가 큐브 맵의 서로 다른 면에 포함되는지 여부에 따라, 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는 지 여부를 판단할 수 있다.
또한, 다른 실시예에 따라, 프로세서(520)는 픽셀들의 스크린 스페이스 상에서의 방향 벡터를 기준으로, 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는지 여부를 판단할 수 있다. 구체적으로, 프로세서(520)는 픽셀들의 스크린 스페이스 상에서의 방향 벡터에 기초하여 픽셀들의 Major Axis Direction을 결정할 수 있고, 픽셀들의 Major Axis Direction이 서로 다를 경우, 픽셀들이 큐브 맵의 서로 다른 면들에 투영된다고 판단할 수 있다. 도 8을 예를 들면, 프로세서(520)는 픽셀 P0의 방향 벡터 (P0.rx, 0, P0.rz)의 좌표축 각각의 크기 및 부호를 기준으로, P0의 Major Axis Direction이 +x축이라고 결정할 수 있고, 픽셀 P1의 방향 벡터 (P1.rx, 0, P1.rz)의 좌표축 각각의 크기 및 부호를 기준으로, 픽셀 P1의 Major Axis Direction이 -z축이라고 결정할 수 있다. 따라서, 프로세서(520)는 픽셀 P0 및 P1 각각이 큐브 맵의 서로 다른 면에 투영된다고 판단할 수 있다.
다음으로, 프로세서(520)는 인접하는 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 큐브 맵 상의 좌표를 보정할 수 있다. 일 실시예에 따라, 프로세서(520)는 픽셀들 중 기준 픽셀에 대응되는 면(face)의 원점 및 좌표축을 기준으로, 픽셀들 중 다른 픽셀의 큐브 맵 상의 좌표를 보정할 수 있다. 예를 들어, 제 1 픽셀 및 제 2 픽셀이 서로 다른 면인 X+ face 및 Y- face에 투영되는 경우, 프로세서(520)는 기준 픽셀인 제 1 픽셀이 투영되는 X+ face에서의 sface축 및 tface축을 기준으로, 제 2 픽셀의 큐브 맵 상의 좌표를 보정할 수 있다.
또한, 프로세서(520)는 인접하는 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들의 좌표에 요구되는 보정 연산에 대한 정보를 포함하는 좌표 보정 테이블에 기초하여, 픽셀들의 큐브 맵 상의 좌표를 보정할 수 있다. 좌표 보정 테이블은, 픽셀들 각각이 대응되는 면을 기준으로, 픽셀들 각각의 좌표가 어떤 연산을 통해 보정되어야 하는 지에 대한 정보를 포함할 수 있다.
예를 들어, 프로세서(520)는 픽셀의 좌표에 대해, 덧셈 연산 및 반전 연산 중 적어도 하나를 수행하여, 픽셀의 좌표를 보정할 수 있다. 구체적인 예로, 프로세서(520)는 픽셀에 대해 +1, -1, 또는 +2에 대한 덧셈 연산을 수행 할 수 있으며, 픽셀의 부호를 반전시키는 반전 연산을 수행할 수 있다. 또한, 프로세서(520)는 픽셀의 좌표 (sface, tface)의 각 좌표축 값을 (tface , sface)와 같이 서로 교환(swap)시키는 연산을 수행할 수 있다.
프로세서(520)는 컴퓨터 실행가능 명령어를 실행함으로써, 픽셀들의 큐브 맵 상의 보정된 좌표를 이용하여, 큐브 맵 상에서 픽셀들의 변화율(derivative)을 계산할 수 있다.
픽셀들의 변화율(derivative)이란, 스크린 스페이스 상에서 픽셀들의 변화량 대비 큐브 맵 상에서 픽셀들의 변화량의 비율을 의미할 수 있다. 구체적으로, 픽셀들의 변화율(derivative)은, 스크린 스페이스의 좌표 축 상에서 픽셀들 간의 거리 대비, 큐브 맵의 좌표 축 상에서 픽셀들 간의 거리의 비율을 의미할 수 있다. 또한, 스크린 스페이스의 좌표 축 상에서 픽셀들의 거리가 일정한 경우, 프로세서(520)는 픽셀들의 큐브 맵의 좌표 축 상에서의 거리를 계산하여, 픽셀들의 변화율(derivative)을 계산할 수 있다. 또한, 프로세서(520)는 픽셀들의 변화율을 근사치로써 계산할 수 있는 바, 픽셀들의 큐브 맵의 좌표 축 상에서의 거리를 픽셀들의 변화율로 계산할 수 있다.
구체적으로, 프로세서(520)는 큐브 맵의 sface좌표축에 대한 픽셀들의 변화율로써, 큐브 맵의 sface좌표축 상에서 픽셀들 간의 거리를 계산할 수 있다. 다시 말해, 프로세서(520)는 큐브 맵의 sface좌표축 상에서 픽셀들 각각의 좌표값의 차이를 계산할 수 있다. 또한, 프로세서(520)는 큐브 맵의 tface좌표축에 대한 픽셀들의 변화율로써, 큐브 맵의 tface좌표축 상에서 픽셀들의 간의 거리를 계산할 수 있다. 다시 말해, 프로세서(520)는 큐브 맵의 tface좌표축 상에서 픽셀들 각각의 좌표값의 차이를 계산할 수 있다.
도 9는 좌표 보정 테이블을 이용하여 픽셀들의 변화율을 계산하는 실시예를 나타낸다.
프로세서(520)는 좌표 보정 테이블(910,920)에 기초하여, 픽셀들의 큐브 맵 상의 좌표들을 보정할 수 있다.
구체적으로, 좌표 보정 테이블(910)은 픽셀의 sface좌표값을 보정하기 위한 테이블이고, 좌표 보정 테이블(920)은 tface좌표값을 보정하기 위한 테이블이다. 또한 각 좌표 보정 테이블(910,920)에서, "Face of Reference"는 픽셀들 중 기준 픽셀이 투영되는 면을 나타내고, "Face of adjusted Pixel"은 좌표 보정하고자 하는 픽셀이 투영되는 면을 나타낸다.
픽셀 P0와 픽셀 P1의 경우를 예로 들어 살펴보면, 픽셀 P0의 큐브 맵 상의 좌표가 X- face 상의 좌표 (P0.sface, P0.tface)이고, 픽셀 P1의 큐브 맵 상의 좌표가 Y+ face 상의 좌표 (P1.sface, P1.tface)이다.
기준 픽셀이 픽셀 P0인 경우, 픽셀 P0의 "Face of Reference"와 "Face of adjusted Pixel"은 동일하게 X- face가 되므로, 좌표 보정 테이블(910,920)에 의해, 픽셀 P0의 조정된 좌표 (P0.sadj, P0.tadj)는 원래 좌표 (P0.sface, P0.tface)로 그대로 유지된다. 다만, 픽셀 P1인 경우, 픽셀 P1의"Face of Reference"는 X- face가 되고, 픽셀 P1의 "Face of adjusted Pixel"은 Y+ face가 되므로, 좌표 보정 테이블(910,920)에 의해, 픽셀 P1의 조정된 좌표 (P1.sadj, P1.tadj)는 (P1.tface, -P1.sface)가 된다.
이어서, 프로세서(520)는 픽셀들의 보정된 좌표를 이용하여, 큐브 맵 상에서 픽셀들의 변화율을 계산할 수 있다. 즉, 프로세서(520)는 픽셀들의 보정된 좌표를 이용하여, 큐브 맵의 sface좌표축 상에서 픽셀들의 변화율인
Figure pat00001
를 계산할 수 있고, 픽셀들의 보정된 좌표를 이용하여, 큐브 맵의 tface좌표축 상에서 픽셀들의 변화율인
Figure pat00002
를 계산할 수 있다.
구체적으로, 프로세서(520)는 스크린 스페이스의 좌표 축 상에서 픽셀들의 거리가 일정한 경우, 스크린 스페이스의 x좌표축 상에서 픽셀들의 변화율인
Figure pat00003
을 1로 결정할 수 있다. 따라서, 프로세서(520)는 큐브 맵의 sface좌표축 상에서 픽셀들의 변화율인
Figure pat00004
를, sface좌표축 상에서 픽셀 P0와 픽셀 P1의 좌표값의 차이인
Figure pat00005
로 계산할 수 있다. 마찬가지로, 프로세서(520)는 큐브 맵의 tface좌표축 상에서 픽셀들의 변화율인
Figure pat00006
를, tface좌표축 상에서 픽셀 P0와 픽셀 P1의 좌표값의 차이인
Figure pat00007
로 계산할 수 있다.
도 10은 픽셀들의 좌표를 보정하여 픽셀들의 변화율을 계산하는 실시예를 나타낸다.
도 10은 큐브 맵 상의 투영된 픽셀들 P0, P1, P2, 및 P3을 도시한다. 프로세서(520)는 픽셀들 P0, P1, P2, 및 P3이 큐브 맵 상의 서로 다른 면들에 포함되는 경우, 픽셀들 P0, P1, P2, 및 P3의 큐브 맵 상의 좌표를 보정할 수 있다.
일 실시예에 따라, 프로세서(520)는 픽셀 P0 및 P1이 서로 다른 면인 Z+ face 및 Y+ face에 포함되어 있으므로, 기준 픽셀인 픽셀 P0이 투영되는 Z+ face의 원점 및 좌표축을 기준으로, 픽셀 P1의 큐브 맵 상의 좌표 (P1.sface, P1.tface)를 보정할 수 있다. 먼저, 프로세서(520)는 Z+ face 및 Y+ face의 sface축의 경우 평행하고 방향이 일치하므로, 픽셀 P1의 sface좌표값은 그대로 P1.sface로 결정할 수 있다. 다음으로, 프로세서(520)는, 큐브 맵이 크기 1을 갖는 정규화된 큐브 맵이므로, Y+ face의 원점이 Z+ face의 원점보다 -tface 축 방향으로 1만큼 떨어져 있다고 판단할 수 있다. 따라서, 프로세서(520)는 Y+ face 상에서의 픽셀 P1의 tface좌표값인 P.tface를 Z+ face 상에서의 tface 좌표값인 -(1-P.tface)로 보정할 수 있다. 따라서, 프로세서(520)는 픽셀 P1의 큐브 맵 상의 좌표 (P1.sface, P1.tface)를 좌표 (P1.sface, P1.tface-1)로 보정할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0와 다른 면에 투영되는 픽셀 P3의 큐브 맵 상의 좌표를 보정할 수 있다.
이어서, 프로세서(520)는 픽셀 P0의 좌표 및 보정된 픽셀 P1의 좌표에 기초하여, 픽셀 P0 및 픽셀 P1의 변화율
Figure pat00008
Figure pat00009
을 계산할 수 있다. 구체적으로, 프로세서(520)는 픽셀 P0의 좌표 (P0.sface, P0.tface) 및 보정된 픽셀 P1의 좌표 (P1.sface, P1.tface-1)에 기초하여, 픽셀 P0 및 픽셀 P1의 변화율
Figure pat00010
Figure pat00011
를 계산할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0 및 픽셀 P2의 변화율, 픽셀 P0 및 픽셀 P3의 변화율 등을 계산할 수 있다.
다른 실시예에 따라, 프로세서(520)는 픽셀 P0 및 P1이 서로 다른 면인 Z+ face 및 Y+ face에 포함되어 있으므로, 좌표 보정 테이블(910,920)에 기초하여, 픽셀 P0의 큐브 맵 상의 좌표 (P0.sface, P0.tface) 및 픽셀 P1의 큐브 맵 상의 좌표 (P1.sface, P1.tface)를 보정할 수 있다. 구체적으로, 프로세서(520)는 기준 픽셀을 픽셀 P0로 판단하여, 픽셀 P0의"Face of Reference"와 "Face of adjusted Pixel"은 동일하게 Z+ face가 되므로, 좌표 보정 테이블(910,920)에 의해, 픽셀 P0의 보정된 좌표 (P0.sadj, P0.tadj)는 원래 좌표 (P0.sface, P0.tface)로 그대로 유지시킬 수 있다. 다음으로, 프로세서(520)는, 픽셀 P1의 경우,"Face of Reference"는 Z+ face가 되고, "Face of adjusted Pixel"은 Y+ face가 되므로, 좌표 보정 테이블(910,920)에 의해, 픽셀 P1의 조정된 좌표 (P1.sadj, P1.tadj)를 (P1.sface, P1.tface-1)로 보정할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0와 다른 면에 투영되는 픽셀 P3의 큐브 맵 상의 좌표를 보정할 수 있다.
이어서, 프로세서(520)는 보정된 픽셀 P0의 좌표 (P0.sface, P0.tface) 및 보정된 픽셀 P1의 좌표 (P1.sface, P1.tface-1)에 기초하여, 픽셀 P0 및 픽셀 P1의 변화율
Figure pat00012
Figure pat00013
를 계산할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0 및 픽셀 P2의 변화율, 픽셀 P0 및 픽셀 P3의 변화율 등을 계산할 수 있다.
도 11은 픽셀의 좌표를 보정하여 픽셀들의 변화율을 계산하는 다른 실시예를 나타낸다.
도 11은 큐브 맵 상의 투영된 픽셀들 P0, P1, P2, 및 P3을 도시한다. 프로세서(520)는 픽셀들 P0, P1, P2, 및 P3이 큐브 맵 상의 서로 다른 면들에 포함되는 경우, 픽셀들 P0, P1, P2, 및 P3의 큐브 맵 상의 좌표를 보정할 수 있다.
일 실시예에 따라, 프로세서(520)는 픽셀 P0 및 P1이 서로 다른 면인 X+ face 및 Y- face에 포함되어 있으므로, 기준 픽셀인 픽셀 P0이 투영되는 X+ face의 원점 및 좌표축을 기준으로, 픽셀 P1의 큐브 맵 상의 좌표 (P1.sface, P1.tface)를 보정할 수 있다. 먼저, 프로세서(520)는 X+ face의 sface축과 및 Y- face의 tface축이 서로 평행하고 방향이 일치하므로, 픽셀 P1의 sface좌표값을 P1.tface로 결정할 수 있다. 다음으로, 프로세서(520)는, 큐브 맵이 크기 1을 갖는 정규화된 큐브 맵이므로, Y- face의 원점이 X+ face의 원점보다 tface축 방향으로 2만큼 떨어져 있다고 판단할 수 있다. 따라서, 프로세서(520)는 Y- face 상에서의 픽셀 P1의 tface좌표값인 P1.tface를 X+ face 상에서의 tface 좌표값인 (2-P1.sface)로 보정할 수 있다. 따라서, 프로세서(520)는 픽셀 P1의 큐브 맵 상의 좌표 (P1.sface, P1.tface)를 좌표 (P1.tface, 2-P1.sface)로 보정할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0와 다른 면에 투영되는 픽셀 P2 및 P3의 큐브 맵 상의 좌표를 보정할 수 있다.
이어서, 프로세서(520)는 픽셀 P0의 좌표 및 보정된 픽셀 P1의 좌표에 기초하여, 픽셀 P0 및 픽셀 P1의 변화율
Figure pat00014
Figure pat00015
을 계산할 수 있다. 구체적으로, 프로세서(520)는 픽셀 P0의 좌표 (P0.sface, P0.tface) 및 보정된 픽셀 P1의 좌표 (P1.tface, 2-P1.sface)에 기초하여, 픽셀 P0 및 픽셀 P1의 변화율
Figure pat00016
Figure pat00017
를 계산할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0 및 픽셀 P1의 변화율, 픽셀 P0 및 픽셀 P3의 변화율 등을 계산할 수 있다.
다른 실시예에 따라, 프로세서(520)는 픽셀 P0 및 P1이 서로 다른 면인 X+ face 및 Y- face에 포함되어 있으므로, 좌표 보정 테이블(910,920)에 기초하여, 픽셀 P0의 큐브 맵 상의 좌표 (P0.sface, P0.tface) 및 픽셀 P1의 큐브 맵 상의 좌표 (P1.sface, P1.tface)를 보정할 수 있다. 구체적으로, 프로세서(520)는 기준 픽셀을 픽셀 P0로 판단하여, 픽셀 P0의"Face of Reference"와 "Face of adjusted Pixel"은 동일하게 X+ face가 되므로, 좌표 보정 테이블(910,920)에 의해, 픽셀 P0의 조정된 좌표 (P0.sadj, P0.tadj)는 원래 좌표 (P0.sface, P0.tface)로 그대로 유지시킬 수 있다. 다음으로, 프로세서(520)는, 픽셀 P1의 경우,"Face of Reference"는 X+ face가 되고, "Face of adjusted Pixel"은 Y- face가 되므로, 좌표 보정 테이블(910,920)에 의해, 픽셀 P1의 조정된 좌표 (P1.sadj, P1.tadj)를 (P1.tface, 2-P1.sface)로 보정할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0와 다른 면에 투영되는 픽셀 P2 및 픽셀 P3의 큐브 맵 상의 좌표를 보정할 수 있다.
이어서, 프로세서(520)는 보정된 픽셀 P0의 좌표 (P0.sface, P0.tface) 및 보정된 픽셀 P1의 좌표 (P1.tface, 2-P1.sface)에 기초하여, 픽셀 P0 및 픽셀 P1의 변화율
Figure pat00018
Figure pat00019
를 계산할 수 있다. 마찬가지로, 프로세서(520)는 픽셀 P0 및 픽셀 P2의 변화율, 픽셀 P0 및 픽셀 P3의 변화율 등을 계산할 수 있다.
다시 도 5를 참조하면, 프로세서(520)는 계산된 픽셀들의 변화율(derivative)에 기초하여, 픽셀들에 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정할 수 있다. LOD는 예를 들어, 다음과 같은 수학식 1을 이용하여 계산될 수 있으나, 이에 한정되지 않는다.
Figure pat00020
Figure pat00021
는 LOD의 값이고,
Figure pat00022
은 픽셀 P0 및 P1의 sface좌표축 상에서의 변화율이고,
Figure pat00023
은 픽셀 P0 및 P1의 tface좌표축 상에서의 변화율이고,
Figure pat00024
은 픽셀 P0 및 P2의 sface좌표축 상에서의 변화율이고,
Figure pat00025
은 픽셀 P0 및 P2의 tface좌표축 상에서의 변화율이다.
또한, 일 실시예에 따라, 프로세서(520)는 인접하는 픽셀들에 대해 상기 큐브 맵 상에서의 좌표를 결정하는 제 1 연산부, 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정하는 제 2 연산부, 보정된 좌표를 이용하여, 큐브 맵 상에서 픽셀들의 변화율(derivative)을 계산하는 제 3 연산부; 및 계산된 변화율에 기초하여, 픽셀들에 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는 제 4 연산부를 포함할 수 있다.
따라서, 장치(500)는 픽셀들의 큐브 맵 상의 보정된 좌표로부터 픽셀들의 변화율(derivative)을 직접 계산할 수 있는바, 변화율을 계산하는 데 필요한 연산기의 개수를 줄일 수 있다. 구체적으로, 종래에는 LOD 결정에 전제가 되는 픽셀들의 변화율을 계산하기 위해, 픽셀들의 큐브 맵 상의 좌표를 결정하기 전에 스크린 스페이스 상에서 변화율을 계산하는 과정 및 기 계산된 변화율을 이용하여 큐브 맵 상에서 픽셀들의 변화율을 계산하는 과정이 요구되는 바, 이러한 과정에서 곱셈기, 덧셈기, 및 나눗셈기 등 다수의 연산기가 필요하였다. 다만, 본 개시에 따르면, 장치(500)는 큐브 맵 상에서의 픽셀들의 좌표에 대해 덧셈 연산 또는 반전 연산 정도만 수행하면 되는 바, 변화율을 계산하는 데 필요한 연산기의 개수를 줄일 수 있고, 이에 따라 장치(500)의 면적과 소비 전력을 줄일 수 있다. 예를 들어, 도 9에서 장치(500)는 sface좌표축 및 tface좌표축 상에서 픽셀들의 변화율
Figure pat00026
을 계산하기 위해, 두 픽셀의 좌표 보정에 필요한 연산기 및 보정된 두 픽셀의 좌표 간의 차이를 구하기 위한 연산기만을 필요로 한다.
도 12는 일 예에 따라, 큐브 맵을 텍스쳐링하기 위한 LOD를 결정하는 방법을 설명하기 위한 도면이다.
도 12에 도시된 방법은, 도 5의 장치(500) 또는 도 1의 텍스쳐 처리 장치(130)의 각 구성요소에 의해 수행될 수 있고, 중복되는 설명에 대해서는 생략한다.
단계 s1210에서, 장치(500)는 인접하는 픽셀들에 대해 큐브 맵 상에서의 좌표를 결정할 수 있다. 일 실시예에 따라, 장치(500)는 스크린 스페이스 상에서 픽셀의 방향 벡터를 기준으로, 픽셀을 큐브 맵 상으로 투영(project)시킨 지점의 좌표를, 픽셀의 큐브 맵 상의 좌표로 결정할 수 있다.
단계 s1220에서, 장치(500)는 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정할 수 있다.
먼저, 장치(500)는 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는지 여부를 판단할 수 있다. 다시 말해, 장치(500)는 스크린 스페이스 상의 픽셀들이 큐브 맵의 서로 다른 면들로 투영되는지 여부를 판단할 수 있다. 일 실시예에 따라, 장치(500)는 기 결정된 픽셀들 각각의 큐브 맵 상의 좌표가 큐브 맵의 서로 다른 면에 포함되는지 여부에 따라, 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는 지 여부를 판단할 수 있다. 또한, 다른 실시예에 따라, 장치(500)는 픽셀들의 스크린 스페이스 상에서의 방향 벡터를 기준으로, 픽셀들 각각이 큐브 맵의 서로 다른 면에 대응되는지 여부를 판단할 수 있다.
다음으로, 장치(500)는 인접하는 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들 중 적어도 하나의 픽셀의 큐브 맵 상의 좌표를 보정할 수 있다. 일 실시예에 따라, 장치(500)는 픽셀들 중 기준 픽셀에 대응되는 면(face)의 원점 및 좌표축을 기준으로, 픽셀들 중 다른 픽셀의 큐브 맵 상의 좌표를 보정할 수 있다. 또한, 장치(500)는 인접하는 픽셀들 각각이 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 픽셀들의 좌표에 요구되는 보정 연산에 대한 정보를 포함하는 좌표 보정 테이블에 기초하여, 픽셀들의 큐브 맵 상의 좌표를 보정할 수 있다.
예를 들어, 장치(500)는 픽셀의 좌표에 대해, 덧셈 연산 및 반전 연산 중 적어도 하나를 수행하여, 픽셀의 좌표를 보정할 수 있다. 구체적인 예로, 장치(500)는 픽셀에 대해 +1, -1, 또는 +2에 대한 덧셈 연산을 수행 할 수 있으며, 픽셀의 부호를 반전시키는 반전 연산을 수행할 수 있다. 또한, 장치(500)는 픽셀의 좌표 (sface, tface)의 각 좌표축 값을 (tface , sface)와 같이 서로 교환(swap)시키는 연산을 수행할 수 있다.
단계 s1230에서, 장치(500)는 픽셀들의 큐브 맵 상의 보정된 좌표를 이용하여, 큐브 맵 상에서 픽셀들의 변화율(derivative)을 계산할 수 있다. 구체적으로, 장치(500)는 큐브 맵의 좌표축 상에서 픽셀들 간의 거리를, 픽셀들의 변화율로써, 계산할 수 있다. 예를 들어, 장치(500)는 큐브 맵의 sface좌표축 및 tface좌표축에 대한 픽셀들의 변화율로써, 큐브 맵의 sface좌표축 및 tface좌표축 상 각각에서 픽셀들 간의 거리를 계산할 수 있다. 다시 말해, 장치(500)는 큐브 맵의 sface좌표축 및 tface좌표축 상에서 픽셀들 각각의 좌표값의 차이를 계산할 수 있다.
단계 s1240에서, 장치(500)는 계산된 픽셀들의 변화율(derivative)에 기초하여, 픽셀들에 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정할 수 있다.
상기 살펴 본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(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 (15)

  1. 큐브 맵(cube map)을 텍스쳐링하기 위한 LOD(Level Of Detail)를 결정하는 방법에 있어서,
    인접하는 픽셀들에 대해 상기 큐브 맵 상에서의 좌표를 결정하는 단계;
    상기 픽셀들 각각이 상기 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 상기 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정하는 단계;
    상기 보정된 좌표를 이용하여, 상기 큐브 맵 상에서 상기 픽셀들의 변화율(derivative)을 계산하는 단계; 및
    상기 계산된 변화율에 기초하여, 상기 픽셀들에 상기 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는 단계;를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 보정하는 단계는,
    상기 픽셀들 중 기준 픽셀에 대응되는 면(face)의 원점 및 좌표축을 기준으로, 상기 픽셀들 중 다른 픽셀의 좌표를 보정하는, 방법.
  3. 제 1 항에 있어서,
    상기 보정하는 단계는,
    상기 픽셀들의 좌표에 요구되는 보정 연산에 대한 정보를 포함하는 좌표 보정 테이블에 기초하여, 상기 픽셀들의 좌표를 보정하는, 방법.
  4. 제 1 항에 있어서,
    상기 보정하는 단계는,
    상기 적어도 하나의 픽셀의 좌표에 대해, 덧셈 연산 및 반전 연산 중 적어도 하나를 수행하는, 방법.
  5. 제 1 항에 있어서,
    상기 픽셀들의 변화율을 계산하는 단계는,
    상기 큐브 맵의 좌표축 상에서 상기 픽셀들 간의 좌표값 차이(difference)를, 상기 픽셀들의 변화율로써, 계산하는, 방법.
  6. 제 1 항에 있어서,
    상기 큐브 맵은,
    정규화된 크기를 갖는 6개의 정사각형 면(face)들로 구성된 정육면체의 텍스쳐인, 방법.
  7. 제 1 항에 있어서,
    상기 보정하는 단계는,
    스크린 스페이스 상에서의 상기 픽셀들의 방향 벡터를 기준으로, 상기 픽셀들 각각이 상기 큐브 맵의 서로 다른 면(face)에 대응되는지 여부를 판단하는 단계;를 포함하는, 방법.
  8. 큐브 맵(cube map)을 텍스쳐링하기 위한 LOD(Level Of Detail)를 결정하는 장치에 있어서,
    컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및
    상기 컴퓨터 실행가능 명령어를 실행함으로써, 인접하는 픽셀들에 대해 상기 큐브 맵 상에서의 좌표를 결정하고, 상기 픽셀들 각각이 상기 큐브 맵의 서로 다른 면(face)에 대응되는 경우, 상기 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정하고, 상기 보정된 좌표를 이용하여, 상기 큐브 맵 상에서 상기 픽셀들의 변화율(derivative)을 계산하고, 상기 계산된 변화율에 기초하여, 상기 픽셀들에 상기 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는, 프로세서를 포함하는, 장치.
  9. 제 8 항에 있어서,
    상기 프로세서는,
    상기 픽셀들 중 기준 픽셀에 대응되는 면(face)의 원점 및 좌표축을 기준으로, 상기 픽셀들 중 다른 픽셀의 좌표를 보정하는, 장치.
  10. 제 8 항에 있어서,
    상기 프로세서는,
    상기 픽셀들의 좌표에 요구되는 보정 연산에 대한 정보를 포함하는 좌표 보정 테이블에 기초하여, 상기 픽셀들의 좌표를 보정하는, 장치.
  11. 제 8 항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 픽셀의 좌표에 대해, 덧셈 연산 및 반전 연산 중 적어도 하나를 수행하는, 장치.
  12. 제 8 항에 있어서,
    상기 프로세서는,
    상기 큐브 맵의 좌표축 상에서 상기 픽셀들 간의 좌표값 차이(difference)를, 상기 픽셀들의 변화율로써, 계산하는, 장치.
  13. 제 8 항에 있어서,
    상기 프로세서는,
    스크린 스페이스 상에서의 상기 픽셀들의 방향 벡터를 기준으로, 상기 픽셀들 각각이 상기 큐브 맵의 서로 다른 면(face)에 대응되는지 여부를 판단하는, 장치.
  14. 제 8 항에 있어서,
    상기 프로세서는,
    인접하는 픽셀들에 대해 상기 큐브 맵 상에서의 좌표를 결정하는 제 1 연산부;
    상기 픽셀들 중 적어도 하나의 픽셀의 좌표를 보정하는 제 2 연산부;
    상기 큐브 맵 상에서 상기 픽셀들의 변화율(derivative)을 계산하는 제 3 연산부; 및
    상기 픽셀들에 상기 큐브 맵을 텍스쳐링 하기 위한 LOD를 결정하는 제 4 연산부를 포함하는, 장치.
  15. 제 1 항 내지 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020160174769A 2016-12-20 2016-12-20 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치 KR20180071767A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160174769A KR20180071767A (ko) 2016-12-20 2016-12-20 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치
US15/794,202 US10593096B2 (en) 2016-12-20 2017-10-26 Graphics processing employing cube map texturing
JP2017233437A JP7096661B2 (ja) 2016-12-20 2017-12-05 キューブマップをテクスチャリングするためのlodを決定する方法、装置、コンピュータプログラム及び記録媒体
EP17206725.8A EP3340183B1 (en) 2016-12-20 2017-12-12 Graphics processing employing cube map texturing
CN201711382658.3A CN108230435B (zh) 2016-12-20 2017-12-20 采用立方图纹理的图形处理

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160174769A KR20180071767A (ko) 2016-12-20 2016-12-20 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20180071767A true KR20180071767A (ko) 2018-06-28

Family

ID=60673181

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160174769A KR20180071767A (ko) 2016-12-20 2016-12-20 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치

Country Status (5)

Country Link
US (1) US10593096B2 (ko)
EP (1) EP3340183B1 (ko)
JP (1) JP7096661B2 (ko)
KR (1) KR20180071767A (ko)
CN (1) CN108230435B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11601488B2 (en) * 2020-04-08 2023-03-07 Lg Electronics Inc. Device and method for transmitting point cloud data, device and method for processing point cloud data

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5127725B2 (ja) * 2007-02-09 2013-01-23 三井化学株式会社 水性アミノ樹脂及びそれを含む水性熱硬化性樹脂組成物
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
CN109754451B (zh) * 2018-12-29 2023-04-14 北京金山安全软件有限公司 一种图像处理方法、装置、电子设备及存储介质
CN111617482B (zh) * 2020-06-04 2024-02-06 珠海金山数字网络科技有限公司 一种模型贴图编辑方法及装置
GB2604193B (en) * 2021-08-06 2023-03-08 Imagination Tech Ltd Texture address generation
CN114596399A (zh) * 2022-03-16 2022-06-07 北京字跳网络技术有限公司 图像处理方法、装置及电子设备
CN115330640B (zh) * 2022-10-11 2023-01-10 腾讯科技(深圳)有限公司 光照贴图降噪方法、装置、设备和介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975319B1 (en) 2000-03-24 2005-12-13 Nvidia Corporation System, method and article of manufacture for calculating a level of detail (LOD) during computer graphics processing
TWI238975B (en) * 2003-02-20 2005-09-01 Via Tech Inc Method of performing cubic mapping with texturing
EP1503345A1 (en) * 2003-07-30 2005-02-02 Koninklijke Philips Electronics N.V. System for adaptive resampling in texture mapping
US7595806B1 (en) 2004-08-03 2009-09-29 Nvidia Corporation Method and system for implementing level of detail filtering in a cube mapping application
JP2006244426A (ja) 2005-03-07 2006-09-14 Sony Computer Entertainment Inc テクスチャ処理装置、描画処理装置、およびテクスチャ処理方法
US7450124B2 (en) 2005-03-18 2008-11-11 Microsoft Corporation Generating 2D transitions using a 3D model
EP2122577B1 (en) 2007-01-24 2018-03-07 Swiftfoot Graphics Ab Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program
JP4584956B2 (ja) 2007-05-09 2010-11-24 株式会社ソニー・コンピュータエンタテインメント グラフィックスプロセッサおよび描画処理方法
JP4900051B2 (ja) 2007-05-31 2012-03-21 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
KR100897006B1 (ko) 2007-08-28 2009-05-14 중앙대학교 산학협력단 실시간으로 영상 합성이 가능한 영상 합성기 및 그 방법
KR100951121B1 (ko) 2008-12-08 2010-04-07 서강대학교산학협력단 간접 조명 효과를 위한 렌더링 방법
KR20120001114A (ko) 2010-06-29 2012-01-04 주식회사 태울엔터테인먼트 가상세계 실시간 3d 객체 제어와 이를 위한 인터페이스 및 입출력 방법
KR20140103374A (ko) 2013-02-15 2014-08-27 (주)트라이디커뮤니케이션 가상세계 이벤트 저작 시스템 및 방법
KR102049048B1 (ko) 2013-07-11 2019-11-26 한국전자통신연구원 이종망 환경에서 pci할당 방법 및 시스템
US9367948B2 (en) 2013-11-14 2016-06-14 Intel Corporation Flexible filter logic for multi-mode filtering of graphical texture data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11601488B2 (en) * 2020-04-08 2023-03-07 Lg Electronics Inc. Device and method for transmitting point cloud data, device and method for processing point cloud data

Also Published As

Publication number Publication date
EP3340183B1 (en) 2023-08-02
JP2018101415A (ja) 2018-06-28
US10593096B2 (en) 2020-03-17
EP3340183A1 (en) 2018-06-27
US20180174352A1 (en) 2018-06-21
CN108230435B (zh) 2023-06-20
CN108230435A (zh) 2018-06-29
JP7096661B2 (ja) 2022-07-06

Similar Documents

Publication Publication Date Title
JP7096661B2 (ja) キューブマップをテクスチャリングするためのlodを決定する方法、装置、コンピュータプログラム及び記録媒体
US10438319B2 (en) Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
KR102101626B1 (ko) 스크린 위치에 따라 달라지는 분해능을 가진 다수의 렌더 타겟을 위한 텍스처 매핑을 위한 그라디언트 조정
US8059119B2 (en) Method for detecting border tiles or border pixels of a primitive for tile-based rendering
US8115783B2 (en) Methods of and apparatus for processing computer graphics
CN104933749B (zh) 图形图元的裁剪
KR20160031328A (ko) 렌더링 방법 및 장치
GB2531427A (en) Graphics processing systems
US9898838B2 (en) Graphics processing apparatus and method for determining level of detail (LOD) for texturing in graphics pipeline
US20170061682A1 (en) Rendering method and apparatus
US10192348B2 (en) Method and apparatus for processing texture
CN108022282B (zh) 纹理处理方法和单元
KR101118597B1 (ko) 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템
US11030791B2 (en) Centroid selection for variable rate shading
KR101227155B1 (ko) 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법
KR100848687B1 (ko) 3차원 그래픽 처리 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal