KR20150130307A - 다수의 프리미티브들을 사용하는 그래픽 처리 - Google Patents

다수의 프리미티브들을 사용하는 그래픽 처리 Download PDF

Info

Publication number
KR20150130307A
KR20150130307A KR1020157025328A KR20157025328A KR20150130307A KR 20150130307 A KR20150130307 A KR 20150130307A KR 1020157025328 A KR1020157025328 A KR 1020157025328A KR 20157025328 A KR20157025328 A KR 20157025328A KR 20150130307 A KR20150130307 A KR 20150130307A
Authority
KR
South Korea
Prior art keywords
primitive
primitives
pixel region
processing
difference
Prior art date
Application number
KR1020157025328A
Other languages
English (en)
Other versions
KR102213727B1 (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 KR20150130307A publication Critical patent/KR20150130307A/ko
Application granted granted Critical
Publication of KR102213727B1 publication Critical patent/KR102213727B1/ko

Links

Images

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

다수의 프리미티브를 사용하는 그래픽 처리용 기술이 설명된다. 일반적으로, 컴퓨팅 장치 상에 디스플레이되는 그래픽 요소는 다수의 프리미티브로부터 구축될 수 있다. 적어도 일부 실시형태에서, 기술은 처리를 위해 다수의 프리미티브를 결합할 수 있다. 예를 들면, 프리미티브와 또 다른 프리미티브의 중첩이 감지될 수 있다. 프리미티브는, 예를 들면 단일 프리미티브로서 픽셀 영역 내에서의 디스플레이를 위해 함께 처리될 수 있다. 프리미티브는 가령 프리미티브를 혼합하거나, 프리미티브에 시각적 효과를 적용하는 등과 같이, 그래픽 처리기에 의해 처리될 수 있다. 처리된 프리미티브가 액세스되고 디스플레이 장치에 의해 디스플레이될 수 있도록, 처리된 프리미티브는 메모리에 기록될 수 있다.

Description

다수의 프리미티브들을 사용하는 그래픽 처리{GRAPHICS PROCESSING USING MULTIPLE PRIMITIVES}
본 발명은 다수의 프리미티브들을 사용하는 그래픽 처리에 관한 것이다.
오늘날의 컴퓨팅 장치는 일반적으로 다양한 시각적 컨텐츠에 대한 액세스를 갖는다. 그러나, 시각적 컨텐츠를 디스플레이하는 것은 리소스를 많이 사용할 수 있다. 예를 들면, 애플리케이션용 사용자 인터페이스를 디스플레이하는 것은 다수의 연산을 포함할 수 있다. 그러한 연산의 예시들로서는, 메모리로부터 사용자 인터페이스용 그래픽 데이터를 판독하는 것, 그래픽 데이터를 처리하는 것, 메모리에 중간 처리 결과를 저장하는 것, 메모리로부터 판독되어 디스플레이될 수 있도록 메모리에 사용자 인터페이스용 최종 처리 이미지를 기록하는 것을 포함한다. 이러한 연산들은 일반적으로 프레임 단위(frame-by-frame basis)로 수행되므로, 귀중한 메모리 및 처리 리소스를 소모한다. 배터리 전원으로 작동하는 장치(예를 들면, 모바일 컴퓨팅 장치)의 경우, 이러한 연산들은 배터리 전원을 추가적으로 소모하므로 충전 수명을 단축시킬 수 있다. 따라서, 장치 리소스 상의 그래픽 연산의 영향을 제어하는 것은 중요한 고려 사항이다.
아래의 상세한 설명에서 더욱 설명되는 개념들의 선택을 단순화된 형태로 소개하도록 본 요약이 제공된다. 본 요약은 청구되는 발명내용의 핵심적인 특징 또는 필수적인 특징을 식별하려는 의도는 없으며, 청구되는 발명내용의 범위의 결정시 도움으로서 사용되려는 의도도 없다.
다수의 프리미티브를 사용하는 그래픽 처리용 기술이 설명된다. 일반적으로, 컴퓨팅 장치 상에 디스플레이되는 그래픽 요소는 다수의 프리미티브로부터 구축될 수 있다. 프리미티브의 예는 보다 큰 그래픽 요소를 생성하도록 결합될 수 있는 선, 곡선, 사변형 등을 포함한다. 따라서, 프리미티브는 애플리케이션의 그래픽 사용자 인터페이스의 일부와 같이, 그래픽 요소를 생성하도록 디스플레이 영역 내의 픽셀을 통해 그려질 수 있다.
적어도 일부 실시형태에서, 기술은 처리를 위해 다수의 프리미티브를 결합할 수 있다. 예를 들면, 프리미티브와 다른 프리미티브의 중첩이 감지될 수 있다. 프리미티브는, 예를 들면 단일 프리미티브로서 픽셀 영역 내에 디스플레이하기 위해 함께 처리될 수 있다. 예를 들면, 프리미티브는 메모리로부터 그래픽 처리기에 의해 판독될 수 있다. 프리미티브는 가령 프리미티브를 혼합하거나, 프리미티브에 시각적 효과를 적용하는 등에 의해, 그래픽 처리기에 의해 처리될 수 있다. 처리된 프리미티브가 액세스되고 디스플레이 장치에 의해 디스플레이될 수 있도록, 처리된 프리미티브는 (예를 들면, 단일 기록 연산을 통해) 메모리에 기록될 수 있다.
첨부한 도면을 참조로 하여 상세한 내용이 설명된다. 도면에서, 참조 번호의 가장 왼쪽 숫자(들)는 참조 번호가 처음 나타나는 도면을 식별한다. 상세한 설명 및 도면에서의 상이한 경우들에 있어서의 동일한 참조 번호의 사용은 유사하거나 또는 동일한 항목을 가리킬 수 있다.
도 1은 본원에서 논의되는 기술을 사용하여 작동 가능한 예시적인 구현예에서의 환경의 도면이다.
도 2는 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다.
도 3은 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다.
도 4는 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다.
도 5는 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다.
도 6은 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다.
도 7은 하나 이상의 실시형태에 따른 예시적인 실행 시나리오를 예시한다.
도 8은 본원에 설명되는 기술의 실시형태를 실행하도록 구성되는 도 1과 관련하여 설명되는 예시적인 시스템 및 컴퓨팅 장치를 예시한다.
개요
다수의 프리미티브를 사용하는 그래픽 처리용 기술이 설명된다. 일반적으로, 컴퓨팅 장치 상에 디스플레이되는 그래픽 요소는 다수의 프리미티브로부터 구축될 수 있다. 프리미티브의 예시들로서는, 보다 큰 그래픽 요소를 생성하도록 결합될 수 있는 선, 곡선, 사변형 등을 포함한다. 따라서, 프리미티브는 애플리케이션의 그래픽 사용자 인터페이스의 일부와 같이, 그래픽 요소를 생성하도록 디스플레이 영역 내의 개별 픽셀을 통해 그려질 수 있다.
적어도 일부 실시형태에서, 기술은 처리를 위해 다수의 프리미티브를 결합할 수 있다. 예를 들면, 프리미티브와 또 다른 프리미티브의 중첩이 감지될 수 있다. 프리미티브는, 예를 들면 단일 프리미티브로서 픽셀 영역 내에 디스플레이하기 위해 함께 처리될 수 있다. 예를 들면, 프리미티브는 메모리로부터 그래픽 처리기에 의해 판독될 수 있다. 프리미티브는 가령 프리미티브를 혼합하거나, 프리미티브에 시각적 효과를 적용하는 등과 같이, 그래픽 처리기에 의해 처리될 수 있다. 처리된 프리미티브가 액세스되어 디스플레이 장치에 의해 디스플레이될 수 있도록, 처리된 프리미티브는 (예를 들면, 단일 기록 연산을 통해) 메모리에 기록될 수 있다.
이어지는 논의에서, 본원에 설명되는 기술을 사용하여 작동 가능한 예시적인 환경이 첫째로 설명된다. 이어서, "예시적인 프로시저"로 명칭된 섹션에서는 하나 이상의 실시형태에 따른 일부 예시적인 방법을 설명한다. 이것에 이어, "예시적인 구현 시나리오"로 명칭된 섹션에서는 하나 이상의 실시형태에 따른 예시적인 구현 시나리오를 설명한다. 최종적으로, "예시적인 시스템 및 장치"로 명칭된 섹션에서는 하나 이상의 실시형태에 따라 본원에서 논의되는 기술을 사용하여 작동 가능한 예시적인 시스템 및 장치를 설명한다.
하나 이상의 실시형태에 따른 예시적인 구현의 개요를 제시하였으며, 이제 예시적인 구현예들이 사용될 수 있는 예시적인 환경에 대해 고려한다.
예시적인 환경
도 1은 본원에 설명되는 다수의 프리미티브를 사용하는 그래픽 처리용 기술을 사용하여 작동 가능한 예시적인 구현에서의 환경(100)의 도면이다. 예시된 환경(100)은 다양한 방식으로 구성될 수 있는 컴퓨팅 장치(102)를 포함한다. 예를 들면, 컴퓨팅 장치(102)는 도 8과 관련하여 추가로 설명되는 바와 같이, 기존 컴퓨터(예를 들면, 개인용 데스크탑 컴퓨터, 랩탑 컴퓨터 등), 이동국, 오락 기기, 텔레비전과 통신 가능하게 커플링되는 셋탑 박스, 무선 전화, 넷북, 게임 콘솔, 핸드헬드 장치(예를 들면, 태블릿) 등으로 구성될 수 있다.
컴퓨팅 장치(102)는, 컴퓨팅 장치(102)에 대한 다양한 타입의 데이터 처리를 수행하는 기능으로 대표되는 처리기(104)를 포함한다. 예를 들면, 처리기(104)는 컴퓨팅 장치(102)의 중앙 처리 유닛(CPU)으로 대표될 수 있다. 처리기(104)의 추가적인 구현예들은 도 8을 참조하여 아래에 설명된다.
컴퓨팅 장치(102)에 대한 다양한 그래픽 관련 작업을 수행하는 기능으로 대표되는 그래픽 처리기(106)가 더 예시된다. 그래픽 처리기(106)는, 예를 들면 컴퓨팅 장치(102)의 그래픽 처리 유닛(GPU)으로 대표될 수 있다.
컴퓨팅 장치(102)는 애플리케이션(108) 및 그래픽 관리기 모듈(110)을 더 포함한다. 애플리케이션(108)은 컴퓨팅 장치(102)를 통한 다양한 작업을 수행하는 기능으로 대표된다. 애플리케이션(108)의 예는 워드 프로세서 애플리케이션, 이메일 애플리케이션, 컨텐츠 편집 애플리케이션, 웹 브라우징 애플리케이션 등을 포함한다.
그래픽 관리기 모듈(110)은 본원에서 논의되는 다수의 프리미티브를 사용하는 그래픽 처리용 기술에 더하여 다양한 작업을 수행하는 기능으로 대표된다. 그래픽 관리기 모듈(110)은, 예를 들면 컴퓨팅 장치(102)를 위한 운영체제의 컴포넌트로서 구현될 수 있다. 그러나, 실시형태에서는 그래픽 관리기 모듈(110)의 다양한 여러 구성 및 구현을 사용할 수 있다. 그래픽 관리기 모듈(110)의 구현에 관한 추가적인 상세 사항은 아래에서 논의된다.
컴퓨팅 장치(102)는 컴퓨팅 장치(102)의 다양한 기능에 의해 기록되고 판독될 수 있는 데이터 저장 매체로 대표되는 메모리(112)를 더 포함한다. 메모리(112)는, 예를 들면 컴퓨팅 장치(102)의 주메모리로 대표될 수 있다. 메모리(112)의 추가적인 상세 사항 및 예는 도 8을 참조하여 아래에서 논의된다.
또한, 컴퓨팅 장치(102)를 위한 그래픽을 출력하도록 구성되는 디스플레이 장치(114)가 예시된다. 예를 들면, 애플리케이션(108) 중 하나가 현재 구동중에 있고, 디스플레이 장치(114)를 통해 디스플레이될 애플리케이션(108)의 그래픽 요소를 제출하는 예시적인 구현을 고려한다. 처리기(104)를 이용해서, 그래픽 관리기 모듈(110)은 그래픽 요소를 검사하고, 그래픽 요소를 그래픽 처리기(106)에 의해 어떻게 처리할 것인지 결정하기 위해 본원에서 논의되는 기술을 이행할 수 있다. 본원에 자세히 설명된 바와 같이, 그래픽 요소에 대한 처리 결정은 프리미티브 중첩, 그래픽 요소에 적용될 시각적 효과, 그래픽 요소의 시각적 복잡도 등과 같은 그래픽 요소의 다양한 속성에 기반할 수 있다.
처리 결정에 기반하여, 그래픽 관리기 모듈(110)은 그래픽 요소가 어떻게 처리될지 지정하는 그래픽 요소에 대한 처리 명령어를 생성한다. 본원에서 사용되는 바와 같이, 용어 "명령어"는 처리기에 의해 판독되고 처리될 수 있는 실행 가능 코드와 같은 컴퓨터 실행 가능 명령어를 지칭한다. 그래픽 관리기 모듈(110)은 메모리(112)로부터 그래픽 요소를 판독하고 그래픽 요소를 처리하도록 처리 명령어를 이용하는 그래픽 처리기(106)에게 처리 명령어를 제출한다. 그래픽 처리기(106)는 처리된 그래픽 요소를 메모리(112)에 기록한다. 이어서, 디스플레이 장치(114)는 (예를 들면, 디스플레이 제어기를 통해) 메모리(112)로부터 처리된 그래픽 요소를 판독하고 처리된 그래픽 요소를 디스플레이할 수 있다.
본원에 설명되는 기술이 작동될 수 있는 예시적인 환경을 설명하였으며, 이제 하나 이상의 실시형태에 따른 일부 예시적인 프로시저를 고려한다.
예시적인 프로시저
이어지는 논의에서는 하나 이상의 실시형태에 따라 다수의 프리미티브를 사용하는 그래픽 처리에 대한 일부 예시적인 프로시저를 설명한다. 예시적인 프로시저는 도 1의 환경(100), 도 8의 시스템(800), 및/또는 임의의 다른 적절한 환경에서 사용될 수 있다.
도 2는 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다. 방법은 그래픽 관리기에 의해 수행되는 스텝 및 그래픽 처리기에 의해 수행되는 스텝으로서 예시된다. 스텝의 이러한 할당은 예시적인 목적으로만 제시되지만, 스텝은 다양한 여러 기능 중 하나 이상에 의해 수행될 수 있다.
적어도 일부 실시형태에서, 방법은 그래픽이 장치 상에서 처리되고 랜더링되는 동안, 프레임 단위로 수행될 수 있다. 따라서, 이 방법에서는 디스플레이 장치 상에 디스플레이하기 위해 그래픽을 합성 및/또는 랜더링하는 예시적인 방법을 설명한다.
스텝(200)에서는 제 1 프리미티브가 특정 픽셀 영역에서 제 2 프리미티브와 중첩되었다고 결정한다. 특정 디스플레이 영역의 경우, 예를 들면 특정 프리미티브가 하나 이상의 다른 프리미티브들 중의 최상위 프리미티브 상에서 레이어화되었다는 결정이 이루어질 수 있다.
다양한 여러 기술이 프리미티브 중첩 및 프리미티브들간의 중첩의 양을 결정하는데 이용될 수 있다. 예를 들면, 가령 프리미티브들 중 일부 또는 그 모두가 특정 디스플레이 프레임의 일부분으로서 디스플레이되도록, 디스플레이 구역의 영역에 디스플레이될 프리미티브를 특성화하는데 공간 데이터 구조는 사용될 수 있다. 쿼드 트리, k차원(k-dimensional) 트리, 이진 공간 분할(binary space partitioning)(BSP) 트리 등과 같은 다양한 타입의 공간 데이터 구조가 사용될 수 있다. 따라서, 프리미티브 그룹에 대한 픽셀 영역을 특성화하는 공간 데이터 구조가 검사되어 어떤 프리미티브가 중첩되었는지 및/또는 중첩된 프리미티브들간에 어느 정도의 중첩이 존재하는지를 결정할 수 있다.
스텝(202)에서는 프리미티브가 함께 처리될 것을 지정하는 처리 명령어를 생성한다. 처리 명령어는, 예를 들면 프리미티브에 대한 그래픽 데이터가 메모리로부터 판독될 것을 지정할 수 있다. 처리 명령어는 또한 프리미티브가 처리되고 메모리에 기록될 단일 프리미티브로서 결합될 것을 표시할 수 있다. 예를 들면, 처리 명령어는, 중간 처리 결과가 메모리에 기록되지 않고서, 프리미티브가 처리되고 최종 처리 결과가 메모리에 기록될 것을 지정할 수 있다. 또한, 처리 명령어는 혼합, 자르기, 음영화 등과 같은 시각적 효과가 개별 및/또는 결합된 프리미티브에 적용될 것을 지정할 수 있다. 적어도 일부 실시형태에서, 처리 명령어는 프리미티브가 처리된 후, 처리된 프리미티브가 단일 기록 연산을 통해 메모리에 기록될 것을 표시할 수 있다.
스텝(204)에서는 그래픽 처리 기능부에게 처리 명령어를 제출한다. 처리 명령어는, 예를 들면 그래픽 처리기(106)에 제출될 수 있다.
스텝(206)에서는 처리 명령어를 수신한다. 그래픽 처리기(106)는, 예를 들면 이러한 명령어를 수신할 수 있다.
스텝(208)에서는 처리 명령어에 기반하여 메모리로부터 제 1 프리미티브 및 제 2 프리미티브에 대한 데이터를 판독한다. 예를 들면, 관련 애플리케이션은 프리미티브에 대한 데이터를 메모리 영역에 기록할 수 있고, 그래픽 처리기는 메모리 영역으로부터 데이터를 판독할 수 있다. 데이터는 색, 음영화, 투명도, 불투명도, 디스플레이 영역 정보 등과 같은, 프리미티브에 대한 다양한 정보를 지정할 수 있다.
스텝(210)에서는 프리미티브에 대한 처리 명령어 및 데이터에 기반하여 제 1 프리미티브 및 제 2 프리미티브를 처리한다. 다양한 타입의 시각적 효과와 같은, 처리 명령어에 의해 지정되는 시각적 처리가 프리미티브에 적용될 수 있다.
스텝(212)에서는 처리된 프리미티브를 메모리에 기록한다. 처리된 프리미티브에 대한 데이터는, 처리 동안에, 예를 들면 메모리에 대한 중간 기록과 독립적으로 단일 기록 연산을 통해 메모리 영역에 기록될 수 있다. 예를 들면, 처리된 프리미티브는 처리된 프리미티브를 저장하는데 사용되는 메모리의 랜더링 대상 부분에 기록될 수 있다. 처리된 프리미티브는 가령 디스플레이 장치용 디스플레이 제어기를 통해 메모리 영역으로부터 판독되어 디스플레이될 수 있다.
예시의 용이함을 위해, 위에서 설명되는 프로시저는 2개의 프리미티브와 관련하여 논의된다. 그러나, 본원에서 논의되는 기술은 여러 개의 중첩 프리미티브들, 예를 들면 2개보다 많은 중첩 프리미티브들을 처리하는데 사용될 수 있다는 것이 이해될 것이다. 예를 들면, 3개 이상의 프리미티브가 처리 동안 중간 메모리 기록 없이, 디스플레이를 위해 메모리로부터 판독되고, 처리되고, 다시 메모리에 기록될 수 있다.
도 3은 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다. 적어도 일부 실시형태에 있어서, 이 방법에서는 도 2를 참조하여 위에서 논의된 스텝(200)의 예시적인 구현을 설명한다.
스텝(300)에서는 제 1 프리미티브가 제 2 프리미티브와 중첩된 것을 확인한다. 그래픽 관리기는, 예를 들면 특정 프레임에 대해, 1개의 프리미티브에 대한 픽셀 영역이 다른 프리미티브에 대한 픽셀 영역과 적어도 부분적으로 중첩된 것을 결정할 수 있다.
스텝(302)에서는 제 1 프리미티브에 대한 픽셀 영역과 제 2 프리미티브에 대한 픽셀 영역 사이의 차이를 결정한다. 이 차이는, 예를 들면 제 1 프리미티브에 대한 픽셀 영역에 의해 중첩되지 않는 제 2 프리미티브에 대한 픽셀 영역의 부분에 해당할 수 있다. 프리미티브에 대한 픽셀 영역 사이의 차이를 결정하는 예시는 도 7을 참조하여 아래에서 논의된다. 프리미티브에 대한 픽셀 영역 사이의 차이를 계산하기 위한 다양한 기술이 사용될 수 있으며, 이 중 적어도 일부가 위에서, 또한 아래에서 논의된다.
스텝(304)에서는 제 1 프리미티브와 제 2 프리미티브의 기저 부분의 결합이 제 1 프리미티브에 대한 픽셀 영역에 기반하여 처리될 것을 지정하는 제 1 명령어를 생성한다. 제 1 명령어는, 예를 들면 제 1 프리미티브에 대한 픽셀 영역에 대해, 제 1 프리미티브와 제 1 프리미티브 아래에 위치되는 제 2 프리미티브의 부분이 함께 처리될 것을 지정할 수 있다. 따라서, 제 1 명령어는 제 1 프리미티브와 제 2 프리미티브의 기저 부분을 처리될 단일 프리미티브로서 식별할 수 있다.
스텝(306)에서는 제 2 프리미티브가 제 1 프리미티브에 대한 픽셀 영역과 제 2 프리미티브에 대한 픽셀 영역 사이의 차이에 기반하여 처리될 것을 지정하는 제 2 명령어를 생성한다. 제 2 명령어는, 예를 들면 제 1 명령어에서 지정된 제 2 프리미티브의 부분을 생략시킬 수 있다. 따라서, 제 2 프리미티브의 나머지 부분(예를 들면, 제 1 명령어에서 지정되어 있지 않은 부분)은 단일 프리미티브로서 처리될 수 있다. 적어도 일부 실시형태에서, 제 1 명령어에서 지정된 제 2 프리미티브의 부분을 생략시키는 것은, 예를 들면 제 1 명령어에 기반하여 이미 처리한 후, 생략된 부분을 재차 처리하는데 사용될 메모리 및/또는 처리 리소스를 절약할 수 있다.
도 2를 참조하여 위에서 논의된 바와 같이, 제 1 명령어 및 제 2 명령어는 프리미티브들의 세트에 대한 처리 명령어의 일부로서 그래픽 처리기에 제출될 수 있다.
본 방법은 2개의 프리미티브를 처리하는 것에 관련하여 논의되었지만, 이것에 제한되도록 의도되지 않으며, 방법은 하나 이상의 실시형태에 따라 다수의 중첩된 프리미티브에 대한 처리 명령어를 생성하는데 사용될 수 있다.
다양한 실시형태에 따라, 프리미티브에 대한 픽셀 영역 사이의 차이를 결정하는 것은 다양한 방식으로 수행될 수 있다. 예를 들면, 그래픽 기능부[예를 들면, 그래픽 관리기 모듈(110)]는 컴퓨팅 장치의 처리 유닛[예를 들면, 처리기(104)]이 차이 계산을 수행하는 것을 추진시킬 수 있다. 대안적으로, 또는 추가적으로, 그래픽 기능부는 그래픽 처리기[예를 들면, 그래픽 처리기(106)]의 기능이 차이 계산을 수행하는 것을 추진시킬 수 있다.
예를 들면, 프리미티브에 대한 픽셀 데이터는 프리미티브에 대한 픽셀 영역 사이의 차이를 계산하는 요청과 함께 그래픽 처리기에 제출될 수 있다. 그래픽 처리기는 픽셀 데이터(예를 들면, 픽셀 좌표)를 처리하고, 프리미티브에 대한 픽셀 영역 사이의 차이를 결정하도록 제트 버퍼링(z-buffering) 기술(예를 들면, 깊이 버퍼)을 이용할 수 있다. 그래픽 처리기는, 예를 들면 그래픽 관리기로부터 수신되는 처리 명령어에 기반하여, 프리미티브가 어떻게 처리될지에 대해 결정하도록 픽셀 영역 사이의 차이를 이용할 수 있다. 예시적인 구현으로서, 다음의 방법을 고려한다.
도 4는 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다. 스텝(400)에서는 중첩된 프리미티브에 대해, 픽셀 영역이 문턱 복잡도(threshold complexity)를 충족시키는지 또는 초과하는지 여부를 결정한다. 문턱 복잡도는, 예를 들면 중첩된 프리미티브의 문턱 개수를 지정할 수 있다. 다른 예시에서, 문턱 복잡도는 중첩된 프리미티브에 대한 문턱 픽셀 영역을 지정할 수 있다. 문턱 복잡도에 대한 폭넓게 다양한 다른 파라미터가 고려될 수 있다.
중첩된 프리미티브에 대한 픽셀 영역이 문턱 복잡도를 충족시키지 않거나 또는 초과하지 않으면("아니오"), 스텝(402)에서는 픽셀 영역 사이의 차이를 계산하는 요청을 로컬 처리 장치에 제출한다. 그래픽 관리기 모듈(110)은, 예를 들면 처리기가 프리미티브에 대한 픽셀 영역 사이의 차이를 계산하는 것을 요청하는 명령어를 처리기(104)에 제출할 수 있다.
스텝(404)에서는 프리미티브에 대한 픽셀 영역 사이의 차이의 표시(indication)를 수신한다. 예를 들면, 그래픽 관리기 모듈(110)은 처리기(104) 및/또는 그래픽 처리기(106)로부터 차이 계산을 수신할 수 있다.
스텝(400)으로 돌아가서, 중첩된 프리미티브에 대한 픽셀 영역이 문턱 복잡도를 충족시키거나 또는 초과하면("예"), 스텝(406)에서는 픽셀 영역 사이의 차이를 계산하는 요청을 그래픽 처리기에 제출한다. 그래픽 관리기 모듈(110)은, 예를 들면 그래픽 처리기가 프리미티브에 대한 픽셀 영역 사이의 차이를 계산할 것을 요청하는 명령어를 그래픽 처리기(106)에 제출할 수 있다. 적어도 일부 실시형태에서, 이러한 명령어는 그래픽 처리기의 깊이 버퍼가 차이 계산을 수행하는데 사용될 것을 지정할 수 있다.
스텝(408)에서는 그래픽 처리기 상에 픽셀 영역 사이의 차이를 저장한다. 차이는, 예를 들면 GPU의 깊이 버퍼에 저장될 수 있다.
스텝(410)에서는 프리미티브에 대한 처리 결정을 행하도록 픽셀 영역 사이의 차이의 표시를 이용한다. 예를 들면, 차이가 로컬 처리 장치 상에서 계산되는 시나리오[예를 들면, 스텝(402)]에서, 차이는 프리미티브를 어떻게 처리할지 결정하는데 사용되는 그래픽 처리기에 제출된다. 차이가 계산되고 그래픽 처리기에 의해 저장되는 시나리오에서, 그래픽 처리기는 프리미티브에 대한 처리 결정을 행하도록 차이 정보에 단순히 국부적으로 액세스할 수 있다. 그러한 결정의 예시는 위에서, 또한 아래에서 논의된다.
위에 제공된 예시에는 로컬 처리기 또는 그래픽 처리기를 이용하는 것과 관련하여 "둘 중 하나/또는"이 제시된다. 그러나, 이것은 제한적으로 의도되지 않으며, 적어도 일부 실시형태에서는 다양한 측면의 다른 계산을 수행하도록 로컬 처리기 및 그래픽 처리기 둘 다를 이용할 수 있다. 예를 들면, 차이 계산들의 그룹은 보다 복잡하거나 보다 덜 복잡한 계산으로 분리될 수 있다. 보다 덜 복잡한 계산이 수행되도록 로컬 처리기에게 제출될 수 있고, 보다 복잡한 계산이 수행되도록 그래픽 처리기에 제출될 수 있다. 따라서, 로컬 처리기 및 그래픽 처리기는 차이 계산을 수행하도록 별개로 추진될 수 있거나 및/또는 로컬 처리기와 그래픽 처리기의 조합이 차이 계산을 수행하도록 사용될 수 있다.
적어도 일부 실시형태에서, 본원에서 논의되는 기술은 중첩된 프리미티브가 프리미티브의 시각적 속성에 의거하여 어떻게 랜더링될지를 지정할 수 있다. 예를 들면, 다음의 방법을 고려한다.
도 5는 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다. 스텝(500)에서는 제 1 프리미티브가 제 2 프리미티브와 중첩된 것을 결정한다. 프리미티브에 대한 제트 오더(z-order)는, 예를 들면 특정 프레임에 대해 제 1 프리미티브가 제 2 프리미티브의 일부 또는 모두와 중첩된 것을 지정할 수 있다.
스텝(502)에서는 제 1 프리미티브의 픽셀이 불투명하면, 제 2 프리미티브의 중첩된 픽셀이 처리되지 않을 것을 지정하도록 프리미티브에 대한 처리 명령어를 수정한다. 예를 들면, 프리미티브에 대한 처리 명령어는 제 1 프리미티브가 불투명 픽셀을 식별하기 위해 픽셀 단위로 검사될 것을 지정하도록 수정될 수 있다. 불투명 픽셀이 제 2 프리미티브의 픽셀과 중첩되었다고 식별되면 제 2 프리미티브의 중첩된 픽셀(예를 들면, 제 2 프리미티브의 일부 또는 모두)은 처리되지 않고/않거나 메모리에 기록되지 않는다.
예를 들면, 제 1 프리미티브의 중첩된 부분이 일부 불투명 픽셀 및 일부 비불투명 픽셀, 예를 들면 반투명 픽셀, 투명 픽셀 등을 포함하는 시나리오를 고려한다. 그러한 시나리오에서, 제 1 프리미티브의 불투명 픽셀에 의해 중첩되는 제 2 프리미티브의 픽셀은 처리되지 않고/않거나 메모리에 기록되지 않는다. 그러나, 비불투명 픽셀에 의해 중첩되는 제 2 프리미티브의 픽셀이 처리되어, 예를 들면 본원에서 논의되는 기술에 따라 제 1 프리미티브의 중첩된 픽셀과 혼합될 수 있다.
위에서 논의된 기술로, 제 1 프리미티브 및 제 2 프리미티브는 그래픽 처리기, 예를 들면 그래픽 처리기(106)에 의한 처리를 위해 단일 결합 프리미티브로서 [예를 들면, 그래픽 관리기 모듈(110)에 의해] 함께 결합될 수 있다. 예를 들면, 단일 결합된 프리미티브에 대한 처리 명령어에 기반하여, 그래픽 처리기는 메모리로부터 제 1 프리미티브 및 제 2 프리미티브의 중첩되지 않은 부분을 처리할 수 있다. 제 2 프리미티브가 제 1 프리미티브와 완전히 중첩된 예시적인 실시형태에서, 제 2 프리미티브에 대한 데이터는 단순히 처리되지 않고/않거나 메모리에 기록되지 않는다. 따라서, 다른 프리미티브의 불투명 픽셀과 중첩되는 프리미티브의 일부는 합성 연산으로부터 생략될 수 있다.
따라서, 기저 프리미티브의 픽셀이 관련 디스플레이 영역의 시각적 외관에 기여하지 않도록, 적어도 부분적으로 불투명한 프리미티브가 기저 프리미티브의 픽셀을 보이지 않게 할 때, 본 기술은 그래픽 처리기로 하여금 중첩된 프리미티브의 불투명 픽셀과 중첩된 기저 프리미티브의 픽셀을 생략시키도록 명령함으로써 리소스(예를 들면, 처리 및/또는 메모리 리소스)를 보존할 수 있다.
적어도 일부 실시형태에서, 본원에서 논의되는 기술은 가령 위에서 논의된 바와 같이 시각적 효과를 적용함으로써, 프리미티브에 대해 다양한 타입의 그래픽 처리를 수행하도록 추진될 수 있다. 예를 들면, 다음의 방법을 고려한다.
도 6은 하나 이상의 실시형태에 따른 방법의 스텝을 설명하는 흐름도이다. 스텝(600)에서는 다수의 프리미티브를 단일 결합 프리미티브로 함께 그룹화하는 제 1 처리 명령어를 생성한다. 예를 들면, 프리미티브를 결합하기 위해 위에서 논의된 구현들은 (예를 들면, 프리미티브 중첩에 기반하여) 2개 이상의 중첩된 프리미티브를 단일 결합 프리미티브로 결합하는데 사용될 수 있다.
스텝(602)에서는 시각적 효과가 단일 결합 프리미티브에 적용될 것을 지정하는 제 2 처리 명령어를 생성한다. 시각적 효과의 예는 자르기, 음영화, 그레이 스케일링, 페이딩 등을 포함한다.
적어도 일부 실시형태에서, 시각적 효과는 결합 프리미티브에 적용될 에일리어싱 제거(anti-aliasing) 효과를 포함할 수 있다. 일반적으로, 에일리어싱 제거는 가령 픽셀 그래픽 내의 들쭉날쭉한 가장자리를 없애도록 픽셀 음영화 및/또는 착색을 통한 그래픽의 부드러운 가장자리를 위한 기술을 지칭한다. 따라서, 시각적 효과에 대한 명령어는 에일리어싱 제거를 위한 픽셀 커버리지값을 포함할 수 있다. 예를 들면, 커버리지값은 에일리어싱 제거 기술의 일부로서 개별 픽셀에 적용될 색 음영화 및/또는 착색을 포함할 수 있다.
스텝(604)에서는 그래픽 처리기에게 제 1 처리 명령어 및 제 2 처리 명령어를 제출한다. 처리 명령어는, 예를 들면 그래픽 관리기 모듈(110)에 의해 생성되고, 실행되도록 그래픽 처리기(106)에게 제출될 수 있다.
예시적인 실행 시나리오
이어지는 논의에서는 본원에 설명되는 다수의 프리미티브를 사용하는 그래픽 처리용 기술에 대한 예시적인 구현 시나리오를 설명한다. 예시적인 구현 시나리오는 도 1의 환경(100), 도 8의 시스템(800) 및/또는 임의의 다른 적절한 환경에서 구현될 수 있다. 구현 시나리오는 위에서 논의된 다양한 프로시저의 양태들을 이용할 수 있다.
도 7은 하나 이상의 실시형태에 따른 예시적인 구현 시나리오(700)를 예시한다. 시나리오(700)의 상부는 랜더링되어 디스플레이 영역의 픽셀 그룹의 일부로서 디스플레이될 프리미티브에 대한 데이터를 나타내는 프리미티브(702) 및 프리미티브(704)를 포함한다. 프리미티브(702, 704)는, 예를 들면 애플리케이션(108) 중 하나와 관련되는 그래픽 요소의 일부일 수 있다. 프리미티브(702, 704)는 다른 사이즈, 색, 음영, 불투명도 또는 투명도의 레벨 등을 가질 수 있다.
또한, 시나리오(700)에서, 프리미티브(702, 704)는 프리미티브(704)가 프리미티브(702)와 중첩될 것을 지정하는 각각의 제트 오더를 갖는다. 따라서, 프리미티브(702)에 대한 명령어는 프리미티브(702)가 디스플레이될 특정 픽셀 영역을 지정한다. 프리미티브(704)에 대한 명령어는 프리미티브(704)가 디스플레이될 특정 픽셀 영역의 서브 영역을 지정한다.
시나리오(700)의 다음 부분으로 이어지면, 프리미티브(702)와 프리미티브(704) 사이의 영역 차이(706)가 계산된다. 영역 차이(706)는, 예를 들면 프리미티브(702)가 디스플레이될 픽셀 영역(예를 들면, 픽셀 그룹)과 프리미티브(704)가 디스플레이될 픽셀 영역 사이의 차이에 해당할 수 있다. 예를 들면, 프리미티브(704)에 대한 픽셀 영역은, 예를 들면 프리미티브(704)가 아닌 프리미티브(702)에 의해 커버되는 픽셀 영역인 프리미티브 사이의 영역 차이(706)를 결정하도록, 프리미티브(702)에 대한 픽셀 영역으로부터 감산될 수 있다.
시나리오(700)의 다음 부분으로 이어지면, 프리미티브(704)에 대한 픽셀 영역에 기반하여, 프리미티브(702)의 부분(708)과 프리미티브(704)를 처리하기 위한 명령어가 생성된다. 예를 들면, 부분(708)은 프리미티브(704) 아래에 위치되는 프리미티브(702)의 일부분에 해당한다. 따라서, 프리미티브(704)에 대한 픽셀 영역을 처리하는 것은 프리미티브(702)와 프리미티브(704) 둘 다의 각각의 부분을 혼합하는 것을 포함할 수 있다.
시나리오(700)의 하부로 이어지면, 영역 차이(706)에 기반하여 프리미티브(702)를 처리하기 위한 명령어가 생성된다. 따라서, 영역 차이(706)에 대한 픽셀 영역을 처리하는 것은 프리미티브(704)와 프리미티브(702)의 부분(708)을 처리하는 것을 제외한다.
시나리오(700)를 통해 생성되는 명령어는 가령 본원에서 논의되는 기술을 이용하여 프리미티브(702, 704)가 처리되어 디스플레이될 수 있도록, 실행을 위해 그래픽 처리기에 제출될 수 있다.
예시적인 실행 시나리오를 논의하였으며, 이제 하나 이상의 실시형태에 따라 예시적인 시스템 및 장치의 논의를 고려한다.
예시적인 시스템 및 장치
도 8은 본원에 설명되는 다양한 기술을 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 장치로 대표되는 예시적인 컴퓨팅 장치(802)를 포함하는 예시적인 시스템을 일반적으로 도면 부호 800으로 예시한다. 예를 들면, 도 1을 참조하여 위에서 논의된 컴퓨팅 장치(102)는 컴퓨팅 장치(802)로서 구체화될 수 있다. 컴퓨팅 장치(802)는, 예를 들면 서비스 제공자의 서버, 클라이언트와 관련된 장치(예를 들면, 클라이언트 장치), 온칩 시스템, 및/또는 임의의 다른 적절한 컴퓨팅 장치 또는 컴퓨팅 시스템일 수 있다.
예시된 바와 같은 예시적인 컴퓨팅 장치(802)는 처리 시스템(804), 하나 이상의 컴퓨터 판독 가능 매체(806), 및 서로 통신 가능하게 커플링되는 하나 이상의 입력/출력(I/O) 인터페이스(808)를 포함한다. 도시되지 않았지만, 컴퓨팅 장치(802)는 다양한 컴포넌트를 서로 커플링시켜주는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 더 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 범용 직렬 버스, 및/또는 처리기 또는 임의의 다양한 버스 아키텍쳐를 이용하는 로컬 버스와 같은 다른 버스 구조 중 임의의 하나 또는 조합을 포함할 수 있다. 또한, 제어 및 데이터 라인과 같은 다양한 다른 예가 구상가능하다.
처리 시스템(804)은 하드웨어를 사용하여 하나 이상의 연산들을 수행하는 기능으로 대표된다. 따라서, 처리 시스템(804)은 처리기, 기능 블록 등으로서 구성될 수 있는 하드웨어 요소(810)를 포함하는 것으로서 예시된다. 이것은 하나 이상의 반도체를 사용하여 형성되는 애플리케이션 특정 집적 회로 또는 다른 논리 장치로서의 하드웨어 내에서의 구현을 포함할 수 있다. 하드웨어 요소(810)는 형성되는 재료 또는 활용된 처리 매커니즘에 의해 제한되지 않는다. 예를 들면, 처리기는 반도체(들) 및/또는 트랜지스터[예를 들면, 전자 집적 회로(IC)]로 구성될 수 있다. 그러한 맥락에서, 처리기 실행 가능 명령어는 전자적으로 실행 가능한 명령어일 수 있다.
컴퓨터 판독 가능 매체(806)는 메모리/저장장치(812)를 포함하여 예시된다. 메모리/저장장치(812)는 하나 이상의 컴퓨터 판독 가능 매체와 관련된 메모리/저장장치 용량으로 대표된다. 메모리/저장장치(812)는 [랜덤 액세스 메모리(RAM)와 같은] 휘발성 매체 및/또는 [읽기 전용 메모리(ROM), 플래시 메모리, 광 디스크, 자기 디스크 등과 같은] 비휘발성 매체를 포함할 수 있다. 메모리/저장장치(812)는 착탈식 매체(예를 들면, 플래시 메모리, 착탈식 하드 드라이브, 광 디스크 등)뿐만 아니라 고정식 매체(예를 들면, RAM, ROM, 고정식 하드 드라이브 등)를 포함할 수 있다. 컴퓨터 판독 가능 매체(806)는 아래에서 더욱 설명되는 바와 같이 다양한 다른 방식으로 구성될 수 있다.
입력/출력 인터페이스(들)(808)는 사용자가 커맨드 및 정보를 컴퓨팅 장치(802)에 입력하고, 다양한 입력/출력 장치를 사용하여 정보가 사용자 및/또는 다른 컴포넌트 또는 장치에 전달되도록 하는 기능으로 대표된다. 입력 장치의 예는 키보드, 커서 제어 장치(예를 들면, 마우스), (예를 들면, 음성 인식 및/또는 음성 입력을 위한) 마이크로폰, 스캐너, 터치 기능(예를 들면, 물리적 터치를 감지하도록 구성되는 정전 용량형 또는 다른 센서), (예를 들면, 터치를 제스처로서 수반하지 않는 움직임을 감지하도록 가시적 또는 적외선 주파수와 같은 비가시적 파장을 사용할 수 있는) 카메라 등을 포함한다. 출력 장치의 예는 디스플레이 장치(예를 들면, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 응답 장치 등을 포함한다. 따라서, 컴퓨팅 장치(802)는 사용자 상호 작용을 지원하도록 아래에서 더 설명되는 바와 같이 다양한 방식으로 구성될 수 있다.
소프트웨어, 하드웨어 요소, 또는 프로그램 모듈의 일반적인 맥락으로 다양한 기술이 본원에 설명될 수 있다. 일반적으로, 그러한 모듈은 특정 작업을 수행하거나 또는 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 본원에서 사용되는 용어 "모듈", "기능", 및 "컴포넌트"는 일반적으로 소프트웨어, 펌웨어, 하드웨어, 또는 그 조합을 나타낸다. 본원에 설명되는 기술의 특징은 플랫폼 독립적인데, 이는 다양한 처리기를 갖는 다양한 상업용 컴퓨팅 플랫폼 상에서 본 기술이 구현될 수 있다는 것을 의미한다.
설명되는 모듈 및 기술의 구현은 일부 컴퓨터 판독 가능 매체 형태 상에 저장되거나 또는 이에 걸쳐 전송될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 장치(802)에 의해 액세스될 수 있는 다양한 매체를 포함할 수 있다. 제한적이지 않은 예를 들면, 컴퓨터 판독 가능 매체는 "컴퓨터 판독 가능 저장 매체" 및 "컴퓨터 판독 가능 신호 매체"를 포함할 수 있다.
"컴퓨터 판독 가능 저장 매체"는 단지 신호 전송, 반송파, 또는 신호 자체와는 대조적으로, 정보를 지속적으로 저장할 수 있는 매체 및/또는 장치를 지칭할 수 있다. 따라서, 컴퓨터 판독 가능 저장 매체는 신호 자체를 포함하지 않는다. 컴퓨터 판독 가능 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 논리 요소/회로, 또는 다른 데이터와 같은 정보의 저장을 위해 적절한 방법 또는 기술로 실행되는, 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체 및/또는 저장 장치와 같은 하드웨어를 포함한다. 컴퓨터 판독 가능 저장 매체의 예는 원하는 정보를 저장하기에 적절하고 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 다른 광 저장장치, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치, 또는 다른 저장 장치, 촉각 매체, 또는 제조물을 포함하지만, 이것에 제한되지 않는다.
"컴퓨터 판독 가능 신호 매체"는 가령 네트워크를 통해 컴퓨팅 장치(802)의 하드웨어에게 명령어를 전송하도록 구성되는 신호 함유(signal-bearing) 매체를 지칭할 수 있다. 신호 매체는 일반적으로 반송파, 데이터 신호, 또는 다른 전송 매커니즘과 같은, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 변조 데이터 신호 내의 다른 데이터를 포함할 수 있다. 또한, 신호 매체는 임의의 정보 전달 매체를 포함한다. 용어 "변조 데이터 신호"는 가령 신호 내의 정보를 부호화하는 방식으로 세팅되거나 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 제한적이지 않은 예를 들면, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체, 및 음향, 무선 주파수(RF), 적외선, 및 다른 무선 매체와 같은 무선 매체를 포함한다.
이전에 설명된 바와 같이, 하드웨어 요소(810) 및 컴퓨터 판독 가능 매체(806)는 본원에 설명되는 기술 중 적어도 일부 양태들을 구현하도록 일부 실시형태에서 사용될 수 있는, 하드웨어 형식으로 구현되는 명령어, 모듈, 프로그램 가능 장치 로직 및/또는 고정식 장치 로직을 대표한다. 하드웨어 요소는 집적 회로 또는 온칩 시스템, 애플리케이션 특정 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 복합 프로그램 가능 논리 장치(CPLD), 및 실리콘 또는 다른 하드웨어 장치 내의 다른 구현물들의 컴포넌트를 포함할 수 있다. 이러한 맥락으로, 하드웨어 요소는 실행용 명령어를 저장하는데 이용되는 하드웨어 장치, 예를 들면 이전에 설명된 컴퓨터 판독 가능 저장 매체뿐만 아니라, 하드웨어 요소에 의해 구체화되는 명령어, 모듈, 및/또는 로직에 의해 정의되는 프로그램 작업을 수행하는 처리 장치로서 작동할 수 있다.
또한, 이전에 언급한 것들의 조합이 본원에 설명되는 다양한 기술 및 모듈을 실행하는데 사용될 수 있다. 따라서, 소프트웨어, 하드웨어, 또는 프로그램 모듈 및 다른 프로그램 모듈은 일부 형식의 컴퓨터 판독 가능 저장 매체 상에서, 및/또는 하나 이상의 하드웨어 요소(810)에 의해 구현되는 하나 이상의 명령어 및/또는 로직으로서 실행될 수 있다. 컴퓨팅 장치(802)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령어 및/또는 기능을 실행하도록 구성될 수 있다. 따라서, 소프트웨어로서 컴퓨팅 장치(802)에 의해 실행 가능한 모듈의 실행은 하드웨어 내에서, 예를 들면 처리 시스템의 컴퓨터 판독 가능 저장 매체 및/또는 하드웨어 요소(810)의 사용을 통해 적어도 부분적으로 달성될 수 있다. 명령어 및/또는 기능은 본원에 설명되는 기술, 모듈, 및 예시를 실행하도록 하나 이상의 제조물[예를 들면, 하나 이상의 컴퓨팅 장치(802) 및/또는 처리 시스템(804)]에 의해 실행 가능/작동 가능할 수 있다.
도 8에서 또한 예시된 바와 같이, 예시적인 시스템(800)은 개인용 컴퓨터(PC), 텔레비전 장치, 및/또는 모바일 장치 상의 애플리케이션을 구동시킬 때, 끊김 없는 사용자 경험을 위해 유비쿼터스 환경이 가능하게 한다. 서비스 및 애플리케이션은 애플리케이션을 이용하고, 비디오 게임을 하고, 비디오 시청 등을 하는 동안, 하나의 장치로부터 다음 장치로 넘어갈 때, 공통 사용자 경험을 위해 3개의 모든 환경에서 실질적으로 유사하게 실행된다.
예시적인 시스템(800)에서, 다수의 장치는 중앙 컴퓨팅 장치를 통해 상호 연결된다. 중앙 컴퓨팅 장치는 다수의 장치에 로컬로 연결되거나 또는 다수의 장치로부터 원격으로 위치될 수 있다. 일 실시형태에서, 중앙 컴퓨팅 장치는 네트워크, 인터넷, 또는 다른 데이터 통신 링크를 통해 다수의 장치에 연결되는 하나 이상의 서버 컴퓨터의 클라우드일 수 있다.
일 실시형태에서, 이 상호 연결 아키텍쳐는 다수 장치의 사용자에게 공통의 또한 끊김 없는 경험을 제공하도록, 기능이 다수의 장치에 걸쳐 전달될 수 있게 한다. 다수의 장치 각각은 다른 물리적 필요조건 및 능력을 가질 수 있고, 중앙 컴퓨팅 장치는 장치에 맞춤화되고 또한 모든 장치들에 공통적인 경험을 장치에 전달가능하도록 해주는 플랫폼을 이용한다. 일 실시형태에서, 대상 장치의 클래스가 생성되고, 경험은 장치의 일반 클래스에 맞춤화된다. 장치의 클래스는 장치의 물리적 특징, 사용 타입, 또는 다른 공통 특성에 의해 정의될 수 있다.
다양한 실행에 있어서, 컴퓨팅 장치(802)는 가령 컴퓨터(814), 모바일(816), 및 텔레비전(818)에서의 사용을 위해 다양한 여러 구성을 상정할 수 있다. 이 구성 각각은 일반적으로 다른 구성 및 능력을 가질 수 있는 장치를 포함하므로, 컴퓨팅 장치(802)는 하나 이상의 다른 장치 클래스에 따라 구성될 수 있다. 예들 들면, 컴퓨팅 장치(802)는 개인용 컴퓨터, 데스크탑 컴퓨터, 멀티 스크린 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 장치의 컴퓨터(814) 클래스로서 실행될 수 있다.
컴퓨팅 장치(802)는 모바일폰, 휴대용 뮤직 플레이어, 휴대용 게임 장치, 태블릿 컴퓨터, 멀티 스크린 컴퓨터 등과 같은 모바일 장치를 포함하는 장치의 모바일(816) 클래스로서 실행될 수 있다. 또한, 컴퓨팅 장치(802)는 평상시의 시청 환경에서 일반적으로 큰 스크린을 갖거나 또는 큰 스크린에 연결되는 장치를 포함하는 장치의 텔레비전(818) 클래스로서 실행될 수 있다. 이 장치는 텔레비전, 셋탑 박스, 게임 콘솔 등을 포함한다.
본원에 설명되는 기술은 이 다양한 구성의 컴퓨팅 장치(802)에 의해 지원될 수 있고, 본원에 설명되는 기술의 특정 예시에 제한되지 않는다. 예를 들면, 그래픽 관리기 모듈(110)과 관련하여 논의된 기능은 아래에 설명되는 바와 같이 "클라우드"(820)에 걸쳐 플랫폼(822)을 통해서와 같이, 분산 시스템의 사용을 통해 모두 또는 부분적으로 실행될 수 있다.
클라우드(820)는 리소스(824)용 플랫폼(822)을 포함하거나 및/또는 리소스(824)용 플랫폼(822)을 대표한다. 플랫폼(822)은 클라우드(820)의 하드웨어(예를 들면, 서버) 및 소프트웨어 리소스의 기저 기능을 추상화한다. 리소스(824)는 컴퓨터 처리가 컴퓨팅 장치(802)로부터 원격에 있는 서버 상에서 실행되는 동안 이용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 또한, 리소스(824)는 인터넷에 걸쳐 및/또는 셀룰러 또는 와이파이 네트워크와 같은 가입자 네트워크를 통해 제공되는 서비스를 포함할 수 있다.
플랫폼(822)은 컴퓨팅 장치(802)를 다른 컴퓨팅 장치와 연결하도록 리소스 및 기능을 추상화할 수 있다. 또한, 플랫폼(822)은 플랫폼(822)을 통해 실행되는 리소스(824)에 대해, 당면하는 요구에 상응하는 레벨의 범위를 제공하도록 리소스의 범위를 추상화하는 역할을 할 수 있다. 따라서, 상호 연결된 장치의 실시형태에서, 본원에 설명되는 기능의 실행은 시스템(800)에 전반적으로 분산될 수 있다. 예를 들면, 기능은 클라우드(820)의 기능을 추상화하는 플랫폼(822)을 통해서 뿐만 아니라, 컴퓨팅 장치(802)의 일부에서 실행될 수 있다.
여기서는 본원에서 논의된 기술을 수행하기 위해 구현될 수 있는 다수의 방법들이 논의되었다. 방법의 양태들은 하드웨어, 펌웨어, 또는 소프트웨어 또는 그 조합으로 실행될 수 있다. 방법은 하나 이상의 장치에 의해 수행되는 연산들을 지정하는 스텝의 세트로서 도시되며, 각각의 블록에 의한 연산을 수행하기 위해 도시된 순서로 반드시 제한될 필요는 없다. 또한, 특정 방법과 관련하여 나타낸 연산은 하나 이상의 구현에 따라 결합되거나 및/또는 다른 방법의 작업과 상호 교환될 수 있다. 방법의 양태들은 환경(100)과 관련하여 위에서 논의된 다양한 실체 사이의 상호 작용을 통해 실행될 수 있다.
결론
다수의 프리미티브를 사용하는 그래픽 처리용 기술이 설명되었다. 실시형태가 구조적 특징 및/또는 방법론적인 작용에 특유적인 언어로 설명되었지만, 첨부된 청구범위에 정의되는 실시형태는 설명된 특정 특징 또는 작용으로 반드시 제한되지는 않는다는 것이 이해될 것이다. 오히려, 특정 특징 및 작용은 청구범위의 실시형태를 실행하는 예시적인 형식으로서 개시된다.

Claims (10)

  1. 하나 이상의 컴퓨터 판독 가능 저장 매체로서, 컴퓨팅 장치에 의한 실행에 응답하여, 상기 컴퓨팅 장치로 하여금,
    제 1 프리미티브가 제 2 프리미티브와 적어도 부분적으로 중첩된 것을 확인하는 동작,
    상기 제 1 프리미티브에 대한 픽셀 영역과 상기 제 2 프리미티브에 대한 픽셀 영역 사이의 차이를 결정하는 동작,
    상기 제 1 프리미티브와 상기 제 2 프리미티브의 기저 부분의 조합이 상기 제 1 프리미티브에 대한 픽셀 영역에 기반하여 처리될 것을 지정하는 제 1 처리 명령어를 생성하는 동작,
    상기 제 2 프리미티브가 상기 제 1 프리미티브에 대한 픽셀 영역과 상기 제 2 프리미티브에 대한 픽셀 영역 사이의 차이에 기반하여 처리될 것을 지정하는 제 2 처리 명령어를 생성하는 동작, 및
    그래픽 처리기에 의한 실행을 위해 상기 제 1 처리 명령어 및 상기 제 2 처리 명령어를 제출하는 동작
    을 포함하는 동작들을 수행하게 하는 명령어들이 저장되어 있는 하나 이상의 컴퓨터 판독 가능 저장 매체.
  2. 제 1 항에 있어서,
    상기 확인 동작은, 상기 제 2 프리미티브의 적어도 일부분과 중첩된 상기 제 1 프리미티브의 적어도 일부분을 결정하도록, 상기 제 1 프리미티브 및 상기 제 2 프리미티브를 특성화(characterize)하기 위해 공간 데이터 구조를 사용하는 것인, 하나 이상의 컴퓨터 판독 가능 저장 매체.
  3. 제 1 항에 있어서,
    상기 제 1 프리미티브에 대한 픽셀 영역과 상기 제 2 프리미티브에 대한 픽셀 영역 사이의 차이를 결정하는 동작은,
    상기 제 2 프리미티브와 중첩하는 상기 제 1 프리미티브에 대한 픽셀 영역이 문턱 복잡도를 충족시키거나 또는 초과하는지 여부를 결정하는 동작,
    상기 제 2 프리미티브와 중첩하는 상기 제 1 프리미티브에 대한 픽셀 영역이 상기 문턱 복잡도를 충족시키지 않거나 초과하지 않으면, 상기 컴퓨팅 장치의 중앙 처리 유닛(CPU)에게 상기 차이를 계산하기 위한 요청을 제출하는 동작, 및
    상기 제 2 프리미티브와 중첩하는 상기 제 1 프리미티브에 대한 픽셀 영역이 상기 문턱 복잡도를 충족시키거나 초과하면, 그래픽 처리 유닛(GPU)에게 상기 차이를 계산하기 위한 요청을 제출하는 동작
    을 포함한 것인, 하나 이상의 컴퓨터 판독 가능 저장 매체.
  4. 제 1 항에 있어서,
    상기 동작들은, 상기 제 1 프리미티브의 하나 이상의 불투명 픽셀들이 상기 제 2 프리미티브의 하나 이상의 픽셀들과 중첩하면, 상기 제 2 프리미티브의 하나 이상의 픽셀들이 처리되지 않을 것을 지정하도록 상기 제 1 처리 명령어를 수정하는 동작을 포함한 것인, 하나 이상의 컴퓨터 판독 가능 저장 매체.
  5. 장치로서,
    적어도 하나의 처리기, 및
    적어도 하나의 처리기에 의한 실행에 응답하여, 상기 장치로 하여금 동작들을 수행하게 하는 명령어들이 저장되어 있는 하나 이상의 컴퓨터 판독 가능 저장 매체
    를 포함하고, 상기 동작들은,
    적어도 하나의 프리미티브가 특정 픽셀 영역에서 하나 이상의 다른 프리미티브들과 적어도 부분적으로 중첩한다는 것을 결정하는 동작,
    상기 적어도 하나의 프리미티브와 상기 하나 이상의 다른 프리미티브들의 적어도 일부분이 디스플레이를 위한 단일 프리미티브로 결합되도록, 상기 적어도 하나의 프리미티브와 상기 하나 이상의 다른 프리미티브들이 함께 처리될 것을 지정하는 처리 명령어들을 생성하는 단계, 및
    상기 처리 명령어들을 상기 적어도 하나의 처리기와는 별개의 그래픽 처리 기능부에게 제출하는 동작
    을 포함한 것인, 장치.
  6. 제 5 항에 있어서,
    상기 생성 동작은, 처리 동안, 메모리로의 중간 기록과는 독립적으로, 상기 단일 프리미티브가 단일 기록 동작을 통해 메모리에 기록될 것을 지정하는 처리 명령어들을 생성하는 동작을 포함한 것인, 장치.
  7. 제 5 항에 있어서,
    상기 생성 동작은, 상기 단일 프리미티브에 적용될 하나 이상의 시각적 효과를 지정하는 처리 명령어들을 생성하는 동작을 포함하고,
    상기 하나 이상의 시각적 효과는 자르기, 불투명화, 음영화, 또는 에일리어싱 제거 프로시저 중 적어도 하나의 프로시저를 포함한 것인, 장치.
  8. 제 5 항에 있어서,
    상기 생성 동작은, 상기 적어도 하나의 프리미티브의 적어도 하나의 픽셀들이 불투명하면, 상기 적어도 하나의 프리미티브의 하나 이상의 픽셀들과 중첩된 상기 하나의 이상의 다른 프리미티브들의 하나 이상의 픽셀들이 처리되지 않을 것을 지정하는 처리 명령어들을 생성하는 동작을 포함한 것인, 장치.
  9. 제 5 항에 있어서,
    상기 동작들은, 상기 하나 이상의 다른 프리미티브들과 중첩된 상기 적어도 하나의 프리미티브에 대한 픽셀 영역과, 상기 적어도 하나의 프리미티브와 중첩되지 않은 상기 하나 이상의 다른 프리미티브들에 대한 픽셀 영역 사이의 차이를 결정하는 동작을 포함하고, 상기 생성 동작은,
    상기 적어도 하나의 프리미티브와 상기 하나 이상의 다른 프리미티브들의 기저 부분의 조합이 상기 적어도 하나의 프리미티브에 대한 픽셀 영역에 기반하여 처리될 것을 지정하는 제 1 처리 명령어를 생성하는 동작, 및
    상기 하나 이상의 다른 프리미티브들과 중첩된 상기 적어도 하나의 프리미티브에 대한 픽셀 영역과, 상기 적어도 하나의 프리미티브와 중첩되지 않은 상기 하나 이상의 다른 프리미티브들에 대한 픽셀 영역 사이의 차이에 기반하여 상기 하나 이상의 다른 프리미티브들이 처리될 것을 지정하는 제 2 처리 명령어를 생성하는 동작
    을 포함한 것인, 장치.
  10. 제 9 항에 있어서,
    상기 하나 이상의 다른 프리미티브들과 중첩된 상기 적어도 하나의 프리미티브에 대한 픽셀 영역과, 상기 적어도 하나의 프리미티브와 중첩되지 않은 상기 하나 이상의 다른 프리미티브들에 대한 픽셀 영역 사이의 차이를 결정하는 동작은,
    상기 하나 이상의 다른 프리미티브들과 중첩된 상기 적어도 하나의 프리미티브에 대한 픽셀 영역이 문턱 복잡도를 충족시키거나 또는 초과하는지 여부를 결정하는 단계,
    상기 하나 이상의 다른 프리미티브들과 중첩된 상기 적어도 하나의 프리미티브에 대한 픽셀 영역이 문턱 복잡도를 충족시키지 않거나 또는 초과하지 않으면, 상기 차이를 계산하기 위해 상기 적어도 하나의 처리기를 이용하는 동작, 및
    상기 하나 이상의 다른 프리미티브들과 중첩된 상기 적어도 하나의 프리미티브에 대한 픽셀 영역이 문턱 복잡도를 충족시키거나 또는 초과하면, 상기 차이를 계산하기 위한 요청을 상기 그래픽 처리 기능부에게 제출하는 동작
    을 포함한 것인, 장치.
KR1020157025328A 2013-03-14 2014-03-11 다수의 프리미티브들을 사용하는 그래픽 처리 KR102213727B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/804,329 US20140267327A1 (en) 2013-03-14 2013-03-14 Graphics Processing using Multiple Primitives
US13/804,329 2013-03-14
PCT/US2014/022891 WO2014159299A1 (en) 2013-03-14 2014-03-11 Graphics processing using multiple primitives

Publications (2)

Publication Number Publication Date
KR20150130307A true KR20150130307A (ko) 2015-11-23
KR102213727B1 KR102213727B1 (ko) 2021-02-05

Family

ID=50625068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157025328A KR102213727B1 (ko) 2013-03-14 2014-03-11 다수의 프리미티브들을 사용하는 그래픽 처리

Country Status (6)

Country Link
US (2) US20140267327A1 (ko)
EP (1) EP2973413B1 (ko)
JP (1) JP6364066B2 (ko)
KR (1) KR102213727B1 (ko)
CN (1) CN105051788B (ko)
WO (1) WO2014159299A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives
US10002404B2 (en) * 2015-04-15 2018-06-19 Mediatek Singapore Pte. Ltd. Optimizing shading process for mixed order-sensitive and order-insensitive shader operations
US10140268B2 (en) * 2015-08-27 2018-11-27 Qualcomm Innovation Center, Inc. Efficient browser composition for tiled-rendering graphics processing units
CN110751706B (zh) * 2019-10-29 2024-03-22 网易(杭州)网络有限公司 游戏中的图形处理方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149148A (ja) * 1996-11-21 1998-06-02 Fuji Xerox Co Ltd 画像処理装置
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
JP2007114924A (ja) * 2005-10-19 2007-05-10 Matsushita Electric Ind Co Ltd 多重描画装置
KR20090082907A (ko) * 2006-10-23 2009-07-31 퀄컴 인코포레이티드 그래픽 프로세싱 유닛에서의 3차원 클리핑
JP2009278468A (ja) * 2008-05-15 2009-11-26 Canon Inc 画像処理方法及び画像処理装置とその制御方法
JP2010527077A (ja) * 2007-05-07 2010-08-05 クゥアルコム・インコーポレイテッド レンダリング後のグラフィックスオーバーレイ
USRE42287E1 (en) * 1998-03-17 2011-04-12 Pixar Stochastic level of detail in computer animation
JP2012163621A (ja) * 2011-02-03 2012-08-30 Panasonic Corp 端末装置および画像処理方法
JP2013504131A (ja) * 2009-09-03 2013-02-04 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 非同期タスクディスパッチを可能にする処理ユニット

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6720964B1 (en) * 1998-08-27 2004-04-13 Ati International Srl Method and apparatus for processing portions of primitives that are being rendered
US7168048B1 (en) * 1999-03-24 2007-01-23 Microsoft Corporation Method and structure for implementing a layered object windows
US7362332B2 (en) 2002-06-20 2008-04-22 Nvidia Corporation System and method of simulating motion blur efficiently
JP3966832B2 (ja) * 2003-04-28 2007-08-29 株式会社東芝 描画処理装置、及び、描画処理方法
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
ATE383627T1 (de) * 2004-11-19 2008-01-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zur erzeugung dreidimensionaler bilder
JP4614389B2 (ja) * 2005-05-27 2011-01-19 キヤノン株式会社 画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラム
US8081184B1 (en) 2006-05-05 2011-12-20 Nvidia Corporation Pixel shader program thread assembly
US8111260B2 (en) 2006-06-28 2012-02-07 Microsoft Corporation Fast reconfiguration of graphics pipeline state
US9058792B1 (en) * 2006-11-01 2015-06-16 Nvidia Corporation Coalescing to avoid read-modify-write during compressed data operations
US8537168B1 (en) * 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8004522B1 (en) * 2007-08-07 2011-08-23 Nvidia Corporation Using coverage information in computer graphics
KR101574279B1 (ko) 2008-04-04 2015-12-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 앤티 엘리어싱을 위한 필터링 방법 및 장치
US8259111B2 (en) 2008-05-30 2012-09-04 Advanced Micro Devices, Inc. Merged shader for primitive amplification
US8825660B2 (en) * 2009-03-17 2014-09-02 Ebay Inc. Image-based indexing in a network-based marketplace
US8339653B2 (en) 2009-03-30 2012-12-25 Sharp Laboratories Of America, Inc. Methods and systems for rendering data based on overlap characteristics
US8922555B2 (en) 2009-10-07 2014-12-30 Nvidia Corporation Pixel shader output map
US8561038B1 (en) * 2009-12-31 2013-10-15 Google Inc. High performance execution environment
US9405773B2 (en) * 2010-03-29 2016-08-02 Ebay Inc. Searching for more products like a specified product
US8949252B2 (en) * 2010-03-29 2015-02-03 Ebay Inc. Product category optimization for image similarity searching of image-based listings in a network-based publication system
US8861844B2 (en) * 2010-03-29 2014-10-14 Ebay Inc. Pre-computing digests for image similarity searching of image-based listings in a network-based publication system
US8773448B2 (en) * 2010-04-09 2014-07-08 Intel Corporation List texture
US8493404B2 (en) 2010-08-24 2013-07-23 Qualcomm Incorporated Pixel rendering on display
US8854383B2 (en) 2011-04-13 2014-10-07 Qualcomm Incorporated Pixel value compaction for graphics processing
CN102496169A (zh) * 2011-11-30 2012-06-13 威盛电子股份有限公司 重迭对象的绘制方法及装置
US9087409B2 (en) * 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149148A (ja) * 1996-11-21 1998-06-02 Fuji Xerox Co Ltd 画像処理装置
USRE42287E1 (en) * 1998-03-17 2011-04-12 Pixar Stochastic level of detail in computer animation
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
JP2007114924A (ja) * 2005-10-19 2007-05-10 Matsushita Electric Ind Co Ltd 多重描画装置
KR20090082907A (ko) * 2006-10-23 2009-07-31 퀄컴 인코포레이티드 그래픽 프로세싱 유닛에서의 3차원 클리핑
JP2010527077A (ja) * 2007-05-07 2010-08-05 クゥアルコム・インコーポレイテッド レンダリング後のグラフィックスオーバーレイ
JP2009278468A (ja) * 2008-05-15 2009-11-26 Canon Inc 画像処理方法及び画像処理装置とその制御方法
JP2013504131A (ja) * 2009-09-03 2013-02-04 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 非同期タスクディスパッチを可能にする処理ユニット
JP2012163621A (ja) * 2011-02-03 2012-08-30 Panasonic Corp 端末装置および画像処理方法

Also Published As

Publication number Publication date
WO2014159299A1 (en) 2014-10-02
US20180260930A1 (en) 2018-09-13
US11069020B2 (en) 2021-07-20
EP2973413B1 (en) 2017-04-19
CN105051788A (zh) 2015-11-11
JP6364066B2 (ja) 2018-07-25
KR102213727B1 (ko) 2021-02-05
JP2016517574A (ja) 2016-06-16
CN105051788B (zh) 2018-03-30
US20140267327A1 (en) 2014-09-18
EP2973413A1 (en) 2016-01-20

Similar Documents

Publication Publication Date Title
US20170282074A1 (en) Multiple Frame Distributed Rendering of Interactive Content
US9715750B2 (en) System and method for layering using tile-based renderers
TWI603286B (zh) 在螢幕上顯示3d場景圖的方法
US11069020B2 (en) Graphics processing using multiple primitives
CN105518742A (zh) 用于图形处理的任意控制点处的容错抢占机制
JP6230076B2 (ja) 仮想サーフェス割り当て
US10957107B2 (en) Snapping, virtual inking, and accessibility in augmented reality
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
CN108846791B (zh) 物理模型的渲染方法、装置及电子设备
US9721380B2 (en) Removing redundant volumetric information from a volume-based data representation
US9424814B2 (en) Buffer display techniques
US10290134B2 (en) Coverage based approach to image rendering using opacity values
US9384589B2 (en) Anti-aliasing for geometries
US10755459B2 (en) Object painting through use of perspectives or transfers in a digital medium environment
US11551391B2 (en) Digital image dynamic shadow generation
US10579812B2 (en) 3D digital content interaction and control
US20140035915A1 (en) Single pass radiosity from depth peels
CN111782333A (zh) 游戏中的界面显示方法、装置、存储介质与终端设备

Legal Events

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