KR102304932B1 - 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체 - Google Patents

그래픽스 데이터를 처리하는 방법, 장치 및 기록매체 Download PDF

Info

Publication number
KR102304932B1
KR102304932B1 KR1020150013541A KR20150013541A KR102304932B1 KR 102304932 B1 KR102304932 B1 KR 102304932B1 KR 1020150013541 A KR1020150013541 A KR 1020150013541A KR 20150013541 A KR20150013541 A KR 20150013541A KR 102304932 B1 KR102304932 B1 KR 102304932B1
Authority
KR
South Korea
Prior art keywords
area
guard band
graphics data
point
vertex
Prior art date
Application number
KR1020150013541A
Other languages
English (en)
Other versions
KR20160092756A (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 KR1020150013541A priority Critical patent/KR102304932B1/ko
Priority to US14/844,701 priority patent/US10026216B2/en
Publication of KR20160092756A publication Critical patent/KR20160092756A/ko
Application granted granted Critical
Publication of KR102304932B1 publication Critical patent/KR102304932B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation

Abstract

그래픽스 데이터에 포함되는 복수의 객체들 중에서 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역을 결정하고, 복수의 객체들 각각의 위치 정보를 획득하며, 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정하고, 결정된 영역에 따라 적어도 하나의 객체의 데이터의 일부를 제거하는 동작인 클리핑(clipping) 및 전부를 제거하는 동작인 컬링(culling) 중 적어도 하나를 수행하는 그래픽스 데이터를 처리하는 방법이 개시된다.

Description

그래픽스 데이터를 처리하는 방법, 장치 및 기록매체 {Method and apparatus for processing graphics data and recording medium thereof}
그래픽스 데이터를 처리하는 방법, 그래픽스 데이터를 처리하는 장치 및 기록매체에 관한 것이다.
최근 3차원의 그래픽스 데이터를 화면에 표시하는 디바이스가 각광받고 있다. 예를 들어, 모바일 디바이스에서 사용되는 UI(User Interface) 어플리케이션 및 시뮬레이션을 위한 어플리케이션 등이 적용되는 디바이스의 시장 규모가 확대되는 추세에 있다.
3차원의 그래픽스 데이터를 화면에 표시하는 디바이스는 일반적으로 그래픽 처리 유닛(Graphic Processing Unit, 이하 GPU)를 포함한다. GPU는 3차원의 그래픽스 데이터를 렌더링하기 위해, 변환, 래스터라이징, 음영, 블랜딩 등과 같은 다양한 그래픽 연산을 수행할 수 있다. GPU에서 처리해야 하는 프리미티브들의 수는 수백만 개수로 그래픽 연산을 수행하기 위해 많은 프로세싱 및 메모리 자원들이 소비될 수 있다.
그래픽스 데이터에 포함된 객체들 중에서, 시각화 영역을 벗어나는 객체를 제거하는 데 효율적인 방법을 제공하는 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체를 제공한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법은 그래픽스 데이터에 포함되는 복수의 객체들 중에서 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역을 결정하는 단계; 복수의 객체들 각각의 위치 정보를 획득하는 단계; 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정하는 단계; 및 결정된 영역에 따라 적어도 하나의 객체의 데이터의 일부를 제거하는 동작인 클리핑(clipping) 및 전부를 제거하는 동작인 컬링(culling) 중 적어도 하나를 수행하는 단계를 포함한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법에 있어서, 가드 밴드 영역을 결정하는 단계는, 가상 카메라의 위치를 기준으로 시선 방향에 위치한 제 1 평면 상의 지점인 제 1 지점으로부터 가상 카메라와 제 1 지점 사이에 위치한 제 2 지점까지의 영역을 제 1 가드 밴드 영역으로 결정한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법에 있어서, 가드 밴드 영역을 결정하는 단계는, 시각화 영역의 경계에 위치한 제 1 평면 및 제 2 평면 중에서, 시선 방향으로 더 먼 거리에 위치한 제 2 평면 상의 제 3 지점으로부터 시선 방향으로 제 3 지점 보다 더 먼 거리에 위치한 제 4 지점까지의 영역을 제 2 가드 밴드 영역으로 결정한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법에 있어서, 수행하는 단계는, 시각화 영역 및 가드 밴드 영역 이외의 영역에 위치한 객체의 데이터에 컬링을 수행하는 단계를 포함한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법은, 적어도 하나의 객체의 일부가 가드 밴드 영역에 위치하고, 적어도 하나의 객체의 다른 일부가 시각화 영역에 위치하는 경우, 적어도 하나의 객체의 깊이 정보를 저장하는 단계를 더 포함하고, 저장된 깊이 정보에 기초하여, 적어도 하나의 객체에 대한 래스터라이징(rasterizing)이 수행된다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법에 있어서, 적어도 하나의 객체가 위치하는 영역을 결정하는 단계는. 적어도 하나의 객체에 포함되는 정점들의 위치를 결정하는 단계를 포함하고, 클리핑을 수행하는 단계는, 객체의 복수의 정점들 중 일부가 시각화 영역에 포함되고, 다른 일부가 가드 밴드 영역을 벗어나는 경우, 시각화 영역에 포함되는 제 1 정점 및 가드 밴드 영역을 벗어나는 제 2 정점 사이에 위치한 어느 하나의 정점을 선택하는 단계; 및 선택된 정점이 가드 밴드 영역에 포함되는 경우, 선택된 정점으로부터 가드 밴드 영역을 벗어나는 제 2 정점까지의 정점들에 클리핑을 수행하는 단계를 포함한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법은, 선택된 정점이 가드 밴드 영역에 포함되지 않는 경우, 선택된 정점으로부터 기 설정된 거리 범위 값을 빼거나 더함으로써 다른 정점을 선택하는 단계를 더 포함한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법은, 획득한 복수의 객체들의 위치 정보에 기초하여, 기 설정된 제 2 지점으로부터 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체를 선택하는 단계를 더 포함하고, 수행하는 단계는, 선택된 객체에 관한 컬링을 우선적으로 수행하는 단계를 포함한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 방법에 있어서, 제 2 지점은, 가상 카메라의 위치를 나타내는 원점으로부터 시선 방향에 위치한 양의 좌표값을 갖는 지점이고, 양의 좌표값에 따라, 표시 가능한 객체들의 위치를 나타내는 좌표값이 정규화된다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치는, 그래픽스 데이터에 포함되는 복수의 객체들 중에서 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역을 결정하는 영역 결정부; 복수의 객체들 각각의 위치 정보를 획득하는 위치 정보 획득부; 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정하는 객체 위치 결정부; 및 결정된 영역에 따라 적어도 하나의 객체의 데이터의 일부를 제거하는 동작인 클리핑(clipping) 및 전부를 제거하는 동작인 컬링 중 적어도 하나를 수행하는 객체 처리부를 포함한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 영역 결정부는, 가상 카메라의 위치를 기준으로 시선 방향에 위치한 제 1 평면 상의 지점인 제 1 지점으로부터 가상 카메라와 제 1 지점 사이에 위치한 제 2 지점까지의 영역을 제 1 가드 밴드 영역으로 결정한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 영역 결정부는, 시각화 영역의 경계에 위치한 제 1 평면 및 제 2 평면 중에서, 시선 방향으로 더 먼 거리에 위치한 제 2 평면 상의 제 3 지점으로부터 시선 방향으로 상기 제 3 지점 보다 더 먼 거리에 위치한 제 4 지점까지의 영역을 제 2 가드 밴드 영역으로 결정한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 객체 처리부는, 시각화 영역 및 가드 밴드 영역 이외의 영역에 위치한 객체의 데이터에 컬링을 수행한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 객체 위치 결정부는, 적어도 하나의 객체의 일부가 가드 밴드 영역에 위치하고, 적어도 하나의 객체의 다른 일부가 시각화 영역에 위치하는 경우, 적어도 하나의 객체의 깊이 정보를 저장하는 단계를 더 포함하고, 저장된 깊이 정보에 기초하여, 적어도 하나의 객체에 대한 래스터라이징(rasterizing)이 수행된다 .
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 객체 위치 결정부는, 적어도 하나의 객체에 포함되는 정점들의 위치를 결정하고, 객체 처리부는, 객체의 복수의 정점들 중 일부가 시각화 영역에 포함되고, 다른 일부가 가드 밴드 영역을 벗어나는 경우, 시각화 영역에 포함되는 제 1 정점 및 가드 밴드 영역을 벗어나는 제 2 정점 사이에 위치한 어느 하나의 정점을 선택하고, 선택된 정점이 가드 밴드 영역에 포함되는 경우, 선택된 정점으로부터 가드 밴드 영역을 벗어나는 제 2 정점까지의 정점들에 클리핑을 수행한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 객체 처리부는, 선택된 정점이 가드 밴드 영역에 포함되지 않는 경우, 선택된 정점으로부터 기 설정된 거리 범위 값을 빼거나 더함으로써 다른 정점을 선택한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 객체 위치 결정부는, 획득한 복수의 객체들의 위치 정보에 기초하여, 기 설정된 제 2 지점으로부터 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체를 선택하고, 객체 처리부는, 선택된 객체에 관한 컬링을 우선적으로 수행한다.
일 실시예에 따른, 그래픽스 데이터를 처리하는 장치에 있어서, 제 2 지점은, 가상 카메라의 위치를 나타내는 원점으로부터 시선 방향에 위치한 양의 좌표값을 갖는 지점이고, 양의 좌표값에 따라, 표시 가능한 객체들의 위치를 나타내는 좌표값이 정규화된다.
도 1은 일 실시예에 따른 3D 그래픽스(graphics) 데이터를 처리하는 파이프라인을 도시한 도면이다.
도 2는 일 실시예에 따른 그래픽스 데이터 처리 장치에서 결정되는 시각화 영역 및 가드 밴드 영역을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 그래픽스 데이터 처리 장치가 그래픽스 데이터를 처리하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 그래픽스 데이터 처리 장치가 객체의 위치에 따라 클리핑을 수행할 지 여부를 결정하는 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따라 그래픽스 데이터 처리 장치에서, 객체의 위치에 따라 클리핑을 수행하는 방법을 구체적으로 설명하기 위한 도면이다.
도 6은 일 실시예에 따라, 객체의 일부가 가드 밴드 영역을 벗어나는 경우, 그래픽스 데이터 처리 장치에서, 가드 밴드 영역 내에 존재하는 정점을 새로 정의하여 클리핑을 수행하는 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 따라, 객체의 일부가 가드 밴드 영역을 벗어나는 경우, 그래픽스 데이터 처리 장치에서, 가드 밴드 영역 내에 존재하는 정점을 새로 정의하여 클리핑을 수행하는 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 그래픽스 데이터 처리 장치가 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체의 클리핑을 우선적으로 수행하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 그래픽스 데이터 처리 장치의 블록도이다.
아래에서는 첨부한 도면을 참조하여 개시된 기술적 사상이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 개시된 기술적 사상의 실시예를 상세히 설명한다. 그러나 개시된 기술적 사상은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 개시된 기술적 사상을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 개시된 기술적 사상을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 3D 그래픽스(graphics) 데이터를 처리하는 파이프라인(pipeline, 10)을 도시한 도면이다.
도 1에 도시된 3D 그래픽스(graphics) 데이터를 처리하는 파이프라인(10)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참조하면, 파이프라인(10)은 지오메트리(geometry) 연산부(11) 및 프레그먼트(fragment) 연산부(13)를 포함할 수 있다. 지오메트리 연산부(11)는 공간상의 정점(vertex)의 위상을 변화시킬 수 있다. 예를 들어, 지오메트리 연산부(11)는 정점의 좌표를 화면(screen)으로 투영(projection)할 수 있다. 한편, 프레그먼트 연산부(13)는 지오메트리 연산부(11)에서 화면에 투영한 정점들의 좌표에 기초하여, 정점들이 이루는 다각형(예를 들어, 삼각형)을 생성할 수 있다. 프레그먼트 연산부(13)는 생성한 다각형들이 2차원 화면을 구성하는 픽셀들 중 어느 픽셀에 표시될 것인지 여부를 결정할 수 있다. 또한 프레그먼트 연산부(13)는 2차원 화면 상에 표시되는 다각형들의 색상, 텍스처및 투명도 등을 계산할 수 있다.
이하에서는, 지오메트리 연산부(11) 및 프레그먼트 연산부(13) 각각에서 수행하는 기능에 대해 단계별로 설명하도록 한다.
지오메트리 연산부(11)는 프리미티브(primitive) 프로세서, 정점(vertex) 쉐이더 및 프리미티브 어셈블리를 포함할 수 있다. 다만, 이는 일 실시예일뿐 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
프리미티브 프로세서는 어플리케이션으로부터 수신한 그래픽스 데이터에 기초하여 정점들을 생성할 수 있다. 여기서 어플리케이션은 예를 들어, 비디오 게임, 그래픽스 및 영상 회의 등을 수행할 수 있는 3D 그래픽스를 이용하는 어플리케이션일 수 있다.
정점 쉐이더는 각각의 정점들을 화면에서 표시할 수 있도록 가상 공간내의 3D 위치를 2D 좌표 및 Z 버퍼의 깊이 값으로 변환할 수 있다.
프리미티브 어셈블리는 정점 쉐이더로부터 출력되는 정점들에 관한 데이터를 수집(collect)하여, 수집된 정점들에 관한 데이터를 기초로 프리미티브(예를 들어, 선, 점 및 삼각형)를 생성할 수 있다. 이하에서는, 설명의 편의상 프리미티브를 객체로 설명하도록 한다.
프레그먼트 연산부(13)는 일 실시예에 따라 그래픽스 데이터를 처리하는 장치(100, 이하 그래픽스 데이터 처리 장치), 래스터라이저(rasterizer, 15) 및 픽셀 쉐이더(17)를 포함할 수 있다. 다만, 이는 일 실시예일뿐 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
그래픽스 데이터 처리 장치(100)는 그래픽스 데이터에 포함된 복수의 객체들 중에서, 2차원의 화면에 보이지 않는 객체 또는 객체의 일부분을 잘라내는 동작인 클리핑(clipping)을 수행할 수 있다. 그래픽스 데이터 처리 장치(100)는 클리핑을 수행함으로써, 다음 단계의 동작에 필요한 연산들의 부하를 줄일 수 있고, 화면에 보이지 않는 객체에 관한 데이터가 남아있음으로써 발생할 수 있는 연산 상의 오류를 제거할 수 있다.
한편, 일 실시예에 따른 그래픽스 데이터 처리 장치(100)는 복수의 객체들을 존재하는 영역에 따라 분류하여, 각각의 객체에 대해 클리핑을 수행할 지 여부를 결정할 수 있다. 객체를 제거하는 과정에서, 연산 비용이 발생하므로, 클리핑을 수행하지 않아도 파이프라인 상의 오류가 발생되지 않는 객체를 추출하여, 클리핑에 소요되는 연산 비용을 효율적으로 이용할 수 있다.
그래픽스 데이터 처리 장치(100)는 화면에 표시되는 객체들의 영역인 시각화 영역을 결정할 수 있다. 시각화 영역은 설정에 따라 임의의 크기를 가질 수 있다. 또한, 시각화 영역은 관찰자의 시점인 가상 카메라의 위치를 기준으로 상하좌우 및 시선 방향으로의 거리 정보에 따라 결정될 수 있다.
그래픽스 데이터 처리 장치(100)는 가상 카메라의 위치를 기준으로 시각화 영역 보다 더 넓은 영역의 가드 밴드 영역을 결정할 수 있다. GPU에서 내부 처리 데이터 형식으로서 고정 소수점 형식을 사용하는 경우, 부동 소수점 형식에 비해 오버플로우(overflow)가 발생될 가능성이 매우 높다. 그래픽스 데이터 처리 장치는 오버플로우가 발생하지 않는 데이터 크기 범위 내에서 큰 수치값을 영역의 경계값으로 지정하여, 가드 밴드 영역을 결정할 수 있다.
그래픽스 데이터 처리 장치(100)는 거리 방향에 따라 가드 밴드 영역을 결정하고, 객체가 위치하는 영역에 따라 클리핑을 수행할 지 여부를 결정함으로써, 그래픽스 데이터를 처리하는 과정에서 발생되는 비용을 효율적으로 이용할 수 있다.
일 실시예에 따른 그래픽스 데이터 처리 장치(100)는 가상 카메라의 위치를 기준으로 거리에 따라 가드 밴드 영역을 결정할 수 있다. 구체적으로, 그래픽스 데이터 처리 장치(100)는 시각화 영역보다 가까운 영역부터 먼 영역에 가드 밴드 영역을 결정할 수 있다. 여기에서, 가까운 영역과 먼 영역의 결정은 전술한 바와 같이 오버플로우가 발생하지 않는 데이터 크기 범위 내에서 큰 수치값을 기준으로 결정될 수 있다.
그래픽스 데이터 처리 장치(100)에서 결정하는 시각화 영역 및 가드 밴드 영역에 대해서는 도 2를 참조하여 보다 구체적으로 후술하도록 한다.
래스터라이저(15)는 지오메트리 연산부(11)에서 수신한 프리미티브 내의 각 정점에 정의된 화면(screen) 좌표 및 텍스트 좌표 등을 보간하여, 프리미티브 내부에 대한 프레그먼트(fragment)의 정보를 생성할 수 있다. 하기의 실시예들 및 예들에서, 용어 ‘프레그먼트’ 및 ‘픽셀’ 은 동일한 의미로 상호 교환되어 사용될 수 있다.
프레그먼트 쉐이더(17)는 프레임 내부의 프레그먼트 각각에 대해 텍스처 매핑 및 빛의 반사 등을 계산하여, 프레그먼트의 색상을 결정할 수 있다. 또한, 프레그먼트 쉐이더(17)는 프레임에 객체를 나타내는데 필요 없는(예를 들어, 중첩되는 객체들 중, 불투명한 객체의 뒤에 존재하는 객체에 대한 프레그먼트) 프레그먼트를 제거할 수 있다. 제거된 프레그먼트에는 렌더링이 수행되지 않을 수 있다.
도 2는 일 실시예에 따른 그래픽스 데이터 처리 장치(100)에서 결정되는 시각화 영역(210) 및 가드 밴드 영역(220)을 설명하기 위한 도면이다.
시각화 영역(210)은 그래픽스 데이터에 포함된 복수의 객체들 중에서, 2차원 화면에 표시되는 객체들의 영역을 나타낸다. 객체의 위치가 시각화 영역을 벗어나게 될 경우, 2차원 화면에 표시되지 않을 수 있다. 또한, 시각화 영역을 벗어나는 객체들로 인하여, 사용자가 의도했던 화면의 표시와는 다른 표시가 출력될 수 도 있다. 시각화 영역은 렌더링할 때 보이는 부분을 도형 형태로 표시한 영역인 뷰 프러스텀(view frustum)을 나타낼 수 있다.
한편, 가드 밴드 영역(220)은 시각화 영역보다 큰 영역에 결정될 수 있다. 그래픽스 데이터 처리 장치(100)는 객체가 시각화 영역(210)에 포함되지 않는 경우에도, 객체가 가드 밴드 영역(220) 상에 위치한다면, 객체에 대해 클리핑을 수행하지 않을 수 있다. 가드 밴드 영역(220) 상에 위치하는 객체들의 경우, 도 1을 참조하여 전술한 래스터라이저(15)를 통해, 보다 용이하게 제거할 수 있다. 따라서, 그래픽스 데이터 처리 장치(100)는 가드 밴드 영역(220)을 설정하여 시각화 영역(210)을 벗어나는 객체들 중, 가드 밴드 영역(220)에 포함되는 객체들에 대해 클리핑을 수행하지 않고 래스터라이징을 수행함으로써, 클리핑에 소요되는 연산 비용을 줄일 수 있다.
도 2를 참조하면, 시각화 영역(210)은 가상 카메라의 위치(Vp)를 기준으로 결정될 수 있다. 시각화 영역(210)은 가상 카메라의 위치(Vp)에서 시선 방향으로 멀어질수록 상하좌우의 크기가 커지는 방사상(radial)의 형태로 결정될 수 있다.
도 2는 그래픽스 데이터에 포함되는 객체들의 위치를 x 또는 y 축 및 w축을 기준으로 나타낸 2차원 평면 그래프이다. 여기에서, x축은 좌우의 위치를 나타내고, y축은 상하의 위치를 나타낼 수 있다. 또한, w축은 가상 카메라의 위치를 기준으로 하여, 시선 방향으로 얼만큼 먼 거리에 위치하는지 여부를 나타낼 수 있다. 2차원 평면 그래프의 어느 한 축이 x축이고, 다른 한 축이 w축인 경우에는 그래픽스 데이터의 객체들의 위치를 좌우의 위치와 거리에 따라 나타낼 수 있다. 또한, 2차원 평면 그래프의 어느 한 축이 y축이고, 다른 한 축이 w축인 경우에는 그래픽스 데이터의 객체들의 위치를 상하의 위치와 거리에 따라 나타낼 수 있다.
일 실시예에 따른 시각화 영역(210)은 가상 카메라의 위치를 기준으로 거리 a에 위치한 지점으로부터 거리 b에 위치한 지점까지의 영역으로 결정될 수 있다.
한편, 도 2에서 가드 밴드 영역(220)은 가상 카메라의 위치를 기준으로 시선 방향을 따라 시각화 영역(210)보다 가까운 지점부터 먼 지점 사이에 결정될 수 있다. 다만, 이는 일 실시예일 뿐, 그래픽스 데이터 처리 장치(100)는 상하 방향 또는 좌우 방향으로도 가드 밴드 영역(220)을 결정할 수 있다. 다만, 본 명세서에서는 설명의 편의상, 시선 방향에 따라 결정되는 가드 밴드 영역(220)에 대해 설명하도록 한다. 가드 밴드 영역(220)은 시각화 영역(210)에서, 시선 방향에 위치한 근접한 평면인 제 1 평면(212) 상의 지점인 제 1 지점으로부터 제 1 지점과 가상 카메라의 사이에 위치한 지점인 제 2 지점까지의 영역인 제 1 가드 밴드 영역을 포함할 수 있다. 또한, 가드 밴드 영역(220)은 시각화 영역에 위치한 제 1 평면(212) 및 제 2 평면(214) 중에서, 시선 방향으로 더 먼 거리에 위치한 제 2 평면(214) 상의 지점인 제 3 지점으로부터 제 3 지점에서 시선 방향으로 더 먼 거리에 위치한 지점인 제 4 지점까지의 영역인 제 2 가드 밴드 영역(220)을 포함할 수 있다.
다시 말하면, 가드 밴드 영역(220)은 거리
Figure 112015009442874-pat00001
에 위치한 지점으로부터 거리 a에 위치한 지점 및 거리 b에 위치한 지점으로부터 거리 c에 위치한 지점까지의 영역으로 결정될 수 있다.
일 실시예에 따른, 그래픽스 데이터 처리 장치(100)는 거리 좌표를 따라 임의의 작은 양수 값인
Figure 112015009442874-pat00002
를 가드 밴드 영역(220)의 최소 거리 경계점으로 설정할 수 있다. 여기에서,
Figure 112015009442874-pat00003
은 객체들에 대한 클리핑 동작 또는 컬링 동작 이후에 수행되는 원근 분할(perspective division) 단계에서, 객체들의 좌표값을 정규화하는데 이용될 수 있다. 원근 분할 단계에서는 객체들의 좌표를 스크린 또는 뷰포트에 투영하기 위해, 객체들의 좌표값을
Figure 112015009442874-pat00004
으로 나누는 정규화 과정이 수행될 수 있다. 그래픽스 데이터 처리 장치(100)는
Figure 112015009442874-pat00005
를 0이 아닌 임의의 작은 양수값으로 결정함으로써, 정규화 과정에서, 0으로 나눗셈 연산을 수행하여 발생할 수 있는 오류를 제거할 수 있다.
도 3은 일 실시예에 따른 그래픽스 데이터 처리 장치(100)가 그래픽스 데이터를 처리하는 방법을 설명하기 위한 흐름도이다.
단계 310에서, 그래픽스 데이터 처리 장치(100)는 그래픽스 데이터에 포함되는 복수의 객체들 중에서, 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역(210)의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역(220)을 결정한다. 여기에서, 거리 범위는 가상 카메라의 위치를 기준으로 멀고 가까운 정도에 따라 결정될 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 시각화 영역(210)으로부터 거리
Figure 112015009442874-pat00006
에 위치한 지점으로부터 거리 a에 위치한 지점 및 거리 b에 위치한 지점으로부터 거리 c에 위치한 지점까지의 영역을 가드 밴드 영역(220)으로 결정할 수 있다.
단계 320에서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각의 위치 정보를 획득한다. 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각을 구성하는 정점(vertex)들의 공간 좌표를 획득할 수 있다. 객체가 삼각형인 경우, 객체는 3개의 정점들에 의해 정의될 수 있다.
예를 들어, 그래픽스 데이터 처리 장치(100)는 x, y, z 및 w의 4개의 컴포넌트들로 구성된 공간 좌표를 획득할 수 있다. 여기에서, x와 y는 각각 수평 좌표 및 수직 좌표를 나타낸다. 또한, z와 w는 각각 깊이 좌표 및 거리 좌표를 나타낸다.
단계 330에서, 그래픽스 데이터 처리 장치(100)는 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정한다.
그래픽스 데이터 처리 장치(100)는 객체의 위치 정보와 시각화 영역(210) 및 가드 밴드 영역(220)의 경계값의 위치 정보를 비교하여 객체가 위치하는 영역을 결정할 수 있다.
한편, 그래픽스 데이터 처리 장치(100)는 영역 별로 우선순위를 결정하여, 선순위로 결정된 영역에 위치하는 객체를 우선적으로 결정할 수 있다. 예를 들어, 클리핑을 수행해야 하는 영역인 가드 밴드 영역의 외부 영역에 위치하는 객체들을 우선적으로 검출하여, 제거될 객체들에 대한 연산 비용을 미리 줄일 수 있다. 이에 대해서는 도 8을 참조하여, 보다 구체적으로 후술하도록 한다.
단계 340에서, 그래픽스 데이터 처리 장치(100)는 결정된 영역에 따라 적어도 하나의 객체의 데이터를 제거하는 동작인 클리핑 및 전부를 제거하는 동작인 컬링 중 적어도 하나를 수행한다. 다만, 여기에서, 클리핑 및 컬링은 그래픽스 데이터 처리 장치(100)가 적어도 하나의 객체에 대해 수행가능한 동작의 일 예일 뿐, 그래픽스 데이터 처리 장치(100)는 객체의 깊이 정보를 저장하는 동작을 수행할 수도 있고, 객체에 아무런 동작을 수행하지 않을 수도 있다.
예를 들어, 그래픽스 데이터 처리 장치(100)는 객체를 구성하는 정점들이 모두 시각화 영역(210)을 벗어나는 경우, 객체를 구성하는 정점들에 컬링을 수행할 수 있다.
다른 예에 따라, 그래픽스 데이터 처리 장치(100)는 객체를 구성하는 정점들 중 일부 정점들이 시각화 영역(210)에 포함되고, 다른 일부 정점들이 가드 밴드 영역(220)을 벗어 나는 경우, 가드 밴드 영역(220) 에서 선택된 임의의 정점으로부터 가드 밴드 영역(220)을 벗어나는 정점까지의 정점들에 대해 클리핑을 수행할 수 있다. 그래픽스 데이터 처리 장치(100)는 가드 밴드 영역(220)에서 선택된 임의의 정점을 기준으로, 가드 밴드 영역(220)을 벗어나는 정점들을 제거함으로써, 연산에 있어 오버 플로우가 발생되는 것을 막을 수 있다. 또한, 그래픽스 데이터 처리 장치(100)는 시각화 영역(210)의 제 1 정점과 가드 밴드 영역(220)을 벗어난 제 2 정점 사이에서, 거리값을 빼거나 더함으로써 클리핑을 수행하는데 기준이 되는 정점을 선택할 수 있다. 이에 대해서는, 도 6을 참조하여 보다 구체적으로 후술하도록 한다.
또 다른 예에 따라, 그래픽스 데이터 처리 장치(100)는 객체를 구성하는 정점들 중 일부 정점들이 시각화 영역(210)에 포함되고, 다른 일부 정점들이 가드 밴드 영역(220)에 포함되는 경우, 객체의 깊이 정보를 저장할 수 있다. 그래픽스 데이터 처리 장치(100)는 가드 밴드 영역(220)을 벗어나지 않는 객체의 정점들에 대해서는 클리핑을 수행하지 않고, 래스터라이징이 수행될 수 있도록 함으로써, 클리핑에 소요되는 연산량을 줄일 수 있다. 도 1을 참조하여 전술한 래스터라이저(15)에서, 그래픽스 데이터 처리 장치(100)가 저장한 객체의 깊이 정보를 이용하여, 객체에 대한 래스터라이징을 수행할 수 있다.
또 다른 예에 따라, 그래픽스 데이터 처리 장치(100)는 객체를 구성하는 모든 정점들이 시각화 영역(210)에 포함되는 경우, 객체의 정점들에 대한 별도의 동작을 수행하지 않을 수 있다.
도 4는 일 실시예에 따른 그래픽스 데이터 처리 장치(100)가 객체의 위치에 따라 클리핑을 수행할 지 여부를 결정하는 방법을 설명하기 위한 흐름도이다.
딘계 410에서, 그래픽스 데이터 처리 장치(100)는 그래픽스 데이터에 포함되는 복수의 객체들 중에서, 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역(210) 의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역(220)을 결정할 수 있다. 여기에서, 시각화 영역(210)은 가상 카메라의 위치(Vp)에서 시선 방향으로 멀어질수록 상하좌우의 크기가 커지는 방사상(radial)의 형태로 결정될 수 있다. 다만, 이는 일 실시예일 뿐, 그래픽스 데이터 처리 장치(100)는 상하 방향 또는 좌우 방향으로도 가드 밴드 영역(220)을 결정할 수 있다.
한편, 단계 410은 도 3을 참조하여 전술한 단계 310과 대응될 수 있다.
단계 415에서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각의 위치 정보를 획득할 수 있다. 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각을 구성하는 정점(vertex)들의 공간 좌표를 획득할 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 x, y, z 및 w의 4개의 컴포넌트들로 구성된 공간 좌표를 획득할 수 있다. 여기에서, x와 y는 각각 수평 좌표 및 수직 좌표를 나타낸다. 또한, z와 w는 각각 깊이 좌표 및 거리 좌표를 나타낸다.
한편, 단계 415는 도 3을 참조하여 전술한 단계 320과 대응될 수 있다.
단계 420에서, 그래픽스 데이터 처리 장치(100)는 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정할 수 있다.
그래픽스 데이터 처리 장치(100)는 객체의 위치 정보와 시각화 영역(210) 및 가드 밴드 영역(220)의 경계값의 위치 정보를 비교하여 객체가 위치하는 영역을 결정할 수 있다.
한편, 단계 420은 도 3을 참조하여 전술한 단계 330과 대응될 수 있다.
단계 425에서, 그래픽스 데이터 처리 장치(100)는 객체를 구성하는 정점들 중 적어도 일부가 시각화 영역(210)에 포함되는지 여부를 판단할 수 있다.
단계 430에서, 그래픽스 데이터 처리 장치(100)는 객체에 컬링을 수행할 수 있다. 일 실시예에 따른 그래픽스 데이터 처리 장치(100)는 객체를 구성하는 모든 정점들이 가드 밴드 영역(220)의 외부에 위치하는 경우, 객체를 구성하는 모든 정점들에 대해 컬링을 수행할 수 있다.
단계 435에서, 그래픽스 데이터 처리 장치(100)는 객체의 다른 일부가 가드 밴드 영역(220)의 외부에 존재하는지 여부를 판단할 수 있다.
단계 440에서, 그래픽스 데이터 처리 장치(100)는 객체의 다른 일부가 가드 밴드 영역(220)에 포함되는지 여부를 판단할 수 있다. 그래픽스 데이터 처리 장치(100)는 모든 정점들이 시각화 영역(210)에 포함되는 경우에는 객체를 구성하는 정점들에 별도의 동작을 수행하지 않을 수 있다.
단계 445에서, 그래픽스 데이터 처리 장치(100)는 객체의 깊이 정보를 저장할 수 있다. 객체의 정점들 중 일부가 시각화 영역(210)에 포함되고, 다른 일부가 가드 밴드 영역(220)에 포함되는 경우, 객체의 깊이 정보는 추후에 래스터라이저(15)에서 가드 밴드 영역(220)에 존재하는 객체의 다른 일부 정점들을 래스터라이징 하는데 이용될 수 있다.
또한, 그래픽스 데이터 처리 장치(100)는 객체의 정점들이 가드 밴드 영역(220)에 위치하는 경우, 객체의 정점들에 간소화 처리 과정을 수행할 수 있다. 간소화 처리 과정은 가드 밴드 영역(220)에 위치한 정점들 중에서, 처음의 정점과 마지막의 정점만 남겨두고, 나머지 정점들에 관한 정보들을 삭제하는 과정을 나타낸다.
단계 450에서, 그래픽스 데이터 처리 장치(100)는 시각화 영역에 위치한 객체의 제 1 정점과 가드 밴드 영역(220)의 외부에 위치한 제 2 정점 간에 임의의 정점을 선택할 수 있다.
단계 455에서, 그래픽스 데이터 처리 장치(100)는 선택된 임의의 정점이 가드 밴드 영역(220)에 포함되는 경우, 선택된 정점으로부터 가드 밴드 영역(220)의 외부에 위치한 제 2 정점까지의 정점들에 대해 클리핑을 수행할 수 있다.
그래픽스 데이터 처리 장치(100)가 가드 밴드 영역(220) 내에 정점들이 존재하도록, 재설정하는 방법에 대해서는 도 6 및 도 7을 참조하여, 보다 구체적으로 후술하도록 한다.
도 5는 일 실시예에 따라 그래픽스 데이터 처리 장치(100)에서, 객체의 위치에 따라 클리핑을 수행하는 방법을 구체적으로 설명하기 위한 도면이다.
도 5의 (a)에는 수직 좌표를 나타내는 y축과 거리 좌표를 나타내는 w축을 기준으로, 객체들(532, 534, 536, 538)의 위치를 표시한 2차원 그래프가 도시되어 있다. 도 5의 (a)에서 시각화 영역(510)은 가상 카메라의 위치를 기준으로 거리 a에 위치한 지점으로부터 거리 b에 위치한 지점까지의 영역의 거리 범위에 결정될 수 있다.
한편, 가드 밴드 영역(520)은 가상 카메라의 위치를 기준으로 시선 방향을 따라 시각화 영역(210)보다 가까운 지점부터 먼 지점 사이에 결정될 수 있다. 다만, 이는 일 실시예일 뿐, 그래픽스 데이터 처리 장치(100)는 상하 방향 또는 좌우 방향으로도 가드 밴드 영역(520)을 결정할 수 있다. 가드 밴드 영역(520)은 거리
Figure 112015009442874-pat00007
에 위치한 지점으로부터 거리 a에 위치한 지점 및 거리 b에 위치한 지점으로부터 거리 c에 위치한 지점까지의 영역으로 결정될 수 있다.
일 실시예에 따라, 그래픽스 데이터에는 객체 1(532), 객체 2(534), 객체 3(536) 및 객체 4(538)가 포함될 수 있다. 그래픽스 데이터 처리 장치(100)는 객체 1(532)의 공간 좌표를 획득하여, 객체 1(532)의 위치가 가드 밴드 영역(520)을 벗어나는지 여부를 판단할 수 있다. 그래픽스 데이터 처리 장치(100)는 가드 밴드 영역(520)을 벗어나는 객체 1(532)로 인해, 오버플로우가 발생하는 것을 예방하기 위해, 객체 1(532)에 컬링을 수행할 수 있다.
그래픽스 데이터 처리 장치(100)는 객체 2(534)가 시각화 영역(510) 및 가드 밴드 영역(520) 상에 위치하는 것을 확인할 수 있다. 그래픽스 데이터 처리 장치(100)는 시각화 영역(510)을 벗어나고 가드 밴드 영역(520) 상에 위치한 객체 2(534)에 대해 클리핑을 수행하지 않고, 추후에 래스터라이징을 수행하기 위한 객체 2(534)의 깊이 정보를 저장할 수 있다.
그래픽스 데이터 처리 장치(100)는 객체 3(536)의 일부 정점들이 시각화 영역(510)에 포함되고, 다른 일부 정점들이 가드 밴드 영역(520)의 외부에 위치하는 것을 확인할 수 있다. 그래픽스 데이터 처리 장치(100)는 가드 밴드 영역(520) 내에 존재하는 임의의 정점을 기준으로 가드 밴드 영역(520)을 벗어나는 정점들을 클리핑 할 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 시각화 영역(510)의 내부에 존재하는 정점과 가드 밴드 영역(520)의 외부에 존재하는 정점으로부터 1/2, 1/4, 1/8 등의 위치를 순차적으로 찾아가는 반복적 찾기 방법을 통해 가드 밴드 영역(520)을 벗어나는 정점들을 가드 밴드 영역(520) 내의 정점으로 변경할 수 있다. 그래픽스 데이터 처리 장치(100)는 시각화 영역(510) 상의 제 1 정점 및 가드 밴드 영역(520)의 외부의 제 2 지점으로부터 기 설정된 거리값을 빼거나 더함으로써, 가드 밴드 영역(520) 내에 임의의 정점을 선택할 수 있다.
그래픽스 데이터 처리 장치(100)는 객체 4(538)가 시각화 영역(510) 및 가드 밴드 영역(520) 상에 위치하는 것을 확인할 수 있다. 그래픽스 데이터 처리 장치(100)는 시각화 영역(510)을 벗어나고 가드 밴드 영역(520) 상에 위치한 객체 4(538)의 일부 정점들에 대해서는 클리핑을 수행하지 않고, 추후에 래스터라이징을 수행하기 위한 객체 4(538)의 깊이 정보를 저장할 수 있다.
한편, 도 5의 (b)에는 수평 좌표를 나타내는 x축과 거리 좌표를 나타내는 w축을 기준으로, 객체들(532, 534, 536, 538)의 위치를 표시한 2차원 그래프가 도시되어 있다. 그래픽스 데이터 처리 장치(100)가 각각의 객체들(532, 534, 536, 538)을 처리하는 방법은 도 5의 (a)를 참조하여 전술한 바와 동일하다.
도 6은 일 실시예에 따라, 객체의 일부가 가드 밴드 영역(220)을 벗어나는 경우, 그래픽스 데이터 처리 장치(100)에서, 가드 밴드 영역(220) 내에 존재하는 정점을 새로 정의하여 클리핑을 수행하는 방법을 설명하기 위한 흐름도이다.
딘계 610에서, 그래픽스 데이터 처리 장치(100)는 그래픽스 데이터에 포함되는 복수의 객체들 중에서, 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역(210)의 기준점인 가상 카메라의 위치를 기준으로 기 설정된 거리 범위에 가드 밴드 영역(220)을 결정한다. 여기에서, 시각화 영역(210)은 가상 카메라의 위치(Vp)에서 시선 방향으로 멀어질수록 상하좌우의 크기가 커지는 방사상(radial)의 형태로 결정될 수 있다. 다만, 이는 일 실시예일 뿐, 그래픽스 데이터 처리 장치(100)는 상하 방향 또는 좌우 방향으로도 가드 밴드 영역(220)을 결정할 수 있다.
한편, 단계 610은 도 3을 참조하여 전술한 단계 310과 대응될 수 있다.
단계 620에서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각의 위치 정보를 획득할 수 있다. 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각을 구성하는 정점(vertex)들의 공간 좌표를 획득할 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 x, y, z 및 w의 4개의 컴포넌트들로 구성된 공간 좌표를 획득할 수 있다. 여기에서, x와 y는 각각 수평 좌표 및 수직 좌표를 나타낸다. 또한, z와 w는 각각 깊이 좌표 및 거리 좌표를 나타낸다.
한편, 단계 620은 도 3을 참조하여 전술한 단계 320과 대응될 수 있다.
단계 630에서, 그래픽스 데이터 처리 장치(100)는 획득한 위치 정보를 이용하여, 적어도 하나의 객체에 포함되는 정점들이 위치하는 영역을 결정할 수 있다.
그래픽스 데이터 처리 장치(100)는 객체의 위치 정보와 시각화 영역(210) 및 가드 밴드 영역(220)의 경계값의 위치 정보와 정점들의 공간 좌표를 비교하여 적어도 하나의 객체를 구성하는 정점들이 위치하는 영역을 결정할 수 있다.
단계 640에서, 그래픽스 데이터 처리 장치(100)는 시각화 영역(210)에 포함되는 제 1 정점 및 가드 밴드 영역(220)을 벗어나는 제 2 정점 사이에서 어느 하나의 정점을 선택할 수 있다.
일 실시예에 따른, 그래픽스 데이터 처리 장치(100)는 정점들 중에서, 가드 밴드 영역(220)을 벗어나는 정점들을 가드 밴드 영역(220) 내에 존재하는 임의의 정점으로 대체할 수 있다. 그래픽스 데이터 처리 장치(100)는 시각화 영역(210)의 내부에 존재하는 제 1 정점과 가드 밴드 영역(220)의 외부에 존재하는 제 2 정점으로부터 1/2, 1/4, 1/8 등의 위치를 순차적으로 찾아가는 반복적 찾기 방법을 통해 가드 밴드 영역(220)을 벗어나는 정점들을 가드 밴드 영역(520) 내의 정점으로 변경할 수 있다. 여기에서, 그래픽스 데이터 처리 장치(100)는 시각화 영역(510) 상의 제 1 정점 및 가드 밴드 영역(520)의 외부의 제 2 지점으로부터 기 설정된 거리값을 빼거나 더함으로써, 가드 밴드 영역(520) 내에 임의의 정점을 선택할 수 있다.
단계 650에서, 그래픽스 데이터 처리 장치(100)는 선택된 정점이 가드 밴드 영역(220)에 포함되는 경우, 선택된 정점으로부터 가드 밴드 영역(220)을 벗어나는 제 2 정점까지의 정점들에 대해 클리핑 동작을 수행할 수 있다.
그래픽스 데이터 처리 장치(100)는 제 1 정점과 새롭게 결정된 정점을 객체에 관한 정점 데이터로 저장할 수 있다. 한편, 그래픽스 데이터 처리 장치(100)는 가드 밴드 영역(220)을 벗어나는 제 2 정점에 관한 데이터는 제거할 수 있다.
일 실시예에 따른 그래픽스 데이터 처리 장치(100)는 일반적인 클리핑 처리 과정에서 필요로 하는 나눗셈 연산을 필요로 하지 않으며, 1/2, 1/4 등의 정수비 만으로 연산이 가능하므로 연산 오차에 의한 오류 발생을 줄일 수 있다.
도 7은 일 실시예에 따라, 객체의 일부가 가드 밴드 영역(220)을 벗어나는 경우, 그래픽스 데이터 처리 장치(100)에서, 가드 밴드 영역(220) 내에 존재하는 정점을 새로 정의하여 클리핑을 수행하는 방법을 설명하기 위한 도면이다.
도 7의 (a)에서, 그래픽스 데이터 처리 장치(100)는 정점들 중에서, 가드 밴드 영역을 벗어나는 정점들을 가드 밴드 영역 내에 존재하는 임의의 정점으로 대체할 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 시각화 영역의 내부에 존재하는 제 1 정점(710)과 가드 밴드 영역의 외부에 존재하는 제 2 정점(720) 간의 거리에서 1/2의 위치에 존재하는 제 3 정점(730)을 결정할 수 있다.
그래픽스 데이터 처리 장치(100)는 결정된 제 3 정점(730)이 위치하는 영역을 결정할 수 있다. 그래픽스 데이터 처리 장치(100)는 제 3 정점(730)이 가드 밴드 영역에 위치하는 경우 제 3 정점(730)을 객체를 구성하는 새로운 정점으로 결정할 수 있다.
도 7의 (b)에서, 그래픽스 데이터 처리 장치(100)는 정점들 중에서, 가드 밴드 영역을 벗어나는 정점들을 가드 밴드 영역 내에 존재하는 임의의 정점으로 대체할 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 시각화 영역의 내부에 존재하는 제 1 정점(740)과 가드 밴드 영역의 외부에 존재하는 제 2 정점(750) 간의 거리에서 1/2의 위치에 존재하는 제 3 정점(760)을 결정할 수 있다.
그래픽스 데이터 처리 장치(100)는 결정된 제 3 정점(760)이 위치하는 영역을 결정할 수 있다. 그래픽스 데이터 처리 장치(100)는 제 3 정점(760)이 가드 밴드 영역을 벗어나는 경우 제 1 정점(740)과 가드 밴드 영역의 외부에 존재하는 제 2 정점(750) 간의 거리에서 1/4의 위치에 제 4 정점(770)을 결정할 수 있다.
그래픽스 데이터 처리 장치(100)는 결정된 제 4 정점(770)이 위치하는 영역을 결정할 수 있다. 그래픽스 데이터 처리 장치(100)는 제 4 정점(770)이 가드 밴드 영역에 위치하는 경우 제 4 정점(770)을 객체를 구성하는 새로운 정점으로 결정할 수 있다.
도 8은 일 실시예에 따른 그래픽스 데이터 처리 장치(100)가 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체의 클리핑을 우선적으로 수행하는 방법을 설명하기 위한 도면이다.
딘계 810에서, 그래픽스 데이터 처리 장치(100)는 그래픽스 데이터에 포함되는 복수의 객체들 중에서, 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역(210)의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역(220)을 결정할 수 있다. 여기에서, 시각화 영역(210)은 가상 카메라의 위치(Vp)에서 시선 방향으로 멀어질수록 상하좌우의 크기가 커지는 방사상(radial)의 형태로 결정될 수 있다. 다만, 이는 일 실시예일 뿐, 그래픽스 데이터 처리 장치(100)는 상하 방향 또는 좌우 방향으로도 가드 밴드 영역(220)을 결정할 수 있다.
한편, 단계 810은 도 3을 참조하여 전술한 단계 310과 대응될 수 있다.
단계 820에서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각의 위치 정보를 획득할 수 있다. 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각을 구성하는 정점(vertex)들의 공간 좌표를 획득할 수 있다. 예를 들어, 그래픽스 데이터 처리 장치(100)는 x, y, z 및 w의 4개의 컴포넌트들로 구성된 공간 좌표를 획득할 수 있다. 여기에서, x와 y는 각각 수평 좌표 및 수직 좌표를 나타낸다. 또한, z와 w는 각각 깊이 좌표 및 거리 좌표를 나타낸다.
한편, 단계 820은 도 3을 참조하여 전술한 단계 320과 대응될 수 있다.
단계 830에서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 중에서, 기 설정된 임계점으로부터 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체를 선택할 수 있다.
가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체는 카메라의 렌즈 뒤에 맺히는 경우로 취급되어, 그래픽스 데이터를 렌더링 하는 과정에서 연산 오류를 발생시킬 수 있다. 따라서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 중에서도, 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치하는 객체들에 대해서는 클리핑 또는 컬링을 필수적으로 수행할 필요가 있다.
여기에서, 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역은 가상 카메라의 위치를 원점으로 설정하는 경우, 수평 방향으로 음의 좌표 값을 갖는 영역을 나타낸다.
일 실시예에 따른 그래픽스 데이터 처리 장치(100)는 복수의 객체들 각각을 구성하는 정점들의 공간 좌표에 관한 정보를 획득하여, 수평 방향으로 음의 좌표 값을 갖는 정점들을 포함하는 객체들을 검출할 수 있다.
단계 840에서, 그래픽스 데이터 처리 장치(100)는 복수의 객체들 중에서, 선택된 객체에 대해 우선적으로 컬링을 수행할 수 있다.
그래픽스 데이터 처리 장치(100)는 그래픽스 데이터에 포함된 객체들 중에서, 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치하는 객체들에 우선적으로 컬링을 수행함으로써, 그래픽스 데이터 내에서 제거되어야 하는 객체들에 대해 불필요한 연산을 수행하지 않을 수 있다.
도 9는 일 실시예에 따른 그래픽스 데이터 처리 장치(100)의 블록도이다.
도 9에 도시된 바와 같이, 일 실시예에 따른 그래픽스 데이터 처리 장치(100)는 영역 결정부(110), 위치 정보 획득부(120), 객체 위치 결정부(130) 및 객체 처리부(140)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 그래픽스 데이터 처리 장치(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 그래픽스 데이터 처리 장치(100)는 구현될 수 있다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
영역 결정부(110)는 그래픽스 데이터에 포함되는 복수의 객체들 중에서, 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역과 가상 카메라의 위치를 기준으로 기 설정된 거리 범위에 가드 밴드 영역을 결정한다.
구체적으로, 영역 결정부(110)는, 가상 카메라의 위치를 기초로, 시각화 영역에서, 시선 방향에 위치한 근접한 평면 상의 지점인 제 1 지점으로부터 제 1 지점과 카메라의 사이에 위치한지점인 제 2 지점까지의 영역을 제 1 가드 밴드 영역으로 결정할 수 있다. 또한, 영역 결정부(110)는 시각화 영역에 위치한 제 1 평면 및 제 2 평면 중에서, 시선 방향으로 더 먼 거리에 위치한 제 2 평면 상의 지점인 제 3 지점으로부터 제 3 지점에서 시선 방향으로 더 먼 거리에 위치한 지점인 제 4 지점까지의 영역을 제 2 가드 밴드 영역으로 결정할 수 있다.위치 정보 획득부(120)는 그래픽스 데이터에 포함된 복수의 객체들 각각의 위치 정보를 획득한다.
객체 위치 결정부(130)는 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정한다. 객체 위치 결정부(130)는 적어도 하나의 객체에 포함되는 정점들의 공간 좌표를 이용하여, 객체에 포함되는 정점들이 위치하는 영역을 결정할 수 있다.
일 실시예에 따른 객체 위치 결정부(130)는 객체가 시각화 영역(210), 가드 밴드 영역(220) 및 가드 밴드 영역의 외부 영역 중 어느 하나의 영역에 존재하는지 여부를 결정할 수 있다. 객체 위치 결정부(130)는 적어도 하나의 객체의 일부가 가드 밴드 영역에 위치하고, 적어도 하나의 객체의 다른 일부가 시각화 영역에 위치하는 경우, 적어도 하나의 객체의 일부에 클리핑을 수행하는 동작 및 이후의 래스터라이징(rasterizing)에서 적어도 하나의 객체를 검출하기 위한 식별 정보를 저장하는 동작 중 적어도 하나를 선택할 수 있다.
객체 위치 결정부(130)는 가드 밴드 영역에 적어도 하나의 객체가 위치하는 경우, 이후의 래스터라이징(rasterizing) 과정에서 적어도 하나의 객체를 검출하여, 래스터라이징을 수행하기 위해, 적어도 하나의 식별 정보를 저장할 수 있다.
한편, 객체 위치 결정부(130)는 객체를 구성하는 복수의 정점들 중에서, 시각화 영역(210)에 포함되는 제 1 정점 및 가드 밴드 영역(220)을 벗어나는 제 2 정점 사이에 위치한 어느 하나의 정점을 선택하여, 선택된 정점을 객체를 구성하는 정점으로 결정할 수 있다. 객체 위치 결정부(130)는 객체 처리부(140)에서 가드 밴드 영역을 벗어나는 제 2 정점에 클리핑을 수행할 수 있도록 객체 처리부(140)를 제어할 수 있다.
객체 위치 결정부(130)는 획득한 복수의 객체들의 위치 정보에 기초하여, 기 설정된 임계점으로부터 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체를 선택할 수 있다. 여기에서, 임계점은 가상 카메라의 위치를 기준으로 시선 방향에 위치하고, 임의의 작은 양수값인 x 좌표값 또는 y 좌표값일 수 있다.
객체 위치 결정부(130)는 객체 처리부(140)에서 선택된 객체에 관한 클리핑을 우선적으로 수행할 수 있도록 객체 처리부(140)를 제어할 수 있다.
객체 처리부(140)는 결정된 영역에 따라 적어도 하나의 객체의 일부를 제거하는 동작인 클리핑(clipping) 또는 전부를 제거하는 동작인 컬링을 수행한다. 객체 처리부(140)는 시각화 영역(210) 및 가드 밴드 영역(220) 이외의 영역에 위치한 객체의 데이터에 클리핑을 수행한다.
객체 처리부(140)는, 복수의 정점들 중 일부가 시각화 영역(210)에 포함되고, 다른 일부가 가드 밴드 영역(220)을 벗어나는 객체의, 가드 밴드 영역(220)을 벗어나는 정점에 클리핑을 수행한다.
일 실시예에 따른 객체 처리부(140)는 객체 위치 결정부(130)에 의해 선택된 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체에 대해 클리핑 또는 컬링을 우선적으로 수행할 수 있다.
소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 컴퓨터가 판독 가능한 코드로 저장되고 실행될 수 있다.  매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
개시된 실시예들에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 개시된 실시예들에서 전체적으로 병합하여 나타낸 것과 동일하게 병합될 수 있다.
개시된 실시예들의 이해를 위하여, 도면에 참조 부호를 기재하였으며, 개시된 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 개시된 기술적 사상이 한정되는 것은 아니며, 개시된 사상은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
개시된 기술적 사상은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다.  이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다.  예를 들어, 개시된 기술적 사상은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.  개시된 기술적 사상에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 개시된 기술적 사상은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.  기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.  또한, 개시된 기술적 사상은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.  “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.  상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
개시된 기술적 사상에서 설명하는 특정 실행들은 일 실시예들로서, 개시된 기술적 사상의 범위를 한정하는 것은 아니다.  명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.  또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.  또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 개시된 기술적 사상의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
100: 그래픽스 데이터 처리 장치
110: 영역 결정부
120: 위치 정보 획득부
130: 객체 위치 결정부
140: 객체 처리부

Claims (19)

  1. 그래픽스 데이터에 포함되는 복수의 객체들 중에서 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역을 결정하는 단계;
    상기 복수의 객체들 각각의 위치 정보를 획득하는 단계;
    상기 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정하는 단계; 및
    상기 결정된 영역에 따라 상기 적어도 하나의 객체의 데이터의 일부를 제거하는 동작인 클리핑(clipping) 및 전부를 제거하는 동작인 컬링(culling) 중 적어도 하나를 수행하는 단계를 포함하고,
    상기 가드 밴드 영역을 결정하는 단계는,
    상기 시각화 영역의 경계에 위치한 제 1 평면 및 제 2 평면 중에서, 상기 시선 방향으로 더 먼 거리에 위치한 상기 제 2 평면 상의 제 3 지점으로부터 상기 시선 방향으로 상기 제 3 지점 보다 더 먼 거리에 위치한 제 4 지점까지의 영역을 제 2 가드 밴드 영역으로 결정하는 그래픽스 데이터를 처리하는 방법.
  2. 제 1항에 있어서, 상기 가드 밴드 영역을 결정하는 단계는,
    상기 가상 카메라의 위치를 기준으로 상기 시선 방향에 위치한 제 1 평면 상의 지점인 제 1 지점으로부터 상기 가상 카메라와 상기 제 1 지점 사이에 위치한 제 2 지점까지의 영역을 제 1 가드 밴드 영역으로 결정하는 그래픽스 데이터를 처리하는 방법.
  3. 삭제
  4. 제 1항에 있어서, 상기 수행하는 단계는,
    상기 시각화 영역 및 상기 가드 밴드 영역 이외의 영역에 위치한 객체의 데이터에 컬링을 수행하는 단계를 포함하는 그래픽스 데이터를 처리하는 방법.
  5. 제 1항에 있어서,
    상기 적어도 하나의 객체의 일부가 상기 가드 밴드 영역에 위치하고, 상기 적어도 하나의 객체의 다른 일부가 상기 시각화 영역에 위치하는 경우, 상기 적어도 하나의 객체의 깊이 정보를 저장하는 단계를 더 포함하고,
    상기 저장된 깊이 정보에 기초하여, 상기 적어도 하나의 객체에 대한 래스터라이징(rasterizing)이 수행되는 그래픽스 데이터를 처리하는 방법.
  6. 제 1항에 있어서, 상기 적어도 하나의 객체가 위치하는 영역을 결정하는 단계는.
    상기 적어도 하나의 객체에 포함되는 정점들의 위치를 결정하는 단계를 포함하고,
    상기 클리핑을 수행하는 단계는,
    상기 객체의 복수의 정점들 중 일부가 상기 시각화 영역에 포함되고, 다른 일부가 상기 가드 밴드 영역을 벗어나는 경우, 상기 시각화 영역에 포함되는 제 1 정점 및 상기 가드 밴드 영역을 벗어나는 제 2 정점 사이에 위치한 어느 하나의 정점을 선택하는 단계; 및
    상기 선택된 정점이 가드 밴드 영역에 포함되는 경우, 상기 선택된 정점으로부터 상기 가드 밴드 영역을 벗어나는 제 2 정점까지의 정점들에 클리핑을 수행하는 단계를 포함하는 그래픽스 데이터를 처리하는 방법.
  7. 제 6항에 있어서,
    상기 선택된 정점이 가드 밴드 영역에 포함되지 않는 경우, 상기 선택된 정점으로부터 기 설정된 거리 범위 값을 빼거나 더함으로써 다른 정점을 선택하는 단계를 더 포함하는 그래픽스 데이터를 처리하는 방법.
  8. 제 2항에 있어서,
    상기 획득한 복수의 객체들의 위치 정보에 기초하여, 기 설정된 제 2 지점으로부터 상기 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체를 선택하는 단계를 더 포함하고,
    상기 수행하는 단계는,
    상기 선택된 객체에 관한 컬링을 우선적으로 수행하는 단계를 포함하는 그래픽스 데이터를 처리하는 방법.
  9. 제 2항에 있어서, 상기 제 2 지점은,
    상기 가상 카메라의 위치를 나타내는 원점으로부터 시선 방향에 위치한 양의 좌표값을 갖는 지점이고,
    상기 양의 좌표값에 따라, 상기 표시 가능한 객체들의 위치를 나타내는 좌표값이 정규화되는 그래픽스 데이터를 처리하는 방법.
  10. 그래픽스 데이터에 포함되는 복수의 객체들 중에서 화면에 표시 가능한 객체들의 영역을 나타내는 시각화 영역의 외부에, 가상 카메라의 위치로부터 시선 방향으로 기 설정된 거리 범위를 갖는 가드 밴드 영역을 결정하는 영역 결정부;
    상기 복수의 객체들 각각의 위치 정보를 획득하는 위치 정보 획득부;
    상기 획득한 위치 정보를 이용하여, 적어도 하나의 객체가 위치하는 영역을 결정하는 객체 위치 결정부; 및
    상기 결정된 영역에 따라 상기 적어도 하나의 객체의 데이터의 일부를 제거하는 동작인 클리핑(clipping) 및 전부를 제거하는 동작인 컬링 중 적어도 하나를 수행하는 객체 처리부를 포함하고,
    상기 영역 결정부는,
    상기 시각화 영역의 경계에 위치한 제 1 평면 및 제 2 평면 중에서, 상기 시선 방향으로 더 먼 거리에 위치한 상기 제 2 평면 상의 제 3 지점으로부터 상기 시선 방향으로 상기 제 3 지점 보다 더 먼 거리에 위치한 제 4 지점까지의 영역을 제 2 가드 밴드 영역으로 결정하는 그래픽스 데이터를 처리하는 장치.
  11. 제 10항에 있어서, 상기 영역 결정부는,
    상기 가상 카메라의 위치를 기준으로 상기 시선 방향에 위치한 제 1 평면 상의 지점인 제 1 지점으로부터 상기 가상 카메라와 상기 제 1 지점 사이에 위치한 제 2 지점까지의 영역을 제 1 가드 밴드 영역으로 결정하는 그래픽스 데이터를 처리하는 장치.
  12. 삭제
  13. 제 10항에 있어서, 상기 객체 처리부는,
    상기 시각화 영역 및 상기 가드 밴드 영역 이외의 영역에 위치한 객체의 데이터에 컬링을 수행하는 그래픽스 데이터를 처리하는 장치.
  14. 제 10항에 있어서, 상기 객체 위치 결정부는,
    상기 적어도 하나의 객체의 일부가 상기 가드 밴드 영역에 위치하고, 상기 적어도 하나의 객체의 다른 일부가 상기 시각화 영역에 위치하는 경우, 상기 적어도 하나의 객체의 깊이 정보를 저장하는 단계를 더 포함하고,
    상기 저장된 깊이 정보에 기초하여, 상기 적어도 하나의 객체에 대한 래스터라이징(rasterizing)이 수행되는 그래픽스 데이터를 처리하는 장치.
  15. 제 10항에 있어서, 상기 객체 위치 결정부는,
    상기 적어도 하나의 객체에 포함되는 정점들의 위치를 결정하고,
    상기 객체 처리부는,
    상기 객체의 복수의 정점들 중 일부가 상기 시각화 영역에 포함되고, 다른 일부가 상기 가드 밴드 영역을 벗어나는 경우, 상기 시각화 영역에 포함되는 제 1 정점 및 상기 가드 밴드 영역을 벗어나는 제 2 정점 사이에 위치한 어느 하나의 정점을 선택하고, 상기 선택된 정점이 가드 밴드 영역에 포함되는 경우, 상기 선택된 정점으로부터 상기 가드 밴드 영역을 벗어나는 제 2 정점까지의 정점들에 클리핑을 수행하는 그래픽스 데이터를 처리하는 장치.
  16. 제 15항에 있어서, 상기 객체 처리부는,
    상기 선택된 정점이 가드 밴드 영역에 포함되지 않는 경우, 상기 선택된 정점으로부터 기 설정된 거리 범위 값을 빼거나 더함으로써 다른 정점을 선택하는 그래픽스 데이터를 처리하는 장치.
  17. 제 10항에 있어서, 상기 객체 위치 결정부는,
    상기 획득한 복수의 객체들의 위치 정보에 기초하여, 기 설정된 제 2 지점으로부터 상기 가상 카메라의 위치를 기준으로 시선 방향의 반대 방향의 영역에 위치한 객체를 선택하고,
    상기 객체 처리부는,
    상기 선택된 객체에 관한 컬링을 우선적으로 수행하는 그래픽스 데이터를 처리하는 장치.
  18. 제 17항에 있어서, 상기 제 2 지점은,
    상기 가상 카메라의 위치를 나타내는 원점으로부터 시선 방향에 위치한 양의 좌표값을 갖는 지점이고, 상기 양의 좌표값에 따라, 상기 표시 가능한 객체들의 위치를 나타내는 좌표값이 정규화되는 그래픽스 데이터를 처리하는 장치.
  19. 제 1항, 제 2항, 제 4항 내지 제 9항 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020150013541A 2015-01-28 2015-01-28 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체 KR102304932B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150013541A KR102304932B1 (ko) 2015-01-28 2015-01-28 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체
US14/844,701 US10026216B2 (en) 2015-01-28 2015-09-03 Graphics data processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150013541A KR102304932B1 (ko) 2015-01-28 2015-01-28 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체

Publications (2)

Publication Number Publication Date
KR20160092756A KR20160092756A (ko) 2016-08-05
KR102304932B1 true KR102304932B1 (ko) 2021-09-24

Family

ID=56433790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150013541A KR102304932B1 (ko) 2015-01-28 2015-01-28 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체

Country Status (2)

Country Link
US (1) US10026216B2 (ko)
KR (1) KR102304932B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2590422B (en) 2019-12-17 2024-03-06 Sony Interactive Entertainment Inc Content generation system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008126392A1 (ja) * 2007-04-11 2008-10-23 Panasonic Corporation 画像生成装置及び画像生成方法
JP2009031947A (ja) * 2007-07-25 2009-02-12 Square Enix Holdings Co Ltd 画像生成装置及び方法、並びにプログラム及び記録媒体

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3816726A (en) 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
US6359630B1 (en) 1999-06-14 2002-03-19 Sun Microsystems, Inc. Graphics system using clip bits to decide acceptance, rejection, clipping
US7551183B2 (en) 2003-06-30 2009-06-23 Intel Corporation Clipping and scissoring technique
US7466322B1 (en) 2005-08-02 2008-12-16 Nvidia Corporation Clipping graphics primitives to the w=0 plane
US7616218B1 (en) 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US7420572B1 (en) 2005-12-19 2008-09-02 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with accelerated context switching
US7589746B2 (en) 2006-03-23 2009-09-15 Intel Corporation Optimized frustum clipping via cached clip vertices
US7705845B1 (en) 2006-06-01 2010-04-27 Nvidia Corporation Clipping graphics primitives with deferred derivation of vertex attributes
US7542046B1 (en) 2006-06-26 2009-06-02 Nvidia Corporation Programmable clipping engine for clipping graphics primitives
US8212840B2 (en) 2006-10-23 2012-07-03 Qualcomm Incorporated 3-D clipping in a graphics processing unit
US8115783B2 (en) 2008-01-31 2012-02-14 Arm Norway As Methods of and apparatus for processing computer graphics
US8068120B2 (en) 2008-03-07 2011-11-29 Via Technologies, Inc. Guard band clipping systems and methods
US8704835B1 (en) 2009-10-08 2014-04-22 Nvidia Corporation Distributed clip, cull, viewport transform and perspective correction
US9286714B2 (en) * 2013-06-20 2016-03-15 Arm Limited Apparatus and method for processing graphics primitives

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008126392A1 (ja) * 2007-04-11 2008-10-23 Panasonic Corporation 画像生成装置及び画像生成方法
JP2009031947A (ja) * 2007-07-25 2009-02-12 Square Enix Holdings Co Ltd 画像生成装置及び方法、並びにプログラム及び記録媒体

Also Published As

Publication number Publication date
US10026216B2 (en) 2018-07-17
KR20160092756A (ko) 2016-08-05
US20160217603A1 (en) 2016-07-28

Similar Documents

Publication Publication Date Title
US11263816B2 (en) Method and device for a placement of a virtual object of an augmented or mixed reality application in a real-world 3D environment
US10032308B2 (en) Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
US11527040B2 (en) Tessellating patches of surface data in tile based computer graphics rendering
US9153068B2 (en) Clipless time and lens bounds for improved sample test efficiency in image rendering
US8115783B2 (en) Methods of and apparatus for processing computer graphics
KR102637736B1 (ko) 그래픽스 처리 방법 및 시스템
US8743114B2 (en) Methods and systems to determine conservative view cell occlusion
CN104933749B (zh) 图形图元的裁剪
KR102101834B1 (ko) 영상 처리 장치 및 방법
TWI480834B (zh) 用於隨機柵格化的方法和裝置以及非暫態電腦可讀媒體
TW201312499A (zh) 景深網格化
KR20180071767A (ko) 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치
JP2019536174A (ja) 光強度画像を生成するための装置及び方法
CN111260750B (zh) openFL绘制矢量图形的处理方法、装置及电子设备
US9286714B2 (en) Apparatus and method for processing graphics primitives
US8902217B2 (en) Image generating method
KR102304932B1 (ko) 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체
EP4107601A1 (en) Planar deviation based image reprojection
KR102558739B1 (ko) 3d 렌더링 방법 및 장치
CN109427084B (zh) 一种地图显示方法、装置、终端及存储介质
KR102479395B1 (ko) 선호된 프리미티브 배치 비닝 및 분류를 갖는 하이브리드 렌더
US20150103072A1 (en) Method, apparatus, and recording medium for rendering object
RU2016146417A (ru) Технологии уменьшения пиксельного шейдинга
US10297067B2 (en) Apparatus and method of rendering frame by adjusting processing sequence of draw commands
CN110874858B (zh) 用于渲染反射的系统和方法

Legal Events

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