KR102225281B1 - 감소된 픽셀 쉐이딩을 위한 기술 - Google Patents

감소된 픽셀 쉐이딩을 위한 기술 Download PDF

Info

Publication number
KR102225281B1
KR102225281B1 KR1020167033429A KR20167033429A KR102225281B1 KR 102225281 B1 KR102225281 B1 KR 102225281B1 KR 1020167033429 A KR1020167033429 A KR 1020167033429A KR 20167033429 A KR20167033429 A KR 20167033429A KR 102225281 B1 KR102225281 B1 KR 102225281B1
Authority
KR
South Korea
Prior art keywords
polygon
pixel
screen image
area
screen
Prior art date
Application number
KR1020167033429A
Other languages
English (en)
Other versions
KR20170005033A (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 인텔 코포레이션
Publication of KR20170005033A publication Critical patent/KR20170005033A/ko
Application granted granted Critical
Publication of KR102225281B1 publication Critical patent/KR102225281B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • 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/021Flattening

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

다양한 실시예는 일반적으로 3D 모델로부터 2D 스크린 이미지를 렌더링함에 있어서 쉐이딩 프리미티브의 프로세싱 수요를 감소시키기 위한 기술에 관한 것이다. 디바이스는, 제 1 영역과 가시 프리미티브의 교차를 나타내는 다각형을 형성하기 위해 쉐이딩 픽셀에 의해 커버되는 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 가시 프리미티브를 클리핑하는 클리핑 컴포넌트; 다각형의 각 정점에 대하여 가시 프리미티브의 정점들의 적어도 하나의 속성을 보간하는 제 1 보간 컴포넌트; 및 제 1 영역보다 작고 제 1 영역과 적어도 일부 일치하고, 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점에 대해 다각형의 정점들의 컬러값들을 보간하는 제 2 보간 컴포넌트를 포함한다. 다른 실시예가 설명 및 청구된다.

Description

감소된 픽셀 쉐이딩을 위한 기술{TECHNIQUES FOR REDUCED PIXEL SHADING}
비교적 특수화된 컴퓨터 기반 기능을 수행하는 부분으로서만 한번 행해지는 3차원(3D) 모델로부터의 2차원(2D) 컴퓨터 생성 이미지(CGI)의 렌더링은 컴퓨팅 디바이스를 운영하는 더욱 더 많은 양태에서 점점 더 많이 이용되고 있다. 구체적으로, 비디오 게임이 이러한 이미지의 가장 일반적인 사용을 계속하여 제시되지만, 그 사용은 웹사이트 및 디바이스의 계속 증가하는 어레이의 그래픽 사용자 인터페이스(GUI)의 일부로서 유지되기 시작했다.
그래픽 렌더링 하드웨어 설계의 진보 및 렌더링 알고리즘의 효율의 증가가 3D 모델에 기반한 CGI의 이러한 증가하는 사용의 많은 부분을 가능하게 했지만, 이러한 진보 및 효율성 증가는 휴대용 디바이스에 통상적인 프로세싱 및 전력 리소스에서의 제한을 완전히 처리하기에는 충분하지 않았다. 구체적으로, 이미지 내의 객체에 컬러 및 질감을 제공하기 위해 그래픽 프리미티브(primitive)를 쉐이딩하는 작업은 계속하여 상당한 프로세싱 리소스를 요구하고, 이는 차례로 통상적으로 휴대용 디바이스에서 발견되는 배터리 및/또는 다른 전력원에 의해 제공되는 제한된 전력 리소스를 상당히 요구한다. 또한 휴대용 디바이스로 통합된 디스플레이의 픽셀 해상도가 계속 증가함에 따라, 프로세싱 및 전력 요건에 이루어진 감소가 이러한 해상도 증가에 의해 야기된 쉐이딩의 양에 있어서의 지수적인 증가에 의해 압도되었다.
이전의 노력은 수행되는 쉐이딩의 양을 직접적으로 감소시키도록 시도함으로써 전력 리소스에 대한 이러한 증가하는 요구를 적어도 제한하도록 이루어졌다. 하지만, 이러한 접근법은 보간 계산의 수행 중 외삽의 증가하는 발생과 같이 부정확하고 올바르지 않은 정보가 쉐이딩으로의 입력으로서 도입되는 예를 증가시켰다. 이러한 부정확하거나 올바르지 않은 정보는 “반짝이는(twinkling)” 픽셀 컬러, 복수의 프리미티브로 이루어진 객체의 곡면에 걸친 컬러에서의 부드러움의 결여 및/또는 잘못 위치된 쉐도우 경계와 같은 시각적 결함의 도입을 종종 초래한다.
도 1은 그래픽 렌더링 시스템의 일 실시예를 나타낸다.
도 2는 그래픽 렌더링 시스템의 다른 실시예를 나타낸다.
도 3은 예시적인 실시예의 일부를 나타낸다.
도 4는 3D 모델의 래스터화의 일 실시예를 나타낸다.
도 5는 다각형을 정의하는 클리핑의 예시적인 실시예를 나타낸다.
도 6은 다각형의 정점의 속성을 도출하는 보간의 일 실시예를 나타낸다.
도 7은 다각형의 픽셀 쉐이딩 정점의 예시적인 실시예를 나타낸다.
도 8은 스크린 픽셀 컬러링을 위한 보간의 일 실시예를 나타낸다.
도 9(a) 및 9(b)는 함께 하나 이상의 다각형을 정의하는 클리핑의 일 실시예를 나타낸다.
도 10 및 11 각각은 실시예에 따른 논리 흐름도를 나타낸다.
도 12는 실시예에 따른 프로세싱 아키텍처를 나타낸다.
도 13은 그래픽 프로세싱 시스템의 또 다른 실시예를 나타낸다.
도 14는 디바이스의 실시예를 나타낸다.
다양한 실시예들은 일반적으로 시각적 결함을 또한 최소화하면서, 스크린 이미지의 스크린 픽셀보다 더 거친 쉐이딩 픽셀로 쉐이딩을 통해 3D 모델로부터 2D 스크린 이미지를 렌더링하는 데 있어서 가시 프리미티브를 쉐이딩하는 프로세싱 요구를 감소시키기 위한 기술에 관한 것이다. 래스터화 후에, 가시 프리미티브를 클리핑하는 것은 개별 쉐이딩 픽셀에 의해 커버되는 영역과 가시 프리미티브의 교차를 나타내는 다각형을 정의하는 쉐이딩 픽셀의 각각 내에서 수행된다. 가시 프리미티브의 정점의 속성은 다각형의 정점에 대해 보간되고, 그 후 픽셀 쉐이딩은 다각형의 정점에서 컬러를 도출하기 위해 다각형의 정점의 속성을 사용하여 수행된다. 그 후, 다각형의 정점의 컬러는 스크린 픽셀의 컬러를 도출하기 위해 보간된다.
일부 실시예에서, 래스터화는 스크린 이미지 픽셀의 위치에서의 스크린 이미지의 관점에서 보이는 3D 모델의 프리미티브의 부분을 식별하기 위해 스크린 이미지의 각 스크린 이미지 픽셀에 할당된 단일 샘플(예를 들어, 각 스크린 이미지 픽셀의 중앙의 단일 샘플)만을 이용할 수 있다. 다른 실시예에서, 래스터화는 가시적인 3D 모델의 프리미티브의 부분을 식별하기 위해 스크린 이미지의 각 스크린 이미지 픽셀에 할당된 복수의 스크린 이미지 샘플이 존재하는 슈퍼샘플링, 통계적 샘플링, 멀티샘플링 등을 포함하는 다양한 유형의 샘플링 중 임의의 것을 이용할 수 있다. 래스터화 전에, 정점 쉐이딩이 각 프리미티브의 각 정점에 대한 속성을 도출하기 위해 수행되었을 수 있다. 본 기술 분야의 통상의 기술자에게 잘 알려져 있는 바와 같이, 3D 모델의 객체가 생성되는 방식에 따라, 프리미티브는 모두 삼각형일 수 있거나, 상이한 유형의 다각형의 혼합일 수 있다. 그러나, 각 프리미티브의 형상에 관계없이, 각 프리미티브의 모든 부분은 단일 평면 내에 존재해야 한다. 그 상대 위치를 포함하는 프리미티브의 정점의 속성은 프리미티브와 그것이 존재하는 평면을 정의할 수 있다.
스크린 이미지의 스크린 픽셀의 격자와 일치하는 것은 쉐이딩 픽셀이 스크린 픽셀보다 더 거친 쉐이딩 픽셀의 격자일 수 있어, 각 쉐이딩 픽셀은 각 스크린 픽셀보다 넓은 영역을 커버한다. 일부 실시예에서, 각 쉐이딩 픽셀이 스크린 픽셀의 정수배에 대응하도록(예를 들어, 각 쉐이딩 픽셀은 4개의 스크린 픽셀에 대응할 수 있음), 그 경계가 스크린 픽셀의 경계에 대응하도록 정의될 수 있다. 래스터화 후에, 클리핑이 쉐이딩 픽셀 내에서 가시화되는 프리미티브의 부분에 의해 커버되는 각 쉐이딩 픽셀 내의 영역과 각 쉐이딩 픽셀의 영역의 교차를 나타내는 각 쉐이딩 픽셀 내의 하나 이상의 다각형을 도출하도록 이용될 수 있다. 사실상, 각 가시 프리미티브는 쉐이딩 픽셀 내의 이러한 교차를 각각 나타내는 하나 이상의 다각형으로 분할된다.
클리핑 후에, 각 가시 프리미티브의 정점의 속성이, 프리미티브가 그 다각형의 정점의 속성을 도출하기 위해 분할된 각 다각형의 정점에 보간된다. 그 후, 픽셀 쉐이딩은 각 다각형의 정점에 대한 컬러값을 도출하기 위해 각 다각형의 각 정점에서 수행된다.
다각형의 정점에서의 픽셀 쉐이딩 후에, 다각형의 정점에서의 컬러값은 스크린 픽셀에 대한 컬러값을 도출하기 위하여 보간된다. 일부 실시예에서, 어느 정점이 어느 스크린 픽셀로 컬러값을 보간하는 데 이용되는지는 다각형의 경계에 대한 각 스크린 픽셀의 중앙의 위치에 기초할 수 있다. 달리 말하면, 특정 스크린 픽셀의 중앙이 특정 다각형의 경계 내에 속하는 곳에서, 그 특정 다각형의 정점에서의 컬러값이 그 특정 스크린 픽셀의 컬러값을 도출하기 위해 보간된다. 그러나, 다른 실시예에서, 각 다각형의 정점에서의 컬러값은 다각형 내에 속하는 스크린 이미지의 각 샘플의 컬러값을 도출하기 위해 보간되고, 각 스크린 픽셀 내에 속하는 샘플의 컬러값은 그 스크린 픽셀의 컬러를 도출하기 위해 평균화된다. 다각형의 정점으로부터의 컬러값의 보간이 스크린 픽셀의 중앙에 대한 것인지 또는 평균화에 선행하는 스크린 이미지의 샘플에 대한 것인지에 관계없이, 다각형의 정점에서의 다른 속성이 또한 보간될 수 있다.
여기에서 사용되는 표기 및 명명법을 일반적으로 참조하면, 후술하는 상세한 설명의 일부는 컴퓨터 또는 컴퓨터 네트워크상에서 실행되는 프로그램 절차의 관점에서 제시될 수 있다. 이러한 절차적 설명 및 표현은 가장 효과적으로 본 기술 분야의 다른 기술자에게 그 작업의 실체를 전달하기 위해 본 기술 분야의 통상의 기술자에 의해 사용된다. 여기에서 절차는 일반적으로 원하는 결과에 이르는 동작들의 일관성있는 시퀀스인 것으로 생각된다. 이러한 동작은 물리적 양의 물리적 조작을 필요로 하는 것이다. 필수적이지는 않지만 통상적으로, 이들 양은 저장, 전달, 결합, 비교 및 다르게 조작될 수 있는 전기, 자기 또는 광학 신호의 형태를 취한다. 때때로, 이러한 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 지칭하는 것이 주로 통상의 용법의 이유로 인해 편리하다는 것이 입증된다. 하지만, 이들 및 유사 용어 모두는 적절한 물리량과 연관될 수 있으며 단지 이러한 양에 적용되는 편리한 라벨이라는 것에 유의해야 한다.
또한, 이러한 조작은 종종 인간 운영자에 의해 수행되는 정신적 동작과 통상적으로 연관되는, 가산 또는 비교와 같은 용어로 칭해진다. 그러나, 인간 운영자의 이러한 기능은 하나 이상의 실시예의 일부를 형성하는 여기에 설명되는 동작 중 임의의 것에서 대부분의 경우에 필요하거나 바람직하지 않다. 오히려, 이러한 동작은 머신 동작이다. 다양한 실시예의 동작을 수행하는 데 유용한 머신은 여기에서의 교시에 따라 기입된 그 내부에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성되는 범용 디지털 컴퓨터를 포함하고/하거나 필요한 목적을 위해 특수하게 구축된 장치를 포함한다. 다양한 실시예는 또한 이러한 동작들을 수행하기 위한 장치 또는 시스템에 관한 것이다. 이러한 장치는 필요한 목적을 위해 특수하게 구축될 수 있거나, 범용 컴퓨터를 포함할 수 있다. 이러한 다양한 머신에 필요한 구조가 주어진 상세한 설명으로부터 나타날 것이다.
전체에서 동일한 참조 부호가 동일한 컴포넌트를 지칭하는 데 사용되는 도면을 이하 참조한다. 이하의 설명에서, 설명을 위해, 다수의 특정 상세 사항이 그 완전한 이해를 제공하기 위해 개진된다. 하지만, 신규한 실시예가 이러한 특정 상세 사항 없이도 실시될 수 있다는 것은 명백할 수 있다. 다른 예에서, 잘 알려진 구조 및 디바이스는 그 설명을 용이하게 하기 위해 블록도 형태로 나타내어진다. 그 의도는 청구항의 범위 내의 모든 변형, 등가물 및 대안을 커버하는 것이다.
도 1은 하나 이상의 소스 디바이스(300), 컴퓨팅 디바이스(500) 및 뷰잉(viewing) 디바이스(700)를 통합하는 그래픽 렌더링 시스템(1000)의 일 실시예의 블록도를 나타낸다. 컴퓨팅 디바이스(500)는 스크린 이미지(880)의 2D 평면 상에 투영되는 3차원(3D) 모델(280)의 2차원(2D) 스크린 이미지(880)를 생성한다. 컴퓨팅 디바이스(500)는 소스 디바이스(300)로부터 정의된 3D 공간 내의 하나 이상의 객체의 3D 모델(280)을 나타내는 3D 모델 데이터(330)를 수신할 수 있다. 3D 모델 데이터(330)는 직접 모델(280) 및/또는 그 프리미티브의 속성의 하나 이상의 객체를 구성하는 프리미티브를 특정할 수도 있거나, 그 프리미티브 및/또는 그 속성의 도출을 가능하게 하기에 충분한 정보를 포함할 수 있다.
스크린 이미지(880)의 생성 후에, 컴퓨팅 디바이스(500)는 디스플레이(580) 상에 스크린 이미지(880)를 표시할 수 있고/있거나 그 디스플레이(780) 상에 표시되는 뷰잉 디바이스(700)에 스크린 이미지(880)를 나타내는 스크린 이미지 데이터(730)를 송신할 수 있다. 스크린 이미지 데이터(730)는, 스크린 이미지(880)의 각 픽셀의 컬러가 다양한 포맷 중 임의의 것으로 인코딩될 수 있는 스크린 이미지(880)의 비트맵을 포함할 수 있다. 일부 실시예에서, 스크린 이미지(880)의 픽셀 해상도는 디스플레이(580) 및/또는 디스플레이(780)의 픽셀의 해상도와 매칭되도록 선택될 수 있다. 실제로 일부 실시예에서, 뷰잉 디바이스(700)는 스크린 이미지(880)의 픽셀 해상도가 디스플레이(780)의 픽셀 해상도에 매칭되도록 설정될 수 있게 하도록 컴퓨팅 디바이스(500)에 디스플레이(780)의 픽셀 해상도의 표시를 제공할 수 있다.
이러한 컴퓨팅 디바이스의 각각은, 데스크톱 컴퓨터 시스템, 데이터 입력 단말, 랩톱 컴퓨터, 넷북 컴퓨터, 태블릿 컴퓨터, 핸드헬드 퍼스널 데이터 기기, 스마트폰, 스마트 안경, 스마트 손목시계, 디지털 카메라, 의류에 통합되는 신체 착용 컴퓨팅 디바이스, 차량(예를 들면, 자동차, 자전거, 휠체어 등)에 통합되는 컴퓨팅 디바이스, 서버, 서버의 클러스터, 서버 팜 등을 포함하지만 이에 제한되지는 않는 다양한 유형의 컴퓨팅 디바이스 중 임의의 것일 수 있다.
나타낸 바와 같이, 이러한 컴퓨팅 디바이스(300, 500 및 700)는 네트워크(999)를 통하여 3D 모델 및/또는 2D 스크린 이미지를 나타내는 데이터를 전달하는 신호를 교환한다. 그러나, 이러한 컴퓨팅 디바이스들 중 하나 이상은 네트워크(999)를 통해 서로 및/또는 또 다른 컴퓨팅 디바이스(미도시)와 3D 모델로부터 2D 이미지를 렌더링하는 것과 전적으로 관련이 없는 다른 데이터를 교환할 수 있다. 다양한 실시예에서, 네트워크는 아마도 단일 건물 또는 다른 상대적으로 제한된 영역, 아마도 상당한 거리로 확장되는 접속된 네트워크의 조합 내의 확장으로 제한된 단일 네트워크일 수 있고/있거나 인터넷을 포함할 수 있다. 따라서, 네트워크(999)는 전기적으로 및/또는 광학적으로 도전성 케이블링을 이용하는 유선 기술, 적외선, 무선 주파수 또는 다른 형태의 무선 송신을 이용하는 무선 기술을 포함하지만 이에 제한되지는 않는, 신호가 교환될 수 있는 다양한 통신 기술(또는 조합) 중 임의의 것에 기초할 수 있다.
다양한 실시예에서, 컴퓨팅 디바이스(500)는 하나 이상의 프로세서 컴포넌트(550), 저장소(560), 디스플레이(580), 컨트롤러(600)와 네트워크(999)에 컴퓨팅 디바이스(500)를 커플링하는 인터페이스(590)를 통합한다. 저장소(560)는 하나 이상의 제어 루틴(540), 3D 모델 데이터(330) 및 제어 데이터(335)를 저장한다. 컨트롤러(600)는 하나 이상의 프로세서 컴포넌트(650) 및 저장소(660)를 통합한다. 저장소(660)는 하나 이상의 제어 루틴(640), 가시 프리미티브 데이터(632), 다각형 데이터(633), 쉐이딩된 다각형 데이터(635) 속성이 있는 다각형 데이터(636), 샘플 컬러 데이터(637) 및 스크린 이미지 데이터(730)를 저장한다.
제어 루틴(540)은 다양한 제어 기능을 수행하는 논리를 구현하기 위해 컴퓨팅 디바이스(500)의 메인 프로세서 컴포넌트로서의 그 역할에서, 프로세서 컴포넌트(550) 상에서 동작하는 명령어의 시퀀스를 통합한다. 제어 루틴(540)을 실행함에 있어서, 프로세서 컴포넌트(550)는 네트워크(999)를 통해 소스 디바이스(300)로부터 3D 모델 데이터(330)를 수신할 수 있고, 저장소(560)의 3D 모델(280)의 적어도 일부를 나타내는 그 적어도 일부를 저장할 수 있다. 3D 모델 데이터(330)는 그 2D 이미지 생성 또는 송신을 포함하여 그에 대한 임의의 사용이 이루어지기 전에 상당한 시간량 동안 저장소(560)에 저장될 수 있다는 것에 유의해야 한다. 스크린 이미지(880)를 나타내는 스크린 이미지 데이터(730)의 생성 후에, 프로세서 컴포넌트(550)는 스크린 이미지(880)가 보일 수 있도록 디스플레이(780) 상에 표시될 수 있도록, 보일 수 있도록 디스플레이(580) 상에 이미지(880)를 시각적으로 표시할 수 있고/있거나 뷰잉 디바이스(700)로 스크린 이미지 데이터(730)를 송신할 수 있다.
일부 실시예에서, 프로세서 컴포넌트(550)는 3D 모델(280)로부터 스크린 이미지(880)를 생성하는 데 이용하기 위해 다양한 구성 파라미터의 표시를 수신할 수 있다. 예를 들어, 스크린 이미지(880)가 디스플레이(780) 상의 표시를 위해 뷰잉 디바이스(700)로 송신되는 실시예에서, 디스플레이(780)의 픽셀 해상도, 컬러 깊이, 프레임 속도 및/또는 다른 파라미터의 표시가 (예를 들어, 네트워크(999)를 통해) 뷰잉 디바이스(700)로부터 수신될 수 있다. 다른 예의 방식으로, 3D 모델(280)에 대한 스크린 이미지(880)의 평면 및/또는 경계의 위치 및/또는 방향의 표시가 뷰잉 디바이스(700)로부터 및/또는 네트워크(999)를 통해 또 다른 디바이스(미도시)로부터 수신될 수 있다. 프로세서 컴포넌트(550)는 스크린 이미지(880)를 생성하는 데 있어서 프로세서 컴포넌트(650)에 의한 사용을 위해 이러한 파라미터의 표시를 제어 데이터(335)의 일부로서 저장할 수 있다. 대안적으로 또는 추가적으로, 픽셀 해상도의 표시는 디스플레이(780)가 아니라 디스플레이(580)의 것일 수 있다.
제어 루틴(640)은 다양한 기능을 수행하는 논리를 구현하기 위해 컴퓨팅 디바이스(500)의 컨트롤러(600)의 컨트롤러 프로세서 컴포넌트로서의 그 역할에서 프로세서 컴포넌트(650) 상에서 동작하는 명령어의 시퀀스를 통합한다. 평가 루틴(640)을 실행하는 데 있어서, 프로세서 컴포넌트(650)는 3D 모델(280)을 나타내는 3D 모델 데이터(330)로부터의 스크린 이미지(880)를 나타내는 스크린 이미지 데이터(730)를 생성한다. 더욱 상세하게는, 프로세서 컴포넌트(650)는 스크린 이미지(880)의 평면상으로의 3D 모델(280)의 2D 투영으로서 스크린 이미지(880)를 렌더링한다. 도 3은 3D 모델(280)을 나타내는 3D 모델 데이터(330)로부터 스크린 이미지(880)를 나타내는 스크린 이미지 데이터(730)의 이러한 생성의 예시적인 실시예를 나타낸다. 나타낸 바와 같이, 제어 루틴(640)은 하나 이상의 래스터화 컴포넌트(642), 쉐이딩 클리핑 컴포넌트(643), 속성 보간 컴포넌트(645), 픽셀 쉐이딩 컴포넌트(646), 컬러 보간 컴포넌트(647) 및 평균화 컴포넌트(648)를 통합할 수 있다. 제어 루틴(640)을 실행함에 있어서, 프로세서 컴포넌트(650)는 제어 루틴(640)의 하나 이상의 컴포넌트(642, 643, 645, 646, 647 및 648)를 실행할 수 있다.
래스터화 컴포넌트(642)는 제어 데이터(335)로부터, 3D 모델(280)의 하나 이상의 객체에 대한 스크린 이미지(880)의 평면의 위치 및 방향 및/또는 평면 내의 스크린 이미지(880)의 경계의 표시를 검색할 수 있다. 래스터화 컴포넌트(642)는 그 후 이러한 프리미티브 중 어느 것이 스크린 이미지(880)에서 적어도 일부 보이는 가시 프리미티브인지를 결정하기 위해 스크린 이미지(880)의 각 픽셀에 대하여 복수의 샘플을 사용하여 3D 모델(280)의 하나 이상의 객체의 그래픽 프리미티브를 래스터화함에 있어 그 표시를 이용할 수 있다. 도 4는 이러한 래스터화의 예의 양태를 훨씬 더 상세하게 나타낸다. 나타낸 바와 같이, 3D 모델 데이터(330)는 크기, 형상, 위치 및/또는 방향과 같은 3D 모델(280)의 프리미티브(282)의 다양한 특성들의 표시를 포함하는 프리미티브 데이터(332)를 통합할 수 있다. 상술한 바와 같이, 각각의 프리미티브(282)는 그 각각이 단일 평면 내에서 연장하는 다양한 유형의 다각형 중 임의의 것일 수 있다. 그러나, 또한 상술한 바와 같이, 통상적인 3D 모델의 프리미티브의 대부분(전부는 아님)은 삼각형이다.
3D 모델(280)의 어느 프리미티브(282)가 또한 스크린 이미지(880)에서 적어도 일부 보이는 가시 프리미티브(882)인지를 결정하기 위해 래스터화를 수행함에 있어서, 래스터화 컴포넌트(642)는 3D 모델(280)을 향해 스크린 이미지(880)의 각 스크린 이미지 픽셀(885)에 대해 (이 중 하나만이 시각적 명료성을 위해 도시되는) 다수의 스크린 이미지 샘플(888)을 투영할 수 있다. 이렇게 스크린 이미지 샘플(888)을 투영함에 있어서, 다양한 샘플링 기술 중 임의의 것이, 스크린 이미지 픽셀(885) 당 스크린 이미지 샘플(888)의 양을 선택하고, 각 스크린 이미지 픽셀(885)에 의해 커버되는 영역 내의 스크린 이미지 샘플(888)의 위치를 선택함에 있어서 사용될 수 있다. 이러한 기술은 슈퍼샘플링, 멀티샘플링 및/또는 통계적 샘플링을 포함하지만, 이에 한정되는 것은 아니다. 3D 모델(280)을 향해 (스크린 이미지(880)의 평면으로부터 이에 수직하게 연장되는 라인과 같이) 각 스크린 이미지 샘플(888)이 투영되면, 각 스크린 이미지 샘플(888)에 의해 직면되는 3D 모델(280)의 제 1 프리미티브(282)는 스크린 이미지(880)에서 적어도 일부 보이는 가시 프리미티브(882)가 된다.
가시 프리미티브(882)가 래스터화에 의해 식별되는 것의 표시는 가시 프리미티브 데이터(632)의 일부로서 저장될 수 있다. 나타낸 바와 같이, 이렇게 저장되는 가시 프리미티브(882)에 관한 정보 중에서는, 가시 프리미티브(882)의 각각의 정점(883)의 각각과 연관된 다양한 속성의 표시가 있을 수 있다. 저장된 속성은, 하나 이상의 정점의 위치, 법선 벡터, 재료의 사양, 스크린 이미지(880)의 평면에 대한 깊이 등을 포함할 수 있지만 이에 한정되는 것은 아니다. 일부 실시예에서, 가시 프리미티브 데이터(632)는 “지오메트리(geometry) 버퍼”(G-버퍼)로 칭해질 수 있다.
도 3으로 돌아가서, 래스터화 컴포넌트(642)에 의해 수행되는 래스터화 후에, 쉐이딩 클리핑 컴포넌트(643)는 가시 프리미티브(882)의 각각을 쉐이딩 픽셀과 가시 프리미티브(882)의 교차를 각각 나타내는 하나 이상의 다각형으로 분할할 수 있어, 후속하는 픽셀 쉐이딩에서의 사용을 위한 정점을 도출한다. 도 5는 예시적인 가시 프리미티브(882)의 이러한 분할의 양태를 훨씬 더 상세하게 나타낸다. 더욱 구체적으로, 후속하는 픽셀 쉐이딩 중에 이용되는 쉐이딩 픽셀(685)의 더 거친 격자가 래스터화 중에 이용된 스크린 픽셀(885)의 격자 상으로 중첩된다. 나타낸 바와 같이, 쉐이딩 픽셀(685)의 각각은 스크린 픽셀(885)보다 더 큰 영역을 커버할 수 있다. 또한, 쉐이딩 픽셀(685)의 경계는 적어도 스크린 픽셀(885)의 경계의 서브셋과 정렬할 수 있어, 쉐이딩 픽셀(685) 중 하나에 의해 커버되는 영역이 스크린 픽셀(885)의 정수배에 의해 커버되는 영역과 중첩된다(예를 들어, 나타낸 바와 같이, 4개의 스크린 픽셀(885)의 영역에 대응하고 이를 커버하는 각 쉐이딩 픽셀(685)). 쉐이딩 픽셀(685)과 스크린 픽셀(885) 사이의 위치와 영역에서의 대응의 특정 방식의 이러한 묘사에도 불구하고, 경계가 정렬하지 않고/않거나 쉐이딩 픽셀(685)에 의해 커버되는 영역이 스크린 픽셀(885)에 의해 커버되는 영역의 정수배가 아닌 다른 실시예가 가능하다는 것에 유의해야 한다.
일부 실시예에서, 픽셀(685, 885)에 의해 커버되는 경계 및/또는 영역이 대응되는 방식은 구성 데이터(335) 내에 저장된 표시(예를 들어, 나타낸 바와 같이, 각 쉐이딩 픽셀(685)이 4개의 스크린 픽셀(885)의 영역을 커버하는 것을 지시하는 표시)에 의해 결정될 수 있고, 이러한 표시는 쉐이딩 클리핑 컴포넌트(643)에 의해 구성 데이터(335)로부터 검색될 수 있다. 다른 실시예에서, 쉐이딩 클리핑 컴포넌트(643)는 가시 프리미티브(882)의 하나 이상의 특성의 분석에 기초하여(예를 들어, 가시 프리미티브(882)에 의해 커버되는 평균 영역과 같은 통계에 기초하여) 쉐이딩 픽셀(685)에 의해 커버되는 경계 및/또는 영역을 결정하기 위해 쉐이딩 픽셀 정의 컴포넌트(6435)를 포함할 수 있다.
스크린 픽셀(885)에 대한 쉐이딩 픽셀(685)의 크기 및/또는 경계가 결정되는 방식에 관계없이, 쉐이딩 클리핑 컴포넌트(643)는 쉐이딩 픽셀(685) 내에 속하는 가시 프리미티브(882)의 일부와 쉐이딩 픽셀(685)에 의해 커버되는 영역의 교차를 각각 나타내는 다각형(682)을 도출하기 위해 쉐이딩 픽셀(685)의 각각의 내에 속하는 가시 프리미티브(882)의 일부의 클리핑을 수행할 수 있다. 더욱 구체적으로 나타낸 바와 같이, 래스터화 컴포넌트(642)에 의해 이전에 식별된 예시적인 가시 프리미티브(882)는 컬러값이 구해지는 (또한 강조된) 예시적인 스크린 픽셀(885)에 대응하는 (강조된) 예시적인 쉐이딩 픽셀(685)을 포함하는 쉐이딩 픽셀(685)의 격자로 중첩된다. 예시적인 쉐이딩 픽셀(685) 내에서, 예시적인 가시 프리미티브(882)의 클리핑은 예시적인 쉐이딩 픽셀(685) 내에 속하는 예시적인 가시 프리미티브(882)의 일부와 예시적인 쉐이딩 픽셀(685)에 의해 커버되는 영역의 교차에 의해 정의되는 형상을 갖는 (또한 강조된) 예시적인 다각형(682)을 정의하기 위해 예시적인 쉐이딩 픽셀(685)의 2개의 모서리의 부근에서 수행된다.
일부 실시예에서, 쉐이딩 클리핑 컴포넌트(643)는 클리핑을 제어하기 위해 각 가시 프리미티브(882) 상에 무게중심 좌표계를 생성할 수 있다. 본 기술 분야의 통상의 기술자에게 잘 알려진 바와 같이, 무게중심 좌표계는 정점의 상대 위치, 정점들 사이에 연장하는 각 선분의 중심 및/또는 다각형의 질량의 중심에 기초한다. 또한, 적어도 볼록 다각형 내에서, 무게중심 좌표계는 다각형의 모서리 또는 그 내부 중 어느 하나에 있는 완전히 음이 아닌 좌표값을 갖는 모든 점들과, 다각형의 외부에 있는 임의의 음의 좌표값을 갖는 모든 점들을 정의한다. 따라서, 쉐이딩 클리핑 컴포넌트(643)가 각 가시 프리미티브(882)에 대해 무게중심 좌표계를 생성하는 실시예에서, 쉐이딩 클리핑 컴포넌트(643)는 그 쉐이딩 픽셀(685) 내에서 클리핑이 발생해야 하는 위치를 결정하기 위해 쉐이딩 픽셀(685) 내의 가시 프리미티브(882)의 모서리의 위치를 식별하는 일부로서 임의의 음의 좌표값에 대한 제한을 부과할 수 있다.
각 다각형(682)을 생성하기 위해 클리핑을 수행해야 하는 위치에 대한 결정이 이루어지는 방식에 관계없이, 쉐이딩 클리핑 컴포넌트(643)는 다각형 데이터(633)의 일부로서 쉐이딩 픽셀(685)의 각각 내에 이러한 클리핑에 의해 정의될 수 있는 각 다각형(682)에 의해 커버되는 영역의 표시를 저장할 수 있다. 일부 실시예에서, 각각의 이러한 다각형(682)의 지오메트릭은 그 정점의 위치의 표시에 의해 다각형 데이터(633) 내에서 설명될 수 있다.
도 3으로 돌아가서, 클리핑 컴포넌트(643)에 의해 수행되는 클리핑 후에, 속성 보간 컴포넌트(645)는, 가시 프리미티브(882)가 클리핑의 결과로서 분할된 다각형(682)의 정점에 대해 각 가시 프리미티브(882)의 정점에서의 하나 이상의 속성을 보간할 수 있다. 도 6은 도 5의 예시적인 다각형(682)의 정점에 대하여 예시적인 프리미티브(882)의 정점으로부터의 속성의 이러한 보간의 예의 양태를 더욱 상세하게 나타낸다. 도 6에 나타내어진 것을 더욱 구체적으로 설명하면, 속성 보간 컴포넌트(645)는 예시적인 다각형(682)의 각 정점(683)에 대하여 예시적인 가시 프리미티브(882)의 각 정점(883)의 하나 이상의 속성을 보간한다. 이렇게 함으로써, 속성 보간 컴포넌트(645)는 가시 프리미티브 데이터(632)로부터 예시적인 가시 프리미티브(882)의 정점(883)의 속성의 표시를 검색할 수 있으며, 다각형 데이터(633)로부터 예시적인 다각형(682)의 정점(682)의 위치의 표시를 검색할 수 있다.
예시적인 다각형(682)의 정점(683)에 대하여 예시적인 가시 프리미티브(882)의 각 정점(883)에서의 하나 이상의 속성으로부터의 속성 보간 컴포넌트(645)에 의한 보간의 수행은, 정점(883)으로부터의 보간이 예시적인 가시 프리미티브(882) 외부의 하나 이상의 위치에 대해 이루어지는 외삽의 예를 회피한다. 그 프리미티브 외부의 위치에 대하여 프리미티브의 정점의 각각으로부터의 속성을 보간하는 것은 논리적으로 모순인 것으로 생각될 수 있는데, 왜냐하면 아무것도 존재할 수 없거나 완전히 상이한 속성을 갖는 다른 프리미티브가 존재할 수 있는 위치일 수 있는 것에 대한 임의의 적용성을 프리미티브의 속성이 가질 수 있다는 모순적인 가정에 대한 기초가 없을 수 있기 때문이다. 예시로써, 예시적인 가시 프리미티브(882) 외부의 위치에 대하여 예시적인 가시 프리미티브(882)의 정점(883)에서의 컬러값으로부터의 보간은 의미가 없을 가능성이 있는데, 왜냐하면 컬러값을 받는 그 위치에 아무것도 없을 수 있거나 그 위치에서 완전히 상이한 컬러를 갖는 상이한 프리미티브가 있을 수 있기 때문이다.
예시적인 다각형(682)의 정점(683)은 예시적인 가시 프리미티브(882)의 외부가 아니라, 예시적인 가시 프리미티브(882) 내부 또는 예시적인 가시 프리미티브(882)의 하나 이상의 모서리를 따라 있는 것으로 알려진 위치의 세트를 제공한다. 그 결과, 속성 보간 컴포넌트(645)에 의한 보간은 이러한 하나 이상의 보간이 외삽이 되는 위험 없이, 예시적인 다각형(682)의 각 정점(683)에 대하여 예시적인 가시 프리미티브(882)의 정점(883)으로부터 수행될 수 있다. 이는, 예시적인 다각형(682)이 형성되는 쉐이딩 픽셀(685)의 코너 또는 그 쉐이딩 픽셀(685) 및 하나 이상의 이웃 쉐이딩 픽셀(685)의 중심 중 어느 하나에 대해 예시적인 가시 프리미티브(882)의 정점(883)으로부터 이러한 보간이 수행되는 다른 알려진 기술에 반대된다. 이러한 다른 기술의 이러한 보간은 (도 5를 참조하여 알 수 있는 바와 같이) 각각 복수의 외삽으로 귀결될 것이다. 속성 보간 컴포넌트(645)는 속성이 있는 다각형 데이터(635)의 일부로서 예시적인 다각형(682)의 각 정점(683)에 대해 도출되는 속성의 표시를 저장할 수 있다. 일부 실시예에서, 속성이 있는 다각형 데이터(635)는 또한 정점(683)의 각각의 위치의 표시를 포함할 수 있다.
도 3으로 돌아가서, 속성 보간 컴포넌트(645)에 의해 수행되는 각 다각형(682)의 정점(683)에서의 속성을 도출하는 보간 후에, 픽셀 쉐이딩 컴포넌트(646)는 각 다각형(682)의 각 정점(683)에 대한 컬러값을 도출하기 위하여 각 다각형(682)의 각 정점(683)에서의 픽셀 쉐이딩을 수행하는 것에 대한 입력으로서 각 다각형(682)의 각 정점(683)에서의 속성을 이용할 수 있다. 예를 들어, 예시적인 다각형(682)의 각 정점(683)에서, 픽셀 쉐이딩 컴포넌트(646)는 그 정점(683)에서 컬러를 특정하는 컬러값을 도출하기 위해 그 정점(683)에서 하나 이상의 속성을 이용할 수 있다. 이렇게 함으로써, 픽셀 쉐이딩 컴포넌트(646)는 속성이 있는 다각형 데이터(635)로부터 예시적인 다각형(682)의 각 정점(683)에 대한 하나 이상의 속성의 표시를 검색할 수 있다. 그 후 픽셀 쉐이딩 컴포넌트(646)는 쉐이딩된 다각형 데이터(636)의 일부로서 예시적인 다각형(682)의 각 정점(683)에서 컬러를 특정하는 컬러값의 표시를 저장할 수 있다. 일부 실시예에서, 쉐이딩된 다각형 데이터(636)는 또한 각 정점(683)의 위치 및/또는 각 정점(683)의 속성의 표시를 포함할 수 있다.
픽셀 쉐이딩 컴포넌트(646)에 의해 수행되는 각 다각형(682)의 정점(683)에서 쉐이딩 후에, 컬러 보간 컴포넌트(647)는 스크린 픽셀(885)의 컬러값을 도출하기 위해 각각의 다각형(682)의 각 정점에서의 컬러값을 보간할 수 있다. 도 7은 도 5 및 6의 예시적인 다각형(682)과 일치하는 예시적인 스크린 픽셀(885)의 컬러값을 도출하는 이러한 보간의 예의 양태를 훨씬 더 상세하게 나타낸다.
컬러 보간 컴포넌트(647)에 의해 수행된 보간은 적어도 다각형(682) 중 대응하는 것의 정점(683)에 대하여 픽셀 쉐이딩 컴포넌트(646)에 의해 도출된 컬러값으로부터 스크린 이미지(880)의 각 스크린의 픽셀(885)에 대한 컬러를 특정하는 컬러값들을 보간하는 것을 포함한다는 것에 유의해야 한다. 그러나, 컬러 보간 컴포넌트(647)에 의해 수행된 보간은 또한 속성 보간 컴포넌트(645)에 의해 다각형(682)의 대응하는 것의 정점(683)에 대해 도출되는 이러한 속성을 유사하게 보간함으로써 각 스크린 픽셀(885)에 대해 하나 이상의 다른 속성을 도출하는 것을 포함할 수 있다. 이렇게 함으로써, 컬러 보간 컴포넌트(647)는 쉐이딩된 다각형 데이터(636)로부터 다각형(682)의 각 정점(683)에서의 속성(들)의 값 및/또는 컬러값의 표시를 검색할 수 있다. 그 후 컬러 보간 컴포넌트(647)는 스크린 이미지 데이터(730)의 일부로서 보간에 의해 스크린 픽셀(885)에 대해 도출되는 컬러값 및/또는 속성(들)의 값을 저장할 수 있다. 스크린 이미지 데이터(730)에 저장된 각 스크린 이미지 픽셀(885)의 값(들)으로, 스크린 이미지 데이터(730)는 스크린 이미지(880)의 표시가 될 수 있다.
따라서, 컬러 보간 컴포넌트(647)는 예시적인 스크린 픽셀(885)에 대한 컬러를 특정하는 컬러값을 도출하기 위해 픽셀 쉐이딩 컴포넌트(646)에 의해 예시적인 다각형(682)의 각 정점(683)에 대해 도출된 컬러값을 보간할 수 있다. 마찬가지로, 컬러 보간 컴포넌트(647)는 예시적인 스크린 픽셀(885)에 대해 그러한 하나 이상의 다른 속성에 대한 값(들)을 도출하기 위해 픽셀 쉐이딩 컴포넌트(646)에 의해 예시적인 다각형(682)의 각 정점(683)에 대해 도출된 하나 이상의 다른 속성의 값을 추가적으로 보간할 수 있다. 컬러 보간 컴포넌트(647)에 의해 수행된 이러한 보간이 향하는 위치는 예시적인 스크린 픽셀(885)의 중앙일 수 있다. 또한, 예시적인 스크린 픽셀(885)은 예시적인 다각형(682) 내에 속하는 예시적인 스크린 픽셀(885)의 중앙의 결과로서 예시적인 다각형(682)에 대응하는 것으로 생각될 수 있으며, 예시적인 다각형(682)에 대한 대응의 이러한 형태는, 예시적인 스크린 픽셀(885)에 대해 도출된 (컬러값을 포함하는) 속성들이 예시적인 다각형(682)의 정점(683)으로부터 보간되어야 하는 것으로 결정할 수 있다.
바로 설명한 바와 같이, 컬러 보간 컴포넌트(647)에 의해 다각형(682)의 정점(683)으로부터의 스크린 픽셀(885)의 각각의 중심에 대한 이러한 보간은 스크린 픽셀(885) 당 단일 샘플이 존재하는 실시예(또는, 픽셀 당 얼마나 많은 샘플이 존재할 수 있는지에 관계없이, 각 스크린 픽셀(885)에 대한 컬러값의 도출이 픽셀 당 샘플의 양에 기초하지 않는 실시예)에서 수행될 수 있다. 하지만, 스크린 픽셀(885) 당 복수의 샘플이 래스터화 중에 이용되었던 실시예에서, 컬러 보간 컴포넌트(647)는 이러한 각 샘플에 대하여 다각형의 정점(683)으로부터 보간할 수 있다. 도 8은 각 스크린 픽셀(885)의 각 샘플에 대하여 이러한 보간의 예를 훨씬 더 상세하게 나타낸다.
나타낸 바와 같이, 구체적으로, 예시적인 스크린 픽셀(885) 내에 속하는 4개의 샘플(888)이 있을 수 있어, 컬러 보간 컴포넌트(647)는 예시적인 스크린 픽셀(885)의 각 샘플(888)에 대해 예시적인 다각형(682)의 정점(683)에서의 컬러값 및/또는 다른 속성의 값을 보간할 수 있다. 이렇게 함으로써, 컬러 보간 컴포넌트(647)는 샘플 컬러 데이터(637)의 부분으로서 각 샘플(888)에 대해 이렇게 도출된 이러한 값의 표시를 저장할 수 있다. 그 후, 평균화 컴포넌트(648)는 예시적인 스크린 픽셀(885)의 컬러값을 도출하기 위해 예시적인 스크린 픽셀(885)의 각 샘플(888)에 대해 보간에 의해 막 도출된 컬러값을 평균화할 수 있다. 평균화 컴포넌트(648)는 예시적인 스크린 픽셀(885)의 하나 이상의 다른 속성의 값(들)을 도출하기 위해 예시적인 스크린 픽셀(885)의 각 샘플(888)에 대해 보간에 의해 또한 막 도출된 하나 이상의 다른 속성의 값을 추가적으로 평균화할 수 있다. 이렇게 함으로써, 평균화 컴포넌트(648)는 스크린 이미지 데이터(730)의 일부로서 예시적인 스크린 픽셀(885)의 하나 이상의 다른 속성의 컬러값 및/또는 값(들)을 저장할 수 있다.
도 5 내지 8의 단일의 예시적인 다각형(682)의 형성 및 사용의 설명은 2D 스크린 이미지(880)를 렌더링하는 일부로서 3D 모델(280)로부터 스크린 픽셀(885)에 대해 적어도 컬러값의 도출의 명료한 설명을 가능하게 하기 위해 여기에 제시된 비교적 단순한 예가 되는 것을 의미한다는 것에 유의해야 한다. 하지만, 본 기술 분야의 통상의 기술자에게 이해되는 바와 같이, 쉐이딩 픽셀(685)의 적어도 일부 내에 하나 초과의 가시 프리미티브(882)의 일부를 가져서, 하나 초과의 다각형(682)이 이러한 쉐이딩 픽셀(685)의 각각 내에 형성될 수 있다는 것은 매우 통상적일 수 있다. 도 9(a) 및 9(b)는 함께 대안적인 예시적인 쉐이딩 픽셀(685) 내에 속하는 인접한 가시 프리미티브(882a, 882b)의 쌍의 일부의 결과로서 대안적인 예시적인 쉐이딩 픽셀(685) 내의 인접한 다각형(682a, 682b)의 쌍의 형성의 양태를 나타낸다.
도 9(a)에 대해 더욱 구체적으로, 나타낸 바와 같이, 2개의 인접 가시 프리미티브(882a, 882b)는 대안적인 예시적인 쉐이딩 픽셀(685)을 통해 연장하고 대안적인 예시적인 쉐이딩 픽셀(685)의 일부와 일치하는 대안적인 예시적인 스크린 픽셀(885)을 통해 연장하는 공통 정점(883)을 갖는 공통 모서리를 형성하는 방식으로 만난다. 또한, 이들 사이에 공유되는 2개의 정점(883)을 포함하는 인접 가시 프리미티브(882a, 882b)의 각각의 정점(883)의 상대 위치가 설명된다.
도 9(b)에 대해 더욱 구체적으로, 쉐이딩 클리핑 컴포넌트(643)는 그 내부에 인접 다각형(682a, 682b)의 쌍을 형성하기 위해 대안적인 예시적인 쉐이딩 픽셀(685) 내의 인접 가시 프리미티브(882a, 882b)의 각각의 클리핑을 수행한다. 나타낸 바와 같이, 인접 다각형(682a, 682b)은 인접 다각형(682a, 682b) 사이의 공통 모서리로서 인접 가시 프리미티브(882a, 882b) 사이의 공통 모서리의 일부를 공유한다. 또한, 그 사이에 공유되는 2개의 정점(683)을 포함하여 인접 다각형(682a, 682b)의 각각의 정점(683)의 상대 위치가 설명된다. 2개의 공유된 정점(683)은 쉐이딩 클리핑 컴포넌트(643)에 의해 수행되는 클리핑의 결과로서 대안적인 예시적인 쉐이딩 픽셀(685)의 경계를 따라 정의된다.
인접 가시 프리미티브(882a, 882b)가 동일 객체의 동일면의 일부를 정의하는 가시 프리미티브의 세트의 부분인 실시예에서, 대안적인 예시적인 쉐이딩 픽셀(685)의 경계를 따라 공통 위치를 공유하는 인접 다각형(682a, 682b)의 각각의 정점(683)에 대해 도출된 컬러값은 실질적으로 유사할 가능성이 있다. 그 결과, 인접한 가시 프리미티브(882a, 882b)에 의해 정의되는 그 표면의 부분들 사이에서 발생하는 부드러운 천이가 인식될 수 있다. 실제로, 도 9(b)는 여기에 설명되는 하나 이상의 다각형으로의 가시 프리미티브의 분할이 공통 위치를 공유할 것이고, 차례로 인접한 가시 프리미티브 중에서 이러한 유사한 컬러값으로 귀결될 가능성이 있는 인접한 가시 프리미티브와 연관된 다각형 정점의 형성을 야기할 가능성이 있다는 것을 나타낸다.
도 1로 돌아가면, 설명된 바와 같이, 스크린 이미지(880)를 나타내는 스크린 이미지 데이터(730)의 생성에 후속하여, 프로세싱 컴포넌트(550)는 디스플레이(580) 상에 이미지(880)를 나타낼 수 있다. 대안적으로 또는 추가적으로, 프로세서 컴포넌트(550)는 디스플레이(780)와 같은 다른 디스플레이상에 이미지(880)의 표시를 가능하게 하기 위해 뷰잉 디바이스(700)와 같은 다른 디바이스에 스크린 이미지 데이터(730)를 송신하도록 인터페이스(590)를 동작시킬 수 있다.
다양한 실시예에서, 뷰잉 디바이스(700)는 하나 이상의 프로세서 컴포넌트(750), 저장소(760), 디스플레이(780) 및 네트워크(999)에 뷰잉 디바이스(700)를 커플링하는 인터페이스(790)를 통합한다. 저장소(760)는 하나 이상의 제어 루틴(740) 및 스크린 이미지 데이터(730)를 저장한다. 제어 루틴(740)은 다양한 기능을 수행하기 위한 논리를 구현하기 위해 뷰잉 디바이스(700)의 메인 프로세서의 컴포넌트로서의 그 역할에서 프로세서 컴포넌트(750) 상에서 동작 가능한 명령어의 시퀀스를 통합한다. 일부 실시예에서의 제어 루틴(740)을 실행하는 데 있어서, 프로세서 컴포넌트(750)는 컴퓨팅 디바이스(500)로 디스플레이(780)의 픽셀 해상도의 표시를 송신하기 위해 인터페이스(790)를 동작시킬 수 있다. 상술한 바와 같이, 이러한 표시는 제어 데이터(335)의 일부로서 컴퓨팅 디바이스(500) 내에 저장될 수 있고, 그 후 스크린 이미지(880)를 렌더링하는 하나 이상의 양태에 대해 이용될 수 있다(예를 들어, 스크린 이미지(800)의 픽셀 해상도의 설정). 대안적으로 또는 추가적으로, 프로세서 컴포넌트(750)는 설명된 바와 같이, 컴퓨팅 디바이스(500)가 스크린 이미지(880)를 렌더링한 후에 컴퓨팅 디바이스(500)로부터 스크린 이미지(880)를 나타내는 스크린 이미지 데이터(730)를 수신하기 위해 인터페이스(790)를 동작시킬 수 있다. 그 후, 프로세서 컴포넌트(750)는 디스플레이(780) 상에 모션 스크린 이미지(880)를 시각적으로 나타낼 수 있다.
도 2는 컴퓨팅 디바이스(500)의 대안적인 실시예를 포함하는 그래픽 렌더링 시스템(1000)의 대안적인 실시예의 블록도를 나타낸다. 도 2의 그래픽 렌더링 시스템(1000)의 대안적인 실시예는 많은 방식에서 도 1의 실시예와 유사하므로, 동일한 참조부호가 전체에서 동일한 요소를 칭하는 데 사용된다. 그러나, 도 1의 컴퓨팅 디바이스(500)와는 달리, 도 2의 컴퓨팅 디바이스(500)는 컨트롤러(600)를 통합하지 않는다. 따라서, 도 1의 컴퓨팅 디바이스(500)와 달리, 도 2의 컴퓨팅 디바이스(500)에서, 프로세서 컴포넌트(550)는 이렇게 하기 위해 별도의 프로세서 컴포넌트(650)가 존재하는 것 대신 제어 루틴(640)을 실행한다. 따라서, 도 2의 그래픽 렌더링 시스템(1000)의 대안적인 실시예에서, 프로세서 컴포넌트(650)에 의한 제어 루틴(640)의 실행에 대해 설명한 것과는 다른 방식으로 프로세서 컴포넌트(550)는 래스터화, 쉐이딩 및 필터링을 포함하는 스크린 이미지(880)의 렌더링을 수행한다.
다양한 실시예에서, 프로세서 컴포넌트(550, 650)의 각각은 광범위한 상용 프로세서 중 임의의 것을 포함할 수 있다. 또한, 이들 프로세서 컴포넌트 중 하나 이상은 복수의 프로세서, 멀티-스레드 프로세서, 멀티-코어 프로세서(복수의 코어는 동일하거나 별개의 다이에서 공존할 수 있음) 및/또는 복수의 물리적으로 별개인 프로세서가 소정의 방식으로 링크되는 소정의 다른 다양한 멀티프로세서 아키텍처를 포함할 수 있다. 또한, 프로세서 컴포넌트(550, 650)의 각각은 다양한 유형의 프로세서 중 임의의 것을 포함할 수 있지만, 컨트롤러(600)(존재하는 경우)의 프로세서 컴포넌트(650)는 다소 특수화되고/되거나 그래픽 및/또는 비디오에 관한 작업을 수행하도록 최적화될 수 있는 것으로 구상된다. 더욱 광범위하게, 컨트롤러(600)는 프로세서 컴포넌트(650)로부터 별개의 그리고 구분되는 컴포넌트와 그 더욱 밀접하게 관련된 컴포넌트를 사용하여, 그래픽 렌더링, 비디오 압축, 이미지 리스케일링 등에 관한 작업의 수행을 가능하게 하기 위해 컴퓨팅 디바이스(500)의 그래픽 서브시스템을 구현하는 것이 구상된다.
다양한 실시예에서, 저장소(560, 660, 760)의 각각은 아마도 전력의 중단 없는 제공을 필요로 하는 휘발성 기술을 포함하고, 아마도 제거 가능 또는 제거 가능이 아닐 수 있는 머신-판독 저장 매체의 사용을 수반하는 기술을 포함하는 광범위한 정보 저장 기술 중 임의의 것에 기초할 수 있다. 따라서, 이들 저장소의 각각은, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 더블 데이터 레이트 DRAM(DDR-DRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM), 프로그래머블 ROM(PROM), 소거 가능 프로그래머블 ROM(EPROM), 전기적 소거 가능 프로그래머블 ROM(EEPROM), 플래시 메모리, 폴리머 메모리(예를 들어, 강유전성 폴리머 메모리), 오보닉 메모리, 상 변화 또는 강유전체 메모리, 실리콘-산화물-질화물-산화물-실리콘(SONOS) 메모리, 자기 또는 광 카드, 하나 이상의 개별 강자성 디스크 드라이브, 또는 하나 이상의 어레이로 조직되는 복수의 저장 디바이스(예를 들어, 독립 디스크 어레이 또는 RAID 어레이의 리던던트 어레이로 조직된 복수의 강자성 디스크 드라이브)를 포함하지만 이에 한정되지는 않는 광범위한 유형(또는 유형의 조합)의 저장 디바이스 중 임의의 것을 포함할 수 있다. 유의할 것은, 이들 저장소의 각각이 단일 블록으로서 나타내어지지만, 이들 중 하나 이상은 상이한 저장 기술에 기초할 수 있는 복수의 저장 디바이스를 포함할 수 있다. 따라서, 예를 들어, 하나 이상의 이러한 나타낸 저장소의 각각은, 프로그램 및/또는 데이터가 머신 판독가능 저장 매체의 소정의 형태로 저장 및 전달될 수 있는 광 드라이브 또는 플래시 메모리 카드 판독기, 상대적으로 연장된 기간 동안 국부적으로 프로그램 및/또는 데이터를 저장하는 강자성 디스크 드라이브, 및 프로그램 및/또는 데이터에 대한 비교적 신속한 액세스를 가능하게 하는 하나 이상의 휘발성 솔리드 스테이트 메모리 디바이스(예를 들어, SRAM 또는 DRAM)의 조합을 나타낼 수 있다. 또한 유의할 것은, 이러한 저장소의 각각은 동일한 저장 기술에 기초하여 복수의 저장 컴포넌트로 이루어질 수 있지만, 이는 사용의 특수화의 결과로서 별개로 유지될 수 있다(예를 들어, 일부 DRAM 디바이스가 메인 저장소로서 이용되고, 다른 DRAM 디바이스는 그래픽 컨트롤러의 구분된 프레임 버퍼로서 이용됨).
다양한 실시예에서, 인터페이스(590, 790)는 설명한 바와 같이 다른 디바이스에 커플링되는 이러한 컴퓨팅 디바이스를 활성화하는 광범위한 시그널링 기술 중 임의의 것을 이용할 수 있다. 이러한 인터페이스의 각각은 이러한 커플링을 가능하게 하는 필요한 기능의 적어도 일부를 제공하는 회로를 포함한다. 그러나, 이들 각각의 인터페이스의 각각은 또한 (예를 들어, 프로토콜 스택 또는 다른 특징을 구현하기 위해) 프로세서 컴포넌트 중 대응하는 것에 의해 실행되는 명령어의 시퀀스로 적어도 일부 구현될 수 있다. 여기에서, 전기적 및/또는 광학적으로 도전성 케이블링이 이용되고, 이러한 인터페이스는 RS-232C, RS-422, USB, 이더넷(IEEE-802.3) 또는 IEEE-1394를 포함하지만 이에 한정되지는 않는 다양한 산업 표준 중 임의의 것을 따르는 시그널링 및/또는 프로토콜을 이용할 수 있다. 무선 신호 송신의 사용이 수반되는 경우, 이러한 인터페이스는 IEEE 802.11a, 802.11b, 802.11g, 802.16, 802.20(통상적으로 "모바일 광대역 무선 액세스"라 칭함); 블루투스; 지그비(ZigBee); 또는 일반 패킷 무선 서비스(GSM/GPRS)를 갖는 GSM, CDMA/1×RTT, EDGE(Enhanced Data Rates for Global Evolution), EV-DO(Evolution Data Only/Optimized), EV-DV(Evolution For Data and Voice), HSPDA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), 4G LTE 등과 같은 셀룰러 무선전화 서비스를 포함하지만 이에 한정되지 않는 다양한 산업 표준 중 임의의 것을 따르는 시그널링 및/또는 프로토콜을 이용할 수 있다.
도 10은 논리 흐름(2100)의 일 실시예를 나타낸다. 논리 흐름(2100)은 여기에 설명되는 하나 이상의 실시예에 의해 실행된 동작들의 일부 또는 전부를 나타낼 수 있다. 더욱 구체적으로, 논리 흐름(2100)은 적어도 제어 루틴(640)의 실행에서 프로세서 컴포넌트(550 및/또는 650)에 의해 수행되고/되거나 컴퓨팅 디바이스(500)의 다른 컴포넌트(들)에 의해 수행되는 동작을 나타낼 수 있다.
2110에서, 컴퓨팅 디바이스의 프로세서 컴포넌트(예를 들어, 컴퓨팅 디바이스(500)의 프로세서 컴포넌트(550 및/또는 650))는 3D 모델로부터 렌더링되는 2D 스크린 이미지(예를 들어, 스크린 이미지(880))의 평면의 관점으로부터 3D 모델의 모든 그래픽 프리미티브(예를 들어, 3D 모델(280)의 프리미티브(282))의 래스터화를 수행한다. 이렇게 함에 있어서, 프로세서 컴포넌트는 2D 스크린 이미지의 관점으로부터 볼 수 있는 3D 모델의 프리미티브(예를 들어, 가시 프리미티브(882))의 전부를 식별하고, 그 가시 프리미티브의 각각의 정점과 연관된 다양한 속성을 획득한다. 상술한 바와 같이, 평면 내의 스크린 이미지의 경계뿐만 아니라 이러한 평면의 위치 및/또는 방향은 다른 컴퓨팅 디바이스(예를 들면, 뷰잉 디바이스(700))로부터 수신될 수 있다.
2120에서, 프로세서 컴포넌트는, 쉐이딩 픽셀 내에 속하는 가시 프리미티브의 일부의 그리고 쉐이딩 픽셀의 영역의 교차를 각각 나타내는 다각형을 도출하기 위해 가시 프리미티브의 적어도 일부가 속하는 각 쉐이딩 픽셀 내에서 가시 프리미티브의 클리핑을 수행한다. 상술한 바와 같이, 쉐이딩 픽셀은 각각 2D 스크린 이미지를 이루는 스크린 픽셀의 각각보다 더 큰 영역을 포함하도록 정의될 수 있어, 쉐이딩 픽셀의 격자는 스크린 픽셀의 격자보다 더 거칠 수 있다. 또한 상술한 바와 같이, 쉐이딩 픽셀은 스크린 픽셀의 경계의 적어도 서브셋과 정렬하는 경계로 정의될 수 있어, 각 쉐이딩 픽셀은 스크린 픽셀의 정수배에 대응하도록 정의될 수 있다(예를 들어, 여기에 나타낸 바와 같이, 4개의 스크린 픽셀에 대응하는 각 쉐이딩 픽셀).
2130에서, 프로세서 컴포넌트는 가시 프리미티브의 연관된 것의 정점으로부터 다각형의 정점에 대하여 보간된 속성으로부터 다각형의 정점에서의 컬러값을 도출하기 위해 픽셀 쉐이딩을 수행한다. 2140에서, 프로세서 컴포넌트는 스크린 픽셀의 컬러값을 도출하기 위해 스크린 픽셀의 중앙에 대해 다각형의 정점으로부터의 컬러값을 보간할 수 있다. 상술한 바와 같이, 다각형에 대한 스크린 픽셀의 각각의 중앙의 위치는, 어느 다각형의 정점이 보간되는 컬러값을 제공하기 위해 이용되는지를 결정하도록 이용될 수 있다.
도 11은 논리 흐름(2200)의 일 실시예를 나타낸다. 논리 흐름(2200)은 여기에 설명되는 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 전부를 나타낼 수 있다. 더욱 구체적으로, 논리 흐름(2200)은 적어도 제어 루틴(640)을 실행하는 데 있어서 프로세서 컴포넌트(550 및/또는 650)에 의해 수행되고/되거나 컴퓨팅 디바이스(500)의 다른 컴포넌트(들)에 의해 수행되는 동작을 나타낼 수 있다.
2210에서, 컴퓨팅 디바이스의 프로세서 컴포넌트(예를 들어, 컴퓨팅 디바이스(500)의 프로세서 컴포넌트(550 및/또는 650))는 2D 스크린 이미지의 관점으로부터 보일 수 있는 3D 모델의 프리미티브(예를 들어, 가시 프리미티브(882))의 전부를 식별하기 위해 3D 모델로부터 렌더링되는 2D 스크린 이미지(예를 들어, 스크린 이미지(880))의 평면의 관점으로부터 3D 모델의 모든 그래픽 프리미티브(예를 들어, 3D 모델(280)의 프리미티브(282))의 래스터화를 수행한다. 상술한 바와 같이, 그 평면 내의 스크린 이미지의 경계뿐만 아니라 이러한 평면의 위치 및/또는 방향도 다른 컴퓨팅 디바이스(예를 들어, 뷰잉 디바이스(700))로부터 수신될 수 있다.
2220에서, 프로세서 컴포넌트는 쉐이딩 픽셀 내에 속하는 가시 프리미티브의 부분의, 그리고 쉐이딩 픽셀의 영역의 교차를 각각 나타내는 다각형을 도출하기 위해 가시 프리미티브의 적어도 일부가 속하는 각 쉐이딩 픽셀 내에서 가시 프리미티브의 클리핑을 수행한다. 상술한 바와 같이, 쉐이딩 픽셀은 2D 스크린 이미지를 이루는 스크린 픽셀의 각각보다 더 큰 영역을 포함하도록 각각 정의될 수 있어, 쉐이딩 픽셀의 격자는 스크린 픽셀의 격자보다 더 거칠 수 있다. 또한, 상술한 바와 같이, 쉐이딩 픽셀은 스크린 픽셀의 경계의 적어도 서브셋과 정렬하는 경계로 정의될 수 있어, 각 쉐이딩 픽셀은 스크린 픽셀의 정수배에 대응하도록 정의될 수 있다(예를 들어, 여기에 나타낸 바와 같이, 4개의 스크린 픽셀에 대응하는 각 쉐이딩 픽셀).
2230에서, 프로세서 컴포넌트는 가시 프리미티브의 연관된 것의 정점에서의 속성으로부터 보간함으로써 다각형의 정점에서의 속성을 도출하기 위해 보간을 수행한다. 2240에서, 프로세서 컴포넌트는 다각형의 정점에서의 속성으로부터 다각형의 정점에서의 컬러값을 도출하기 위해 픽셀 쉐이딩을 수행한다.
2250에서, 프로세서 컴포넌트는 각각의 다각형 내에 속하는 샘플에 대해 다각형의 정점으로부터 적어도 컬러값을 보간할 수 있다. 2260에서, 프로세서 컴포넌트는 스크린 픽셀의 컬러값을 도출하기 위해 각 스크린 픽셀 내에 속하는 샘플에서 적어도 컬러값을 평균화한다. 설명한 바와 같이, 다른 속성의 값은 또한 샘플에 대하여 다각형의 정점으로부터 보간될 수 있고, 그 후 각각의 스크린 픽셀에 대한 이러한 속성의 값을 도출하기 위해 샘플로부터 평균화될 수 있다.
도 12는 상술한 바와 같이 다양한 실시예를 구현하는데 적절한 예시적인 프로세싱 아키텍처(3000)의 실시예를 나타낸다. 더욱 구체적으로, 프로세싱 아키텍처(3000)(또는 그 변형)는 하나 이상의 컴퓨팅 디바이스(300, 500 또는 700)의 일부로서 및/또는 컨트롤러(600)의 일부로서 구현될 수 있다. 유의할 것은, 프로세싱 아키텍처(3000)의 컴포넌트는, 마지막 2자리가 컨트롤러(600)뿐만 아니라 컴퓨팅 디바이스(300, 500 및 700)의 일부로서 앞서 나타내어지고 설명된 컴포넌트의 적어도 일부의 참조 부호의 마지막 2자리에 대응하는 참조 부호를 부여받는다. 이것은 각각의 컴포넌트의 상관에 대한 지원으로서 수행된다.
프로세싱 아키텍처(3000)는, 하나 이상의 프로세서, 멀티-코어 프로세서, 코-프로세서, 메모리 유닛, 칩셋, 컨트롤러, 주변 장치, 인터페이스, 발진기, 타이밍 디바이스, 비디오 카드, 오디오 카드, 멀티미디어 입력/출력(I/O) 컴포넌트, 전력 공급기 등을 포함하지만 이에 한정되지는 않는 디지털 프로세싱에 통상적으로 이용되는 다양한 요소를 포함한다. 본 출원에서 사용되는, "시스템" 및 "컴포넌트"라는 용어는, 디지털 프로세싱이 수행되는 컴퓨팅 디바이스의 엔티티를 칭하는 것으로 의도되며, 그 엔티티는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행 중인 소프트웨어이며, 그 예는 이러한 나타내어진 예시적인 프로세싱 아키텍처에 의해 제공된다. 예를 들어, 컴포넌트는 프로세서 컴포넌트 상에 실행되는 프로세스, 프로세서 컴포넌트 자체, 광 및/또는 자기 저장 매체를 이용할 수 있는 저장 디바이스(예를 들어, 하드 디스크 드라이브, 어레이의 복수의 저장 드라이브 등), 소프트웨어 객체, 명령어의 실행가능 시퀀스, 실행 스레드, 프로그램 및/또는 전체 컴퓨팅 디바이스(예를 들어, 전체 컴퓨터)일 수 있지만 이에 한정되는 것은 아니다. 예시의 방식으로, 서버상에서 실행되는 어플리케이션과 서버 양쪽이 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨팅 디바이스 상에 로컬화될 수 있고/있거나 2개 이상의 컴퓨팅 디바이스 사이에 분산될 수 있다. 또한, 컴포넌트는 동작을 조정하기 위해 다양한 유형의 통신 매체에 의해 서로 통신 가능하게 커플링될 수 있다. 조정은 정보의 단방향 또는 양방향 교환을 포함할 수 있다. 예를 들어, 컴포넌트는 통신 매체를 통해 통신되는 신호의 형태로 정보를 전달할 수 있다. 정보는 하나 이상의 신호 라인에 할당되는 신호로서 구현될 수 있다. 메시지(커맨드, 상태, 어드레스 또는 데이터 메시지를 포함)는 이러한 신호들 중 하나 일 수도 있거나, 복수의 이러한 신호들일 수 있으며, 다양한 접속 및/또는 인터페이스 중 임의의 것을 통해 직렬로 또는 실질적으로 병렬로 송신될 수 있다.
나타낸 바와 같이, 프로세싱 아키텍처(3000)를 구현하는 데 있어서, 컴퓨팅 디바이스는 적어도 프로세서 컴포넌트(950), 저장소(960), 다른 디바이스들에 대한 인터페이스(990) 및 커플링(959)을 포함한다. 설명할 바와 같이, 그 의도된 사용 및/또는 사용의 조건을 포함하여 프로세싱 아키텍처(3000)를 구현하는 컴퓨팅 디바이스의 다양한 양태에 따라, 이러한 컴퓨팅 디바이스는 디스플레이 인터페이스(985)와 같은 추가적인 컴포넌트를 추가로 포함할 수 있지만 이에 한정되는 것은 아니다.
커플링(959)은 하나 이상의 버스, 포인트-투-포인트(point-to-point) 상호 접속, 트랜시버, 버퍼, 크로스포인트 스위치, 및/또는 다른 도전체 및/또는 저장소(960)에 적어도 프로세서 컴포넌트(950)를 통신 가능하게 커플링하는 논리를 포함한다. 커플링(959)은 (이러한 및/또는 다른 컴포넌트가 또한 존재하는지에 따라) 하나 이상의 인터페이스(990), 오디오 서브시스템(970) 및 디스플레이 인터페이스(985)에 프로세서 컴포넌트(950)를 추가로 커플링할 수 있다. 프로세서 컴포넌트(950)가 커플링(959)에 의해 이렇게 커플링되므로, 프로세서 컴포넌트(950)는 상술한 컴퓨팅 디바이스 중 어느 것(들)이 프로세싱 아키텍처(3000)를 구현하는지에 대해 상세하게 상술된 작업 중 다양한 것들을 수행할 수 있다. 커플링(959)은, 신호가 광학적으로 및/또는 전기적으로 전달되는 다양한 기술 또는 기술의 조합 중 임의의 것으로 구현될 수 있다. 또한, 적어도 커플링(959)의 일부는 AGP(Accelerated Graphics Port), CardBus, E-ISA(Extended Industry Standard Architecture), MCA(Micro Channel Architecture), NuBus, PCI-X(Peripheral Component Interconnect)(Extended), PCI-E(PCI Express), PCMCIA(Personal Computer Memory Card International Association) 버스, HyperTransportTM, QuickPath 등을 포함하지만 이에 한정되지는 않는 광범위한 산업 표준 중 임의의 것을 따르는 타이밍 및/또는 프로토콜을 이용할 수 있다.
상술한 바와 같이, 프로세서 컴포넌트(950) (프로세서 컴포넌트(550, 650 및 750)에 대응)는 광범위한 기술 중 임의의 것을 이용하고 다수의 방식 중 임의의 것으로 물리적으로 결합된 하나 이상의 코어로 구현되는 광범위하게 상용가능한 프로세서 중 임의의 것을 포함할 수 있다.
상술한 바와 같이, 저장소(960)(저장소(560, 660 및 760)에 대응)는 광범위한 기술 또는 기술의 조합 중 임의의 것에 기초하여 하나 이상의 별개의 저장 디바이스로 구성될 수 있다. 더욱 구체적으로, 나타낸 바와 같이, 저장소(960)는 하나 이상의 휘발성 저장소(961)(예를 들어, RAM 기술의 하나 이상의 형태에 기초한 솔리드 스테이트 저장소), 비휘발성 저장소(962)(예를 들어, 그 내용을 보존하기 위해 전력의 일정한 공급을 필요로 하지 않는, 솔리드 스테이트, 강자성 또는 다른 저장소) 및 제거가능 매체 저장소(963)(예를 들어, 정보가 컴퓨팅 디바이스들 사이에서 전달될 수 있는 제거가능 디스크 또는 솔리드 스테이트 메모리 카드 저장소)를 포함할 수 있다. 아마도 복수의 별개 유형의 저장소를 포함하는 저장소(960)의 이러한 묘사는, 하나의 유형이 프로세서 컴포넌트(950)에 의해 (하지만 아마도 전력을 꾸준히 요구하는 “휘발성” 기술을 사용하여) 데이터의 더욱 신속한 조작을 가능하게 하는 비교적 신속한 판독 및 기입 성능을 제공하고, 다른 유형이 비휘발성 저장소의 비교적 높은 밀도를 제공하는 (하지만, 비교적 늦은 판독 및 기입 성능을 제공함) 컴퓨팅 디바이스의 하나 초과의 유형의 저장 디바이스의 흔한 사용의 인식에 있다.
상이한 기술을 이용하는 상이한 저장 디바이스의 종종 상이한 특성이 주어졌을 때, 상이한 인터페이스를 통해 그 상이한 저장 디바이스에 연결되는 상이한 저장 컨트롤러를 통해 이러한 상이한 저장 디바이스가 컴퓨팅 디바이스의 다른 부분에 커플링되는 것은 또한 흔한 것이다. 예시로써, 휘발성 저장소(961)가 존재하고 RAM 기술에 기초하는 경우, 아마도 행 및 열 어드레싱을 이용하는 휘발성 저장소(961)에 적절한 인터페이스를 제공하는 저장 컨트롤러(965a)를 통해 휘발성 저장소(961)는 커플링(959)에 통신 가능하게 커플링될 수 있으며, 저장 컨트롤러(965a)는 휘발성 저장소(961) 내에 저장된 정보를 보존하는 것을 돕기 위해 행 리프레싱(refreshing) 및/또는 다른 유지 보수 작업을 수행할 수 있다. 다른 예시의 방식으로써, 비휘발성 저장소(962)가 존재하고 하나 이상의 강자성 및/또는 솔리드 스테이트 디스크 드라이브를 포함하는 경우, 비휘발성 저장소(962)는 아마도 정보의 블록 및/또는 실린더 및 섹터의 어드레싱을 이용하는 비휘발성 저장소(962)에 적절한 인터페이스를 제공하는 저장 컨트롤러(965b)를 통해 커플링(959)에 통신가능하게 커플링될 수 있다. 또 다른 예시의 방식으로써, 제거가능 매체 저장소(963)가 존재하고 머신 판독가능 저장 매체(969)의 하나 이상의 단편을 이용하는 하나 이상의 광 및/또는 솔리드 스테이트 디스크 드라이브를 포함하는 경우, 제거가능 매체 저장소(963)는 정보의 블록의 어드레싱을 아마도 이용하는 제거가능 매체 저장소(963)에 적절한 인터페이스를 제공하는 저장 컨트롤러(965c)를 통해 커플링(959)에 통신가능하게 커플링될 수 있으며, 저장 컨트롤러(965c)는 머신 판독가능 저장 매체(969)의 수명 연장에 특정한 방식으로 판독, 소거 및 기입 동작을 조정할 수 있다.
하나의 또는 다른 휘발성 저장소(961) 또는 비휘발성 저장소(962)는 그 각각이 기초하는 기술에 따라 프로세서 컴포넌트(950)에 의해 실행가능한 명령어의 시퀀스를 포함하는 루틴이 저장될 수 있는 머신 판독가능 저장 매체의 형태의 제조품을 포함할 수 있다. 예시의 방식으로써, 비휘발성 저장소(962)가 강자성 기반 디스크 드라이브(예를 들어, 소위 “하드 드라이브”)를 포함하는 경우, 이러한 각각의 디스크 드라이브는 통상적으로 플로피 디스켓과 같은 저장 매체와 유사한 방식으로 명령어의 시퀀스와 같은 정보를 저장하기 위해 다양한 패턴으로 자기적으로 배향되고 자기적으로 응답하는 입자의 코팅이 피착되는 하나 이상의 회전 플래터(platter)를 이용한다. 다른 예시의 방식으로써, 비휘발성 저장소(962)는 컴팩트 플래시 카드와 유사한 방식으로 명령어의 시퀀스와 같은 정보를 저장하기 위해 솔리드 스테이트 저장 디바이스의 뱅크로 구성될 수 있다. 다시, 실행가능 루틴 및/또는 데이터를 저장하기 위해 상이한 시간에서 컴퓨팅 디바이스의 상이한 유형의 저장 디바이스를 이용하는 것은 흔한 것이다.
따라서, 프로세서 컴포넌트(950)에 의해 실행되는 명령어의 시퀀스를 포함하는 루틴은 머신 판독가능 저장 매체(969)상에 초기에 저장될 수 있으며, 제거가능 매체 저장소(963)가 머신 판독가능 저장 매체(969)의 지속적인 존재를 필요로 하지 않는 더 긴 저장을 위해 비휘발성 저장소(962)에 및/또는 그 루틴이 실행될 때 프로세서 컴포넌트(950)에 의한 더욱 신속한 액세스를 가능하게 하기 위해 휘발성 저장소(961)에 그 루틴을 복사하는 데 후속적으로 이용될 수 있다.
상술한 바와 같이, 인터페이스(990)(아마도 인터페이스(590 또는 790)에 대응)는 하나 이상의 다른 디바이스에 컴퓨팅 디바이스를 통신가능하게 커플링하기 위해 이용될 수 있는 다양한 통신 기술 중 임의의 것에 대응하는 다양한 시그널링 기술 중 임의의 것을 이용할 수 있다. 다시, 유선 또는 무선 시그널링의 하나 또는 양쪽의 다양한 형태가 아마도 네트워크(예를 들어, 네트워크(999)) 또는 네트워크의 상호접속된 세트를 통해 프로세서 컴포넌트(950)가 입력/출력 디바이스(예를 들어, 나타내어진 예시적인 키보드(920) 또는 프린터(925)) 및/또는 다른 컴퓨팅 디바이스와 상호작용할 수 있도록 이용될 수 있다. 임의의 하나의 컴퓨팅 디바이스에 의해 종종 지원되어야 하는 복수의 유형의 시그널링 및/또는 프로토콜의 종종 매우 상이한 캐릭터의 인식에서, 인터페이스(990)는 복수의 상이한 인터페이스 컨트롤러(995a, 995b, 995c)를 포함하는 것으로 나타내어진다. 인터페이스 컨트롤러(995a)는 나타내어진 키보드(920)와 같은 사용자 입력 디바이스로부터 직렬로 송신되는 메시지를 수신하는 다양한 유형의 유선 디지털 직렬 인터페이스 또는 무선 주파수 무선 인터페이스 중 임의의 것을 이용할 수 있다. 인터페이스 컨트롤러(995b)는 나타내어진 네트워크(999)(아마도 하나 이상의 링크, 더 작은 네트워크 또는 아마도 인터넷으로 이루어진 네트워크)를 통해 다른 컴퓨팅 디바이스에 액세스하기 위한 다양한 케이블링 기반 또는 무선 시그널링, 타이밍 및/또는 프로토콜 중 임의의 것을 이용할 수 있다. 인터페이스(995c)는 나타내어진 프린터(925)에 데이터를 전달하기 위해 직렬 또는 병렬 신호 송신 중 어느 하나의 사용을 가능하게 하는 다양한 전기적으로 도전성의 케이블링 중 임의의 것을 이용할 수 있다. 인터페이스(990)의 하나 이상의 인터페이스 컨트롤러를 통해 통신가능하게 커플링될 수 있는 디바이스의 다른 예는, 음성 또는 사람이 낼 수 있는 다른 음향을 통해 이러한 사람에 의해 시그널링된 커맨드 및/또는 데이터를 수용하는 사람의 사운드를 감시하는 마이크로폰, 원격 제어, 스타일러스 펜, 카드 판독기, 지문 판독기, 가상 현실 상호작용 장갑, 그래픽 입력 태블릿, 조이스틱, 다른 키보드, 망막 스캐너, 터치 스크린의 터치 입력 컴포넌트, 트랙볼, 다양한 센서, 제스처 및/또는 얼굴 표정을 통해 이러한 사람에 의해 시그널링된 커맨드 및/또는 데이터를 수용하는 사람의 동작을 감시하는 카메라 또는 카메라 어레이, 레이저 프린터, 잉크젯 프린터, 기계 로봇, 밀링 머신 등을 포함하지만 이에 한정되는 것은 아니다.
컴퓨팅 디바이스가 디스플레이(예를 들면, 나타내어진 예시적인 디스플레이(980))에 통신가능하게 커플링되는(또는 아마도 실제로 통합) 경우, 프로세싱 아키텍처(3000)를 구현하는 이러한 컴퓨팅 디바이스는 또한 디스플레이 인터페이스(985)를 포함할 수 있다. 인터페이스의 더욱 일반화된 유형이 디스플레이에 통신가능하게 커플링되는 데 이용될 수 있지만, 사용되는 케이블링 기반 인터페이스의 다소 특수화된 속성뿐만 아니라 디스플레이상의 콘텐츠의 다양한 형태를 시각적으로 표시하는 데 종종 필요한 다소 특수화된 추가적인 프로세싱이 종종 별개의 디스플레이 인터페이스의 제공을 바람직하게 한다. 디스플레이(980)의 통신가능한 커플링에 있어서 디스플레이 인터페이스(985)에 의해 이용될 수 있는 유선 및/또는 무선 시그널링 기술은 다양한 아날로그 비디오 인터페이스, 디지털 비디오 인터페이스(DVI), 디스플레이 포트 등 중 임의의 것을 포함하지만 이에 한정되지는 않는 다양한 산업 표준 중 임의의 것을 따르는 시그널링 및/또는 프로토콜을 사용할 수 있다.
도 13은 시스템(4000)의 실시예를 나타낸다. 다양한 실시예에서, 시스템(4000)은 그래픽 렌더링 시스템(1000); 하나 이상의 컴퓨팅 디바이스(300, 500 또는 700); 및/또는 하나 이상의 논리 흐름(2100 또는 2200)과 같은 여기에 설명되는 하나 이상의 실시예에서의 사용을 위해 적절한 시스템 또는 아키텍처를 나타낼 수 있다. 본 실시예는 이러한 점에서 한정적이지 않다.
나타낸 바와 같이, 시스템(4000)은 복수의 요소를 포함할 수 있다. 하나 이상의 요소는 설계 또는 성능 제약의 주어진 세트에 대해 원하는 바에 따라, 하나 이상의 회로, 컴포넌트, 레지스터, 프로세서, 소프트웨어 서브루틴, 모듈, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 도 13이 예시로써 특정 토폴로지에서 제한된 수의 요소를 표시하지만, 임의의 적절한 토폴로지에서의 더 많거나 더 적은 요소가 주어진 구현에 대해 원하는 바에 따라 시스템(4000)에서 사용될 수 있다는 것이 이해될 수 있다. 본 실시예는 이러한 점에서 한정적이지 않다.
실시예에서, 시스템(4000)은 매체 시스템 일 수 있지만, 시스템(4000)은 이러한 점에 한정되지는 않는다. 예를 들어, 시스템(4000)은, 퍼스널 컴퓨터(PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인 디지털 기기(PDA), 셀룰러 전화, 조합 셀룰러 전화/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등에 통합될 수 있다.
실시예에서, 시스템(4000)은 디스플레이(4980)에 커플링된 플랫폼(4900a)을 포함한다. 플랫폼(4900a)은 콘텐츠 서비스 디바이스(들)(4900c) 또는 콘텐츠 전달 디바이스(들)(4900d) 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 내비게이션 특징을 포함하는 내비게이션 컨트롤러(4920)는 예를 들어, 플랫폼(4900a) 및/또는 디스플레이(4980)와 상호작용하는 데 사용될 수 있다. 이러한 컴포넌트의 각각을 더욱 상세하게 후술한다.
실시예에서, 플랫폼(4900a)은 프로세서 컴포넌트(4950), 칩셋(4955), 메모리 유닛(4969), 트랜시버(4995), 저장소(4962), 어플리케이션(4940) 및/또는 그래픽 서브시스템(4985)의 임의의 조합을 포함할 수 있다. 칩셋(4955)은 프로세서 회로(4950), 메모리 유닛(4969), 트랜시버(4995), 저장소(4962), 어플리케이션(4940) 및/또는 그래픽 서브시스템(4985) 중의 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(4955)은 저장소(4962)와의 상호 통신을 제공할 수 있는 저장 어댑터(미도시)를 포함할 수 있다.
프로세서 컴포넌트(4950)는 임의의 프로세서 또는 논리 디바이스를 사용하여 구현될 수 있으며, 하나 이상의 프로세서 컴포넌트(550, 650 또는 750) 및/또는 도 12의 프로세서 컴포넌트(950)와 동일 또는 유사할 수 있다.
메모리 유닛(4969)은 데이터를 저장할 수 있는 임의의 머신 판독가능 또는 컴퓨터 판독가능 매체를 사용하여 구현될 수 있으며, 도 12의 저장 매체(969)와 동일 또는 유사할 수 있다.
트랜시버(4995)는 다양한 적절한 무선 통신 기술을 사용하여 신호를 송신 및 수신할 수 있는 하나 이상의 라디오를 포함할 수 있으며, 도 12의 트랜시버(995b)와 동일 또는 유사할 수 있다.
디스플레이(4980)는 임의의 텔레비전형 모니터 또는 디스플레이를 포함할 수 있고, 도 12의 하나 이상의 디스플레이(580, 780) 및/또는 도 12의 디스플레이(980)와 동일 또는 유사할 수 있다.
저장소(4962)는 비휘발성 저장 디바이스로서 구현될 수 있으며, 도 12의 비휘발성 저장소(962)와 동일하거나 유사할 수 있다.
그래픽 서브시스템(4985)은 표시를 위한 스틸 또는 비디오와 같은 이미지의 프로세싱을 수행할 수 있다. 그래픽 서브시스템(4985)은, 예를 들면, 그래픽 프로세싱 유닛(GPU) 또는 비주얼 프로세싱 유닛(VPU)일 수 있다. 아날로그 또는 디지털 인터페이스가 그래픽 서브시스템(4985)과 디스플레이(4980)를 통신가능하게 커플링하는 데 사용될 수 있다. 예를 들어, 인터페이스는 고해상도 멀티미디어 인터페이스, 디스플레이 포트, 무선 HDMI 및/또는 무선 HD 규격 기술 중 임의의 것일 수 있다. 그래픽 서브 시스템(4985)은 프로세서 회로(4950) 또는 칩셋(4955)에 통합될 수 있다. 그래픽 서브시스템(4985)은 칩셋(4955)과 통신가능하게 커플링된 단독형 카드일 수 있다.
여기에서 설명되는 그래픽 및/또는 비디오 프로세싱 기술은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋 내에 통합될 수 있다. 대안적으로, 개별 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능은 멀티 코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 추가적인 실시예에서, 기능은 소비자 전자 디바이스에서 구현될 수 있다.
실시예에서, 콘텐츠 서비스 디바이스(들)(4900b)는 임의의 국내, 국제 및/또는 독립 서비스에 의해 호스팅될 수 있으므로, 예를 들어, 인터넷을 통해 플랫폼(4900a)에 액세스 가능하다. 콘텐츠 서비스 디바이스(들)(4900b)는 플랫폼(4900a) 및/또는 디스플레이(4980)에 커플링될 수 있다. 플랫폼(4900a) 및/또는 콘텐츠 서비스 디바이스(들)(4900b)는 네트워크(4999)로, 그리고 이로부터 매체 정보를 통신(예를 들어, 전송 및/또는 수신)하기 위해 네트워크(4999)에 커플링될 수 있다. 콘텐츠 전달 디바이스(들)(4900c)는 또한 플랫폼(4900a) 및/또는 디스플레이(4980)에 커플링될 수 있다.
실시예에서, 콘텐츠 서비스 디바이스(들)(4900b)는 케이블 텔레비전 박스, 퍼스널 컴퓨터, 네트워크, 전화, 인터넷 가능 디바이스 또는 디지털 정보 및/또는 콘텐츠를 전달할 수 있는 기기, 및 네트워크(4999)를 통해 또는 직접 콘텐츠 공급자와 플랫폼(4900a)과 디스플레이(4980) 사이에서 콘텐츠를 단방향으로 또는 양방향으로 통신할 수 있는 임의의 다른 유사한 디바이스를 포함할 수 있다. 콘텐츠는, 네트워크(4999)를 통해 시스템(4000)의 컴포넌트 및 콘텐츠 공급자 중 임의의 것으로, 그리고 이로부터 단방향 및/또는 양방향으로 통신될 수 있다는 것이 이해될 것이다. 콘텐츠의 예는 예를 들어, 비디오, 음악, 의료 및 게이밍 정보 등을 포함하는 임의의 매체 정보를 포함할 수 있다.
콘텐츠 서비스 디바이스(들)(4900b)는 매체 정보, 디지털 정보 및/또는 다른 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신한다. 콘텐츠 공급자의 예는 임의의 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 콘텐츠 공급자를 포함할 수 있다. 제공된 예는 실시예를 한정하는 것으로 의도되는 것은 아니다.
실시예에서, 플랫폼(4900a)은 하나 이상의 내비게이션 특징을 갖는 내비게이션 컨트롤러(4920)로부터 제어 신호를 수신할 수 있다. 내비게이션 컨트롤러(4920)의 내비게이션 특징은 예를 들어, 사용자 인터페이스(4880)와 상호작용하는 데 사용될 수 있다. 실시예에서, 내비게이션 컨트롤러(4920)는 사용자로 하여금 컴퓨터에 공간적인(예를 들어, 연속적이고 다차원의) 데이터를 입력할 수 있게 하는 컴퓨터 하드웨어 컴포넌트(구체적으로 인간 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. 그래픽 사용자 인터페이스(GUI), 텔레비전 및 모니터와 같은 다수의 시스템은 사용자로 하여금 물리적 제스처를 사용하여 데이터를 제어할 수 있게 하고 컴퓨터 또는 텔레비전에 데이터를 제공할 수 있게 한다.
내비게이션 컨트롤러(4920)의 내비게이션 특징의 움직임은 스크린상에 표시되는 포인터, 커서, 포커스 링 또는 다른 비주얼 표시자의 움직임에 의해 디스플레이(예를 들어, 디스플레이(4980))상에 반영될 수 있다. 예를 들어, 소프트웨어 어플리케이션(4940)의 제어 하에서, 내비게이션 컨트롤러(4920)상에 위치하는 내비게이션 특징은 사용자 인터페이스(4880) 상에 표시되는 가상 내비게이션 특징으로 매핑될 수 있다. 실시예에서, 내비게이션 컨트롤러(4920)는 별개의 컴포넌트가 아니라 플랫폼(4900a) 및/또는 디스플레이(4980)에 통합될 수 있다. 하지만, 실시예는 여기에 도시되거나 설명된 요소 또는 문맥에 한정되는 것은 아니다.
실시예에서, 드라이버(미도시)는 예를 들어, 활성화되었을 때 초기 부트-업(boot-up) 후 버튼의 터치로 텔레비전과 같은 플랫폼(4900a)을 사용자로 하여금 즉시 온 및 오프할 수 있게 하는 기술을 포함할 수 있다. 프로그램 논리는, 플랫폼이 “오프”되었을 때, 플랫폼(4900a)으로 하여금 콘텐츠를 매체 어댑터 또는 다른 콘텐츠 서비스 디바이스(들)(4900b) 또는 콘텐츠 전달 디바이스(들)(4900c)로 스트리밍할 수 있게 할 수 있다. 또한, 칩셋(4955)은 예를 들어, 5.1 서라운드 사운드 오디오 및/또는 고해상도 7.1 서라운드 사운드 오디오에 대한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 통합된 그래픽 플랫폼에 대한 그래픽 드라이버를 포함할 수 있다. 실시예에서, 그래픽 드라이버는 주변 장치 컴포넌트 상호접속(PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예에서, 시스템(4000)에 나타낸 하나 이상의 컴포넌트 중 임의의 것이 통합될 수 있다. 예를 들어, 플랫폼(4900a) 및 콘텐츠 서비스 디바이스(들)(4900b)가 통합될 수 있거나, 플랫폼(4900a) 및 콘텐츠 전달 디바이스(들)(4900c)가 통합될 수 있거나, 플랫폼(4900a), 콘텐츠 서비스 디바이스(들)(4900b) 및 콘텐츠 전달 디바이스(들)(4900c)가 예를 들어, 통합될 수 있다. 다양한 실시예에서, 플랫폼(4900a) 및 디스플레이(4890)는 통합된 유닛일 수 있다. 디스플레이(4980) 및 콘텐츠 서비스 디바이스(들)(4900b)가 통합될 수 있거나, 디스플레이(4980) 및 콘텐츠 전달 디바이스(들)(4900c)가 예를 들어, 통합될 수 있다. 이 예는 실시예를 제한하고자 하는 것은 아니다.
다양한 실시예에서, 시스템(4000)은 무선 시스템, 유선 시스템, 또는 이들의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현되는 경우, 시스템(4000)은 하나 이상의 안테나, 송신기, 수신기, 트랜시버, 증폭기, 필터, 제어 논리 등과 같은, 무선 공유 매체를 통해 통신하기에 적절한 컴포넌트 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 일부를 포함할 수 있다. 유선 시스템으로서 구현되는 경우, 시스템(4000)은 I/O 어댑터, I/O 어댑터를 대응 유선 통신 매체와 접속하는 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 오디오 컨트롤러 등과 같은, 유선 통신 매체를 통해 통신하기에 적절한 컴포넌트 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 와이어, 케이블, 금속 리드, 인쇄 회로 보드(PCB), 백플레인, 스위치 패브릭, 반도체 재료, 꼬여진 와이어 쌍, 동축 케이블, 광섬유 등을 포함할 수 있다.
플랫폼(4900a)은 정보를 전달하는 하나 이상의 논리적 또는 물리적 채널을 확립할 수 있다. 이 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자에 대해 의미되는 콘텐츠를 나타내는 임의의 데이터를 칭할 수 있다. 콘텐츠의 예는, 예를 들면, 음성 대화, 화상 회의, 스트리밍 비디오, 전자 메일("이메일") 메시지, 음성 메일 메시지, 영숫자 심볼, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어, 음성 정보, 침묵 주기, 배경 잡음, 컴포트 잡음, 톤 등일 수 있다. 제어 정보는 자동화된 시스템에 대해 의미되는 커맨드, 명령어 또는 제어 워드를 나타내는 임의의 데이터를 칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 매체 정보를 라우팅하고, 노드에 미리 정해진 방식으로 매체 정보를 프로세싱할 것을 지시하는 데 사용될 수 있다. 하지만, 실시예는 도 13에 나타내거나 설명된 요소 또는 문맥에 한정되는 것은 아니다.
상술한 바와 같이, 시스템(4000)은 다양한 물리적 스타일 또는 폼 팩터로 구현될 수 있다. 도 14는 시스템(4000)이 구현될 수 있는 소형의 폼 팩터 디바이스(5000)의 실시예를 나타낸다. 실시예에서, 예를 들어, 디바이스(5000)는 무선 기능을 갖는 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는 예를 들어, 하나 이상의 배터리와 같은 모바일 전원 또는 공급기와 프로세싱 시스템을 갖는 임의의 디바이스를 칭할 수 있다.
상술한 바와 같이, 모바일 컴퓨팅 디바이스의 예는 퍼스널 컴퓨터(PC), 랩톱 컴퓨터, 울트라 랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인 디지털 기기(PDA), 셀룰러 전화, 조합형 셀룰러 전화/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는 또한 손목 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트-클립 컴퓨터, 암-밴드 컴퓨터, 구두 컴퓨터, 의류 컴퓨터 및 다른 착용형 컴퓨터와 같이 사람에 의해 착용되도록 구성되는 컴퓨터를 포함할 수 있다. 실시예에서, 예를 들면, 모바일 컴퓨팅 디바이스는 음성 통신 및/또는 데이터 통신뿐만 아니라 컴퓨터 어플리케이션을 실행할 수 있는 스마트 폰으로서 구현될 수 있다. 일부 실시예는 예시의 방식으로써 스마트 폰으로서 구현되는 모바일 컴퓨팅 디바이스로 설명될 수 있지만, 다른 실시예가 다른 무선 모바일 컴퓨팅 디바이스를 이용하여 또한 구현될 수 있다는 것이 이해될 수 있다. 실시예는 이러한 문맥으로 한정되지 않는다.
도 14에 나타낸 바와 같이, 디바이스(5000)는 디스플레이(5980), 내비게이션 컨트롤러(5920a), 사용자 인터페이스(5880), 하우징(5905), I/O 디바이스(5920b) 및 안테나(5998)를 포함할 수 있다. 디스플레이(5980)는 모바일 컴퓨팅 디바이스에 대해 적절한 정보를 표시하기 위한 임의의 적절한 디스플레이 유닛을 포함할 수 있으며, 도 13의 디스플레이(4980)와 동일 또는 유사할 수 있다. 내비게이션 컨트롤러(5920a)는 사용자 인터페이스(5880)와 상호작용하는데 사용될 수 있는 하나 이상의 내비게이션 특징을 포함할 수 있으며, 도 13의 내비게이션 컨트롤러(4920)와 동일하거나 유사할 수 있다. I/O 디바이스(5920b)는 모바일 컴퓨팅 디바이스에 정보를 입력하기 위한 임의의 적절한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(5920b)에 대한 예는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키, 버튼, 스위치, 록커 스위치, 마이크로폰, 스피커, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰의 방법으로 디바이스(5000)로 입력될 수 있다. 이러한 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다. 실시예는 이러한 문맥으로 한정되지 않는다.
더욱 일반적으로, 여기에서 설명되고 나타내어지는 컴퓨팅 디바이스의 다양한 요소는 다양한 하드웨어 요소, 소프트웨어 요소, 또는 둘의 조합을 포함할 수 있다. 하드웨어 요소의 예는 디바이스, 논리 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 프로세서 컴포넌트, 회로 요소(예컨대, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, 어플리케이션 특정 집적 회로(ASIC), 프로그래머블 논리 디바이스(PLD), 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 메모리 유닛, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋, 등을 포함할 수 있다. 소프트웨어 요소의 예는 소프트웨어 컴포넌트, 프로그램, 어플리케이션, 컴퓨터 프로그램, 어플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 절차, 소프트웨어 인터페이스, 어플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합을 포함할 수 있다. 그러나, 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지를 결정하는 것은, 주어진 구현에 대해 원하는 바에 따라, 원하는 연산 속도, 전력 레벨, 열 허용 오차, 프로세싱 사이클 예산, 입력 데이터 속도, 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도 및 다른 설계 또는 성능 제약과 같은 임의의 수의 요인에 따라 변할 수 있다.
일부 실시예들은 그 파생어와 함께 "일 실시예" 또는 "실시예"라는 표현을 사용하여 설명될 수 있다. 이러한 용어는, 실시예와 관련하여 설명된 특정의 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 명세서의 여러 곳에서의 "일 실시예에서"라는 문구의 출현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다. 또한, 일부 실시예는 그 파생어와 함께 "커플링되는" 및 “접속되는”이라는 표현을 사용하여 설명될 수 있다. 이들 용어는 반드시 서로 동의어로서 의도되는 것은 아니다. 예를 들어, 일부 실시예는 둘 이상의 요소가 서로 직접적인 물리적 또는 전기적 접촉됨을 나타내기 위해 "접속되는" 및/또는 "커플링되는"이라는 용어를 사용하여 설명될 수 있다. 그러나, "커플링되는"이라는 용어는 또한 둘 이상의 요소가 서로 직접 접촉하지 않지만, 여전히 서로 협업하거나 상호작용하는 것을 의미할 수도 있다. 또한, 다른 실시예로부터의 양태 또는 요소가 결합될 수 있다.
본 발명의 요약서는 독자가 신속히 기술적 개시의 속성을 확인할 수 있도록 제공되는 것이 강조된다. 이는 청구항의 범위 또는 의미를 해석하거나 한정하기 위해 사용되지 않을 것이라는 이해로 제출된다. 또한, 상술한 상세한 설명에서, 본 발명을 간소화할 목적으로 다양한 특징이 단일 실시예에서 함께 그룹화되는 것이 이해될 수 있다. 본 발명의 이러한 방법은, 청구된 실시예가 각 청구항에 명료하게 기재된 것보다 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 이하의 청구항이 반영하는 바와 같이, 진보적인 청구물은 개시된 단일 실시예의 모든 특징보다 적게 되어 있다. 따라서, 이하의 청구항은 상세한 설명으로 여기에서 통합되며, 각 청구항은 별개의 실시예로서 그 자신에 기초한다. 첨부된 청구항에서, “포함하는(including)” 및 “여기에서(in which)”라는 용어는 “포함하는(comprising)” 및 “여기에서(wherein)”라는 각각의 용어의 일반 영어의 동등물로서 각각 사용된다. 또한, “제 1”, “제 2”, “제 3” 등이라는 용어는 단지 라벨로서 사용되며, 그 객체에 대한 수치적 요건을 부과하려고 의도된 것이 아니다.
상술한 것은 개시된 아키텍처의 예를 포함한다. 물론 컴포넌트 및/또는 방법의 모든 상정 가능한 조합을 설명하는 것이 가능하지 않지만, 본 기술 분야의 통상의 기술자는, 추가적인 다수의 조합 또는 치환이 가능하다는 것을 인식할 수 있다. 따라서, 신규한 아키텍처는 첨부된 청구항의 사상 및 범위 내에 속하는 그러한 모든 대안, 수정 및 변형을 포함하도록 의도된다. 추가적인 실시예에 속하는 예를 제공하기 위해 상세한 개시가 이하 이루어진다. 후술하는 예는 한정적인 것으로 의도된 것이 아니다.
예 1에서, 3D 모델 데이터로부터 2D 이미지를 렌더링하는 디바이스는, 쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브를 클리핑하여 제 1 가시 프리미티브와 제 1 영역의 교차를 나타내는 제 1 다각형을 형성하는 클리핑 컴포넌트; 제 1 다각형의 각각의 정점에 대하여 제 1 가시 프리미티브의 정점의 적어도 하나의 속성을 보간하는 제 1 보간 컴포넌트; 및 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점에 대해 제 1 다각형의 정점의 컬러값을 보간하는 제 2 보간 컴포넌트 -제 2 영역은 제 1 영역보다 작고 제 1 영역과 적어도 일부 일치함- 를 포함한다.
예 1의 청구물을 포함하는 예 2에 있어서, 디바이스는 2D 스크린 이미지의 다수의 가시 프리미티브의 특성에 기초하여 제 1 영역의 크기를 결정하는 픽셀 정의 컴포넌트를 포함할 수 있고, 다수의 가시 프리미티브는 제 1 가시 프리미티브를 포함한다.
예 1 및 2 중 임의의 예의 청구물을 포함하는 예 3에 있어서, 점은 스크린 픽셀의 중앙에 위치될 수 있고, 쉐이딩 컴포넌트는 제 1 다각형을 포함하는 다수의 다각형 중 각각의 다각형의 경계에 대해 점의 위치에 기초하여 클리핑 컴포넌트에 의해 형성된 다수의 다각형의 정점 중에서 적어도 하나의 속성을 보간할 제 1 다각형의 정점을 선택한다.
예 1 내지 3 중 임의의 예의 청구물을 포함하는 예 4에 있어서, 점은 스크린 픽셀 내에 속하는 샘플의 위치와 일치할 수 있고, 샘플은 제 1 가시 프리미티브의 래스터화에 이용된다.
예 1 내지 4 중 임의의 예의 청구물을 포함하는 예 5에 있어서, 디바이스는 제 1 다각형의 정점에 대해 보간된 적어도 하나의 속성으로부터 제 1 다각형의 정점의 컬러값을 도출하기 위해 쉐이딩 컴포넌트를 포함할 수 있다.
예 1 내지 5 중 임의의 예의 청구물을 포함하는 예 6에 있어서, 클리핑 컴포넌트는 제 1 영역과 제 2 가시 프리미티브의 교차를 나타내는 제 2 다각형을 형성하기 위해 제 1 영역 내에 2D 스크린 이미지의 제 2 가시 프리미티브를 클리핑할 수 있으며, 제 2 다각형은 제 1 다각형과 모서리의 적어도 일부를 공유한다.
예 1 내지 6 중 임의의 예의 청구물을 포함하는 예 7에 있어서, 제 1 다각형의 정점은 제 2 다각형의 정점과 쉐이딩 픽셀의 경계를 따라 위치를 공유할 수 있다.
예 1 내지 7 중 임의의 예의 청구물을 포함하는 예 8에 있어서, 디바이스는, 2D 스크린 이미지에서 보이는 다수의 가시 프리미티브를 식별하기 위해 3D 모델의 프리미티브를 래스터화하는 래스터화 컴포넌트를 포함할 수 있고, 다수의 가시 프리미티브는 제 1 가시 프리미티브를 포함한다.
예 1 내지 8 중 임의의 예의 청구물을 포함하는 예 9에 있어서, 래스터화 컴포넌트는 디스플레이의 픽셀 해상도에 스크린 이미지의 픽셀 해상도를 설정할 수 있다.
예 1 내지 9 중 임의의 예의 청구물을 포함하는 예 10에 있어서, 디바이스는 스크린 이미지를 표시하는 디스플레이를 포함할 수 있다.
예 1 내지 10 중 임의의 예의 청구물을 포함하는 예 11에 있어서, 디바이스는 다른 디바이스에 스크린 이미지를 나타내는 스크린 이미지 데이터를 송신하는 인터페이스를 포함할 수 있다.
예 12에 있어서, 3D 모델 데이터로부터 2D 이미지를 렌더링하는 디바이스는, 쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브 및 제 2 가시 프리미티브를 클리핑하여 제 1 가시 프리미티브와 쉐이딩 픽셀에 의해 커버되는 영역의 교차를 나타내는 제 1 다각형을 형성하고, 제 2 가시 프리미티브와 쉐이딩 픽셀에 의해 커버되는 영역의 교차를 나타내는 제 2 다각형을 형성하는 클리핑 컴포넌트; 제 1 다각형의 각각의 정점에 대하여 제 1 가시 프리미티브의 정점의 적어도 하나의 속성을 보간하고, 제 2 다각형의 각 정점에 대하여 제 2 가시 프리미티브의 정점의 적어도 하나의 속성을 보간하는 제 1 보간 컴포넌트; 및 스크린 이미지의 제 1 스크린 픽셀에 의해 커버되는 영역 내의 제 1 점에 대해 제 1 다각형의 정점의 컬러값을 보간하고, 스크린 이미지의 제 2 스크린 픽셀에 의해 커버되는 영역 내의 제 2 점에 대해 제 2 다각형의 정점의 컬러값을 보간하는 제 2 보간 컴포넌트 -제 1 스크린 픽셀 및 제 2 스크린 픽셀에 의해 커버되는 영역의 각각은 쉐이딩 픽셀에 의해 커버되는 영역과 일치함- 를 포함한다.
예 12의 청구물을 포함하는 예 13에 있어서, 제 1 점은 제 1 스크린 픽셀의 중앙에 위치될 수 있고, 제 2 점은 제 2 스크린 픽셀의 중앙에 위치될 수 있고, 제 2 보간 컴포넌트는 다수의 다각형 중 각각의 다각형의 경계에 대하여 제 1 점의 위치에 기초하여 클리핑 컴포넌트에 의해 형성된 다수의 다각형의 정점 중에서 제 1 점에 대해 적어도 하나의 속성을 보간할 제 1 다각형의 정점을 선택할 수 있고, 다수의 다각형 중 각각의 다각형의 경계에 대하여 제 2 점의 위치에 기초하여 다수의 다각형의 정점 중에서 제 2 점에 대해 적어도 하나의 속성을 보간할 제 2 다각형의 정점을 선택할 수 있고, 다수의 다각형은 제 1 다각형 및 제 2 다각형을 포함한다.
예 12 및 13 중 임의의 예의 청구물을 포함하는 예 14에 있어서, 제 2 가시 프리미티브는 제 1 가시 프리미티브와 모서리의 적어도 제 1 부분을 공유할 수 있다.
예 12 내지 14 중 임의의 예의 청구물을 포함하는 예 15에 있어서, 클리핑 컴포넌트는, 제 1 다각형 및 제 2 다각형이 모서리의 적어도 제 2 부분을 공유할 수 있도록 제 1 가시 프리미티브 및 제 2 가시 프리미티브를 클리핑할 수 있다.
예 12 내지 15 중 임의의 예의 청구물을 포함하는 예 16에 있어서, 클리핑 컴포넌트는, 제 1 다각형의 정점이 제 2 다각형의 정점과 쉐이딩 픽셀의 경계를 따른 위치를 공유할 수 있도록 제 1 가시 프리미티브 및 제 2 가시 프리미티브를 클리핑할 수 있다.
예 12 내지 16 중 임의의 예의 청구물을 포함하는 예 17에 있어서, 디바이스는 스크린 이미지를 표시하는 디스플레이를 포함할 수 있다.
예 12 내지 17 중 임의의 예의 청구물을 포함하는 예 18에 있어서, 디바이스는 디스플레이의 픽셀 해상도로 스크린 이미지의 픽셀 해상도를 설정하는 래스터화 컴포넌트를 포함할 수 있다.
예 12 내지 18 중 임의의 예의 청구물을 포함하는 예 19에 있어서, 디바이스는 다른 디바이스에 스크린 이미지를 나타내는 스크린 이미지 데이터를 전송하는 인터페이스를 포함할 수 있다.
예 12 내지 19 중 임의의 예의 청구물을 포함하는 예 20에 있어서, 디바이스는 다른 디바이스로부터의 스크린 이미지의 평면의 방향의 표시를 수신하는 래스터화 컴포넌트를 포함할 수 있다.
예 21에 있어서, 3D 모델 데이터로부터 2D 이미지를 렌더링하기 위해 컴퓨터로 구현되는 방법은, 쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브를 클리핑하여 제 1 가시 프리미티브와 제 1 영역의 교차를 나타내는 제 1 다각형을 형성하는 단계; 제 1 다각형의 각각의 정점에 대하여 제 1 가시 프리미티브의 정점의 적어도 하나의 속성을 보간하는 단계; 및 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점에 대해 제 1 다각형의 정점의 컬러값을 보간하는 단계 -제 2 영역은 제 1 영역보다 작고 제 1 영역과 적어도 일부 일치함- 를 포함한다.
예 21의 청구물을 포함하는 예 22에 있어서, 본 방법은 2D 스크린 이미지의 다수의 가시 프리미티브의 특성에 기초하여 제 1 영역의 크기를 결정하는 단계를 포함할 수 있고, 다수의 가시 프리미티브는 제 1 가시 프리미티브를 포함한다.
예 21 및 22 중 임의의 예의 청구물을 포함하는 예 23에 있어서, 점은 스크린 픽셀의 중앙에 위치될 수 있고, 본 방법은 다수의 다각형 중 각각의 다각형의 경계에 대해 점의 위치에 기초하여 클리핑 컴포넌트에 의해 형성된 복수의 다각형의 정점에서 적어도 하나의 속성을 보간할 제 1 다각형의 정점을 선택하는 단계를 포함할 수 있고, 다수의 다각형은 제 1 다각형을 포함한다.
예 21 내지 23 중 임의의 예의 청구물을 포함하는 예 24에 있어서, 점은 스크린 픽셀 내에 속하는 샘플의 위치와 일치할 수 있고, 샘플은 제 1 가시 프리미티브의 래스터화에서 이용된다.
예 21 내지 24 중 임의의 예의 청구물을 포함하는 예 25에 있어서, 본 방법은 제 1 다각형의 정점에 대해 보간된 적어도 하나의 속성에서 제 1 다각형의 정점의 컬러값을 도출하는 단계를 포함할 수 있다.
예 21 내지 25 중 임의의 예의 청구물을 포함하는 예 26에 있어서, 본 방법은 제 1 영역과 제 2 가시 프리미티브의 교차를 나타내는 제 2 다각형을 형성하기 위해 제 1 영역 내에 2D 스크린 이미지의 제 2 가시 프리미티브를 클리핑하는 단계를 포함할 수 있으며, 제 2 다각형은 제 1 다각형과 모서리의 적어도 일부를 공유한다.
예 21 내지 26 중 임의의 예의 청구물을 포함하는 예 27에 있어서, 제 1 다각형의 정점은 제 2 다각형의 정점과 쉐이딩 픽셀의 경계를 따라 위치를 공유할 수 있다.
예 21 내지 27 중 임의의 예의 청구물을 포함하는 예 28에 있어서, 본 방법은 디스플레이상에 스크린 이미지를 표시하는 단계를 포함할 수 있다.
예 21 내지 28 중 임의의 예의 청구물을 포함하는 예 29에 있어서, 본 방법은 다른 디바이스로 스크린 이미지를 나타내는 스크린 이미지 데이터를 송신하는 단계를 포함할 수 있다.
예 21 내지 29 중 임의의 예의 청구물을 포함하는 예 30에 있어서, 본 방법은 2D 스크린 이미지에 보이는 다수의 가시 프리미티브를 식별하기 위해 3D 모델의 프리미티브를 래스터화하는 단계를 포함할 수 있고, 다수의 가시 프리미티브는 제 1 가시 프리미티브를 포함한다.
예 31에 있어서, 적어도 하나의 머신 판독가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브를 클리핑하여 제 1 가시 프리미티브와 제 1 영역의 교차를 나타내는 제 1 다각형을 형성하게 하고; 제 1 다각형의 각각의 정점에 대하여 제 1 가시 프리미티브의 정점의 적어도 하나의 속성을 보간하게 하고; 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점에 대해 제 1 다각형의 정점의 컬러값을 보간 -제 2 영역은 제 1 영역보다 작고 제 1 영역과 적어도 일부 일치함- 하게 하는 명령어를 포함한다.
예 31의 청구물을 포함하는 예 32에 있어서, 컴퓨팅 디바이스는, 2D 스크린 이미지의 다수의 가시 프리미티브의 특성에 기초하여 제 1 영역의 크기를 결정하도록 될 수 있고, 다수의 가시 프리미티브는 제 1 가시 프리미티브를 포함한다.
예 31 및 32 중 임의의 예의 청구물을 포함하는 예 33에 있어서, 점은 스크린의 픽셀의 중앙에 위치될 수 있고, 컴퓨팅 디바이스는 다수의 다각형의 각각의 다각형의 경계에 대해 점의 위치에 기초하여 클리핑 컴포넌트에 의해 형성되는 다수의 다각형의 정점에서 적어도 하나의 속성을 보간할 제 1 다각형의 정점을 선택하도록 되고, 다수의 다각형은 제 1 다각형을 포함한다.
예 31 내지 33 중 임의의 예의 청구물을 포함하는 예 34에 있어서, 점은 스크린 픽셀 내에 속하는 샘플의 위치와 일치할 수 있고, 샘플은 제 1 가시 프리미티브의 래스터화에서 이용된다.
예 31 내지 34 중 임의의 예의 청구물을 포함하는 예 35에 있어서, 컴퓨팅 디바이스는 제 1 다각형의 정점에 대해 보간된 적어도 하나의 속성에서 제 1 다각형의 정점의 컬러값을 도출하도록 될 수 있다.
예 31 내지 35 중 임의의 예의 청구물을 포함하는 예 36에 있어서, 컴퓨팅 디바이스는 제 1 영역과 제 2 가시 프리미티브의 교차를 나타내는 제 2 다각형을 형성하기 위해 제 1 영역 내에 2D 스크린 이미지의 제 2 가시 프리미티브를 클리핑하도록 될 수 있고, 제 2 다각형은 제 1 다각형과 모서리의 적어도 일부를 공유한다.
예 31 내지 36 중 임의의 예의 청구물을 포함하는 예 37에 있어서, 제 1 다각형의 정점은 제 2 다각형의 정점과 쉐이딩 픽셀의 경계를 따라 위치를 공유할 수 있다.
예 31 내지 37 중 임의의 예의 청구물을 포함하는 예 38에 있어서, 컴퓨팅 디바이스는 디스플레이 상에 스크린 이미지를 표시하도록 될 수 있다.
예 31 내지 38 중 임의의 예의 청구물을 포함하는 예 39에 있어서, 컴퓨팅 디바이스는 다른 디바이스에 스크린 이미지를 나타내는 스크린 이미지 데이터를 송신하도록 될 수 있다.
예 31 내지 39 중 임의의 예의 청구물을 포함하는 예 40에 있어서, 컴퓨팅 디바이스는 디스플레이의 픽셀 해상도로 스크린 이미지의 픽셀 해상도를 설정하도록 될 수 있다.
예 31 내지 40 중 임의의 예의 청구물을 포함하는 예 41에 있어서, 컴퓨팅 디바이스는, 2D 스크린 이미지에 보이는 다수의 가시 프리미티브를 식별하기 위해 3D 모델의 프리미티브를 래스터화하도록 될 수 있고, 다수의 가시 프리미티브는 제 1 가시 프리미티브를 포함한다.
예 42에 있어서, 적어도 하나의 머신 판독가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금 상기 중 임의의 것을 수행하도록 하는 명령어를 포함할 수 있다.
예 43에 있어서, 3D 모델 데이터로부터 2D 이미지를 렌더링하는 디바이스는 상기 중 임의의 것을 수행하기 위한 수단을 포함할 수 있다.

Claims (25)

  1. 3차원(3D) 모델 데이터로부터 2차원(2D) 이미지를 렌더링하는 디바이스로서,
    쉐이딩 픽셀(shading pixel)에 의해 커버되는 2D 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브(visible primitive)를 클리핑하여(clip), 상기 제 1 영역과 상기 제 1 가시 프리미티브의 교차를 나타내는 제 1 다각형을 형성하는 클리핑 컴포넌트와,
    상기 제 1 다각형의 각각의 정점에 대하여 상기 제 1 가시 프리미티브의 정점들(vertices)의 적어도 하나의 속성을 보간하는(interpolate) 제 1 보간 컴포넌트와,
    상기 2D 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점(point)에 대해 상기 제 1 다각형의 정점들의 컬러값들을 보간하는 제 2 보간 컴포넌트 -상기 제 2 영역은 상기 제 1 영역보다 작고 상기 제 1 영역과 적어도 부분적으로 일치함- 를 포함하는
    디바이스.
  2. 제 1 항에 있어서,
    상기 점은 상기 스크린 픽셀 내에 속하는 샘플의 위치와 일치하고, 상기 샘플은 상기 제 1 가시 프리미티브의 래스터화에서 이용되는
    디바이스.
  3. 제 1 항에 있어서,
    상기 제 1 다각형의 정점들에 대해 보간된 상기 적어도 하나의 속성으로부터 상기 제 1 다각형의 정점들의 컬러값들을 도출하는 쉐이딩 컴포넌트를 포함하는
    디바이스.
  4. 제 1 항에 있어서,
    상기 클리핑 컴포넌트는 상기 제 1 영역 내에 상기 2D 스크린 이미지의 제 2 가시 프리미티브를 클리핑하여 상기 제 1 영역과 상기 제 2 가시 프리미티브의 교차를 나타내는 제 2 다각형을 형성하고, 상기 제 2 다각형은 상기 제 1 다각형과 모서리의 적어도 일부를 공유하는
    디바이스.
  5. 제 4 항에 있어서,
    상기 제 1 다각형의 정점은 상기 제 2 다각형의 정점과 상기 쉐이딩 픽셀의 경계를 따라 위치를 공유하는
    디바이스.
  6. 제 1 항에 있어서,
    상기 2D 스크린 이미지를 표시하는 디스플레이를 포함하는
    디바이스.
  7. 3차원(3D) 모델 데이터로부터 2차원(2D) 이미지를 렌더링하는 디바이스로서,
    쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브 및 제 2 가시 프리미티브를 클리핑하여, 상기 제 1 가시 프리미티브와 상기 쉐이딩 픽셀에 의해 커버되는 영역의 교차를 나타내는 제 1 다각형을 형성하고 상기 제 2 가시 프리미티브와 상기 쉐이딩 픽셀에 의해 커버되는 영역의 교차를 나타내는 제 2 다각형을 형성하는 클리핑 컴포넌트와,
    상기 제 1 다각형의 각각의 정점에 대하여 상기 제 1 가시 프리미티브의 정점들의 적어도 하나의 속성을 보간하고, 상기 제 2 다각형의 각각의 정점에 대하여 상기 제 2 가시 프리미티브의 정점들의 적어도 하나의 속성을 보간하는 제 1 보간 컴포넌트와,
    상기 2D 스크린 이미지의 제 1 스크린 픽셀에 의해 커버되는 영역 내의 제 1 점에 대해 상기 제 1 다각형의 정점들의 컬러값들을 보간하고, 상기 2D 스크린 이미지의 제 2 스크린 픽셀에 의해 커버되는 영역 내의 제 2 점에 대해 상기 제 2 다각형의 정점들의 컬러값들을 보간하는 제 2 보간 컴포넌트 -상기 제 1 스크린 픽셀 및 상기 제 2 스크린 픽셀에 의해 커버되는 영역의 각각은 상기 쉐이딩 픽셀에 의해 커버되는 영역과 일치함- 를 포함하는
    디바이스.
  8. 제 7 항에 있어서,
    상기 제 1 점은 상기 제 1 스크린 픽셀의 중앙에 위치되고, 상기 제 2 점은 상기 제 2 스크린 픽셀의 중앙에 위치되고,
    상기 제 2 보간 컴포넌트는 다수의 다각형들 중 각각의 다각형의 경계에 대하여 상기 제 1 점의 위치에 기초하여 상기 클리핑 컴포넌트에 의해 형성된 상기 다수의 다각형들의 정점들 중에서 상기 제 1 점에 대해 적어도 하나의 속성을 보간할 상기 제 1 다각형의 정점들을 선택하고, 상기 다수의 다각형들 중 각각의 다각형의 경계에 대하여 상기 제 2 점의 위치에 기초하여 상기 다수의 다각형들의 정점들 중에서 상기 제 2 점에 대해 적어도 하나의 속성을 보간할 상기 제 2 다각형의 정점들을 선택하고,
    상기 다수의 다각형들은 상기 제 1 다각형 및 상기 제 2 다각형을 포함하는
    디바이스.
  9. 제 7 항에 있어서,
    상기 제 2 가시 프리미티브는 상기 제 1 가시 프리미티브와 모서리의 적어도 제 1 부분을 공유하는
    디바이스.
  10. 제 9 항에 있어서,
    상기 클리핑 컴포넌트는, 상기 제 1 다각형 및 상기 제 2 다각형이 상기 모서리의 적어도 제 2 부분을 공유할 수 있도록 상기 제 1 가시 프리미티브 및 상기 제 2 가시 프리미티브를 클리핑하는
    디바이스.
  11. 제 10 항에 있어서,
    상기 클리핑 컴포넌트는, 상기 제 1 다각형의 정점이 상기 제 2 다각형의 정점과 상기 쉐이딩 픽셀의 경계를 따라 위치를 공유할 수 있도록 상기 제 1 가시 프리미티브 및 상기 제 2 가시 프리미티브를 클리핑하는
    디바이스.
  12. 제 7 항에 있어서,
    상기 2D 스크린 이미지를 나타내는 스크린 이미지 데이터를 다른 디바이스로 송신하는 인터페이스를 포함하는
    디바이스.
  13. 3차원(3D) 모델 데이터로부터 2차원(2D) 이미지를 렌더링하기 위해 컴퓨터로 구현되는 방법으로서,
    쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브를 클리핑하여, 상기 제 1 영역과 상기 제 1 가시 프리미티브의 교차를 나타내는 제 1 다각형을 형성하는 단계와,
    상기 제 1 다각형의 각각의 정점에 대하여 상기 제 1 가시 프리미티브의 정점들의 적어도 하나의 속성을 보간하는 단계와,
    상기 2D 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점에 대해 상기 제 1 다각형의 정점들의 컬러값들을 보간하는 단계 -상기 제 2 영역은 상기 제 1 영역보다 작고 상기 제 1 영역과 적어도 부분적으로 일치함- 를 포함하는
    컴퓨터로 구현되는 방법.
  14. 제 13 항에 있어서,
    상기 점은 상기 스크린 픽셀의 중앙에 위치되고,
    상기 방법은 다수의 다각형들 중 각각의 다각형의 경계에 대해 상기 점의 위치에 기초하여 클리핑 컴포넌트에 의해 형성된 상기 다수의 다각형들의 정점들 중에서 적어도 하나의 속성을 보간할 상기 제 1 다각형의 정점들을 선택하는 단계를 포함하고,
    상기 다수의 다각형들은 상기 제 1 다각형을 포함하는
    컴퓨터로 구현되는 방법.
  15. 제 13 항에 있어서,
    상기 방법은 상기 제 1 다각형의 정점들에 대해 보간된 적어도 하나의 속성으로부터 상기 제 1 다각형의 정점들의 컬러값들을 도출하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  16. 제 13 항에 있어서,
    상기 방법은 상기 제 1 영역 내에 상기 2D 스크린 이미지의 제 2 가시 프리미티브를 클리핑하여 상기 제 1 영역과 상기 제 2 가시 프리미티브의 교차를 나타내는 제 2 다각형을 형성하는 단계를 포함하고,
    상기 제 2 다각형은 상기 제 1 다각형과 모서리의 적어도 일부를 공유하는
    컴퓨터로 구현되는 방법.
  17. 제 16 항에 있어서,
    상기 제 1 다각형의 정점은 상기 제 2 다각형의 정점과 상기 쉐이딩 픽셀의 경계를 따라 위치를 공유하는
    컴퓨터로 구현되는 방법.
  18. 제 13 항에 있어서,
    상기 방법은 다른 디바이스로 상기 2D 스크린 이미지를 나타내는 스크린 이미지 데이터를 송신하는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  19. 명령어를 포함하는 적어도 하나의 머신 판독가능 저장 매체로서,
    상기 명령어는 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금
    쉐이딩 픽셀에 의해 커버되는 2D 스크린 이미지의 제 1 영역 내의 3D 모델로부터 도출된 2D 스크린 이미지의 제 1 가시 프리미티브를 클리핑하여, 상기 제 1 영역과 상기 제 1 가시 프리미티브의 교차를 나타내는 제 1 다각형을 형성하게 하고,
    상기 제 1 다각형의 각각의 정점에 대하여 상기 제 1 가시 프리미티브의 정점들의 적어도 하나의 속성을 보간하게 하고,
    상기 2D 스크린 이미지의 스크린 픽셀에 의해 커버되는 제 2 영역 내의 점에 대해 상기 제 1 다각형의 정점들의 컬러값들을 보간 -상기 제 2 영역은 상기 제 1 영역보다 작고 상기 제 1 영역과 적어도 부분적으로 일치함- 하게 하는
    머신 판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 점은 상기 스크린 픽셀 내에 속하는 샘플의 위치와 일치하고, 상기 샘플은 상기 제 1 가시 프리미티브의 래스터화에서 이용되는
    머신 판독가능 저장 매체.
  21. 제 19 항에 있어서,
    상기 컴퓨팅 디바이스는 상기 제 1 다각형의 정점들에 대해 보간된 상기 적어도 하나의 속성으로부터 상기 제 1 다각형의 정점들의 컬러값들을 도출하게 되는
    머신 판독가능 저장 매체.
  22. 제 19 항에 있어서,
    상기 컴퓨팅 디바이스는 상기 제 1 영역 내에 상기 2D 스크린 이미지의 제 2 가시 프리미티브를 클리핑하여, 상기 제 1 영역과 상기 제 2 가시 프리미티브의 교차를 나타내는 제 2 다각형을 형성하게 되고,
    상기 제 2 다각형은 상기 제 1 다각형과 모서리의 적어도 일부를 공유하는
    머신 판독가능 저장 매체.
  23. 제 22 항에 있어서,
    상기 제 1 다각형의 정점은 상기 제 2 다각형의 정점과 상기 쉐이딩 픽셀의 경계를 따라 위치를 공유하는
    머신 판독가능 저장 매체.
  24. 제 19 항에 있어서,
    상기 컴퓨팅 디바이스는 디스플레이 상에 상기 2D 스크린 이미지를 표시하게 되는
    머신 판독가능 저장 매체.
  25. 제 19 항에 있어서,
    상기 컴퓨팅 디바이스는 상기 2D 스크린 이미지에서 보이는 다수의 가시 프리미티브들을 식별하기 위해 상기 3D 모델의 프리미티브들을 래스터화하게 되고, 상기 다수의 가시 프리미티브들은 상기 제 1 가시 프리미티브를 포함하는
    머신 판독가능 저장 매체.
KR1020167033429A 2014-06-30 2015-05-28 감소된 픽셀 쉐이딩을 위한 기술 KR102225281B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/319,472 US9767602B2 (en) 2014-06-30 2014-06-30 Techniques for reduced pixel shading
US14/319,472 2014-06-30
PCT/US2015/032801 WO2016003556A1 (en) 2014-06-30 2015-05-28 Techniques for reduced pixel shading

Publications (2)

Publication Number Publication Date
KR20170005033A KR20170005033A (ko) 2017-01-11
KR102225281B1 true KR102225281B1 (ko) 2021-03-08

Family

ID=54931120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033429A KR102225281B1 (ko) 2014-06-30 2015-05-28 감소된 픽셀 쉐이딩을 위한 기술

Country Status (8)

Country Link
US (1) US9767602B2 (ko)
EP (1) EP3161799A4 (ko)
JP (1) JP6326152B2 (ko)
KR (1) KR102225281B1 (ko)
CN (1) CN106415668B (ko)
RU (1) RU2666300C2 (ko)
SG (1) SG11201610023WA (ko)
WO (1) WO2016003556A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106204746B (zh) * 2016-06-23 2018-06-19 广州增强信息科技有限公司 一种可实现3d模型实时上色的增强现实系统
US10672185B2 (en) 2018-07-13 2020-06-02 Nvidia Corporation Multi-rate shading using replayed screen space tiles
US10810777B1 (en) * 2019-03-28 2020-10-20 Google Llc Feature erasure

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056371A (ja) 2012-09-12 2014-03-27 Fujitsu Semiconductor Ltd 画像処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501481B1 (en) * 1998-07-28 2002-12-31 Koninklijke Philips Electronics N.V. Attribute interpolation in 3D graphics
US6867778B2 (en) * 2002-02-28 2005-03-15 Sun Microsystems, Inc. End point value correction when traversing an edge using a quantized slope value
US8212840B2 (en) * 2006-10-23 2012-07-03 Qualcomm Incorporated 3-D clipping in a graphics processing unit
US8207972B2 (en) * 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
US7940261B2 (en) * 2007-01-10 2011-05-10 Qualcomm Incorporated Automatic load balancing of a 3D graphics pipeline
US8686999B2 (en) 2009-02-02 2014-04-01 Microsoft Corporation Dynamic fragment coverage antialiasing
US8436854B2 (en) 2009-05-29 2013-05-07 Qualcomm Incorporated Graphics processing unit with deferred vertex shading
US20110216068A1 (en) * 2010-03-08 2011-09-08 Sathe Rahul P Edge processing techniques
US8514235B2 (en) 2010-04-21 2013-08-20 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US20120229460A1 (en) 2011-03-12 2012-09-13 Sensio Technologies Inc. Method and System for Optimizing Resource Usage in a Graphics Pipeline
RU2467395C1 (ru) * 2011-07-11 2012-11-20 Российская Федерация, От Имени Которой Выступает Министерство Промышленности И Торговли Российской Федерации Способ создания изображений трехмерных объектов для систем реального времени
US9019280B2 (en) 2011-07-22 2015-04-28 Qualcomm Incorporated Area-based rasterization techniques for a graphics processing system
KR101582578B1 (ko) * 2014-01-20 2016-01-11 (주)넥셀 그래픽 처리 장치 및 방법
US9547918B2 (en) * 2014-05-30 2017-01-17 Intel Corporation Techniques for deferred decoupled shading

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056371A (ja) 2012-09-12 2014-03-27 Fujitsu Semiconductor Ltd 画像処理装置

Also Published As

Publication number Publication date
US9767602B2 (en) 2017-09-19
RU2666300C2 (ru) 2018-09-06
KR20170005033A (ko) 2017-01-11
WO2016003556A1 (en) 2016-01-07
EP3161799A4 (en) 2017-11-22
RU2016146417A (ru) 2018-05-28
RU2016146417A3 (ko) 2018-05-28
JP6326152B2 (ja) 2018-05-16
EP3161799A1 (en) 2017-05-03
CN106415668B (zh) 2020-06-26
SG11201610023WA (en) 2016-12-29
CN106415668A (zh) 2017-02-15
JP2017523497A (ja) 2017-08-17
US20150379761A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
KR102154456B1 (ko) 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용
US10573275B2 (en) Techniques for determining an adjustment for a visual output
US10164459B2 (en) Selective rasterization
JP6328848B2 (ja) 遅延分離シェーディングのための技術
US9390541B2 (en) Programmable tile shader
CN104933750B (zh) 一种紧凑深度平面表示的方法、装置及介质
CN105550973B (zh) 图形处理单元、图形处理系统及抗锯齿处理方法
KR101700174B1 (ko) 감소된 비트카운트의 다각형 래스터화
KR102225281B1 (ko) 감소된 픽셀 쉐이딩을 위한 기술
US9262841B2 (en) Front to back compositing
US10936766B2 (en) Techniques for parallel execution of RANSAC algorithm
US9390463B2 (en) Techniques for reducing memory bandwidth for display composition
KR20180003108A (ko) 3차원 렌더링 장치에서 시점을 기반으로 투명도를 조절하는 방법 및 장치

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