KR20110050630A - Gpu 장면 컴포지션 및 애니메이션 - Google Patents

Gpu 장면 컴포지션 및 애니메이션 Download PDF

Info

Publication number
KR20110050630A
KR20110050630A KR1020117002305A KR20117002305A KR20110050630A KR 20110050630 A KR20110050630 A KR 20110050630A KR 1020117002305 A KR1020117002305 A KR 1020117002305A KR 20117002305 A KR20117002305 A KR 20117002305A KR 20110050630 A KR20110050630 A KR 20110050630A
Authority
KR
South Korea
Prior art keywords
information
texture
animation
texture information
graph
Prior art date
Application number
KR1020117002305A
Other languages
English (en)
Other versions
KR101618389B1 (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 KR20110050630A publication Critical patent/KR20110050630A/ko
Application granted granted Critical
Publication of KR101618389B1 publication Critical patent/KR101618389B1/ko

Links

Images

Classifications

    • 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
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • 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
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

장면 컴포지션 및 애니메이션을 전적으로 그래픽 처리 유닛(GPU) 상에서 실행될 수 있는 형태로 표현하는 아키텍처가 제공된다. 아키텍처는 보유된 그래프 정보(예를 들어, 장면 그래프 및 애니메이션 정보)를 텍스처 정보로서 저장하고, 시간 정보를 평가하고 애니메이션을 평가하고 변형을 평가하고 경로를 래스터화하기 위해 셰이더들(예를 들어, 정점 및 픽셀)을 이용한다. 또한, 아키텍처는 애니메이션 위치들을 컴퓨팅하고, 프리미티브마다의 CPU 개입없이 전적으로 GPU 상에서 리드로잉하는 능력을 제공한다.

Description

GPU 장면 컴포지션 및 애니메이션{GPU SCENE COMPOSITION AND ANIMATION}
컴퓨팅 장치 및 시스템의 중앙 처리 유닛(CPU)은, 애플리케이션 및 데이터가 점점 더 다양해짐에 따라 점점 더 복잡한 프로세스들을 다루도록 점점 더 많은 압력을 받고 있다. 이에 따라, 벤더들은 신호 처리, 그래픽 처리, 산업적 제어 시스템 등을 위한 것과 같이 특정한 애플리케이션에 대해 특수화된 프로세서들을 설계 및 제공하여 왔다.
컴퓨터 그래픽을 이용하는 많은 애플리케이션들은 그래픽 처리를 위해 CPU에 과도한 요구를 할 수 있다. 대부분의 그래픽 애플리케이션에서 처리가 공유되어, 작업의 일부는 CPU를 이용하여 수행되고, 작업의 일부는 그래픽 처리 유닛(GPU)에 전달된다. 고전적으로, 머신 그래픽은 CPU 상에서 구현되었다. 벤더들은 이제 GPU 상에 점점 더 많은 양의 메모리 및 처리 능력을 설계하고 있다. 동시에, 컴퓨팅 벤더들은 부분적으로는 멀티코어 CPU를 구현함으로써 이러한 문제를 다루고 있다.
최신의 사용자 인터페이스 시나리오에서, 장면(scene) 내의 시각적 요소(visual element)들의 수가 증가하고 있다. 10000 내지 50000개의 시각적 요소를 생성하는 애플리케이션을 갖는 것은 드문 일이 아니다. 그러한 시나리오에 대하여 고속의 디스플레이 및 애니메이션을 생성하는 것이 도전과제가 되고 있다. GPU 계산은 상당히 더 많은 병렬처리(parallelism), 더 양호한 메모리 대역폭, 및 그래픽 동작들을 위한 특수화된 하드웨어로 CPU 기반 그래픽 계산을 능가한다. 그러나, 종래의 GPU는 그래픽 처리 컴포넌트로서 제한된다.
이하에서는 여기에 설명되는 일부 신규한 실시예들의 기본적인 이해를 제공하기 위해 간단한 개요가 제공된다. 이러한 개요는 광범위한 개괄이 아니며, 핵심적인/중요한 요소들을 식별하거나 또는 그들의 범위를 정하도록 의도된 것이 아니다. 그것의 유일한 목적은 이하에 제시되는 보다 더 상세한 설명에 대한 서론으로서 일부 개념들을 간략한 형태로 제공하는 것이다.
개시된 아키텍처는 장면 컴포지션 및 애니메이션을, 전적으로 그래픽 처리 유닛(GPU) 상에서 실행될 수 있는 형태로 표현한다. 아키텍처는 장면 그래프 및 애니메이션 정보를 텍스처(texture) 정보로서 저장하고, 시간 정보를 평가(evaluate)하고 애니메이션을 평가하고 변형(transform)을 평가하고 경로를 래스터화하기 위해 셰이더들(예를 들어, 정점 및 픽셀)을 이용한다. 즉, 애니메이션 정보 및 계층적 장면 그래프 정보를 텍스처들로 저장하는 능력이 개시된다. 또한, 아키텍처는 애니메이션 위치들을 컴퓨팅하고, 프리미티브마다의 CPU 개입(per primitive CPU intervention)없이 전적으로 GPU 상에서 리드로잉(redrawing)하는 능력을 제공한다.
상기한 것 및 관련된 목적들을 달성하기 위해, 일부 예시적인 양태들이 이하의 상세한 설명 및 첨부 도면들에 관련하여 여기에 설명된다. 이러한 양태들은 여기에 개시된 원리들이 실시될 수 있는 다양한 방법들을 나타낸 것으로, 이들의 모든 양태들 및 균등물들은 청구되는 발명의 주제의 범위 내에 드는 것으로 의도된다. 다른 이점들 및 신규한 특징들은 이하의 상세한 설명을 도면들과 함께 고찰하면 분명해질 것이다.
도 1은 GPU 상에서 장면 및 애니메이션 정보를 처리하기 위한 그래픽 처리 시스템을 도시한 것이다.
도 2는 GPU를 통해 장면 및 애니메이션 정보를 처리하기 위한 그래픽 처리 시스템의 보다 상세한 예를 도시한 것이다.
도 3은 GPU 내의 장면 컴포지션 및 애니메이션을 제공하기 위한 흐름/블록도를 도시한 것이다.
도 4는 그래픽 처리 방법을 도시한 것이다
도 5는 GPU 상에서 장면 컴포지션 및 애니메이션을 처리하는 방법을 도시한 것이다.
도 6은 도 5의 방법에서의 각 프레임에 대한 추가 처리의 방법을 도시한 것이다.
도 7은 개시된 아키텍처에 따라 GPU 내에서 보유된 그래프 정보를 실행하도록 동작할 수 있는 컴퓨팅 시스템의 블록도를 도시한 것이다.
개시된 아키텍처는 일반적인 장면 그래프 API 시스템을 취하고, 그래픽 처리 유닛(GPU)을 통해 수행되는 작업을 스택 내에서 더 높게 이동시켜, 장면 그래프 자체가 비디오 메모리에 저장되어 GPU에 의해 평가되게 하며, 애니메이션 시스템도 텍스처 메모리에 저장되어 GPU에 의해 평가되게 한다. 이에 의해, 요소마다의 CPU 비용(per element CPU costs)이 제거된다. 예를 들어, 요소마다의 CPU 비용에 관하여, 백만개의 요소를 고려해보자. 종래의 방법들에서는, 백만개의 요소 각각에 대하여 렌더링 처리를 반복하고 수행하는 소정의 CPU 작업이 존재한다. 그리고, GPU는 그 렌더링 처리의 소정의 다른 부분을 수행한다.
여기에 설명되는 구현이 더 흔한 셰이더 기반 컴퓨팅 모델을 이용하긴 하지만, 아키텍처는 GPU를 표적으로 하고 고전적인 그래픽 파이프라인 셰이더 모델에 기초하지 않는 범용 컴퓨팅 모델을 이용하여서도 구현될 수 있으며, 적절한 API를 이용할 수 있다.
개시된 아키텍처에서, 장면 그래프 내의 요소들의 수는 CPU 작업의 관점에서 중요하지 않다. 소정 횟수의 드로우 호출(draw call)을 하도록 드라이버를 호출하기 위해 행해지는 CPU 작업이 있을 수 있다. 그러나, 장면 그래프가 구성된 후, 장면 처리는 요소마다의 CPU 작업을 이용하지 않는다. 프리미티브마다의 작업(per primitive work)은 GPU에 의해 수행되고, 이것은 여러 자릿수만큼(several orders of magnitude) 높은 확장성(scalability)으로 이어진다. 실시간 애니메이션에 대한 전통적인 한계는 CPU 작업이 관여될 때 1000 또는 10000개의 요소일 수 있다. 이 작업을 GPU로 오프로드하면, 예를 들어 100000 내지 500000개의 요소가 관여될 수 있다. 따라서, GPU에서의 병렬 처리 능력에 기초하여, 여러 자릿수만큼의 확장성 향상이 실현된다. 장면 그래프 및 애니메이션 시스템을 오프로드하는 것에 의해, GPU의 병렬처리 능력으로부터 이득이 얻어질 수 있고, 따라서 프레임마다 드로잉될 수 있는 프리미티브의 수에 관하여 상당히 더 높은 스케일을 달성할 수 있다.
이하에서는 전반적으로 유사한 참조번호들이 유사한 구성요소를 참조하기 위해 이용되는 도면들이 참조된다. 이하의 설명에서, 완벽한 이해를 제공하기 위해 설명의 목적으로 다수의 구체적인 상세가 제시된다. 그러나, 신규한 실시예들은 이러한 구체적인 상세없이도 실시될 수 있는 것이 명백할 수 있다. 다른 경우들에서, 설명을 용이하게 하기 위해, 잘 알려진 구조 및 장치들이 블록도 형태로 도시된다. 청구되는 발명의 주제의 취지 및 범위 내에 드는 모든 수정들, 균등물들 및 대안들을 포함하는 것으로 의도된다.
도 1은 GPU 상에서 장면 및 애니메이션 정보를 처리하기 위한 그래픽 처리 시스템(100)을 도시한 것이다. 시스템(100)은 보유된(retained) 그래프 정보(104)를 보유된 그래프 텍스처 정보(106)로 변환하기 위한 텍스처 컴포넌트(102), 및 보유된 그래프 텍스처 정보(106)를 전적으로 GPU를 통해 평가하기 위한 셰이더 컴포넌트(108)를 포함한다.
셰이더 컴포넌트(108)는 예를 들어 장면 그래프 변형들(scene graph transforms)을 평가하고 경로들(paths)을 래스터화하기 위해, 하나 이상의 픽셀 셰이더, 하나 이상의 정점 셰이더, 하나 이상의 지오메트릭 셰이더, 및/또는 하나 이상의 스트림 프로세서를 포함할 수 있다. 보유된 그래프 텍스처 정보(106)는 텍스처 정보로서 저장된 타이밍 정보, 텍스처 정보로서 저장된 위치 정보, 및/또는 텍스처 정보로서 저장된 애니메이션 정보를 포함할 수 있다. 셰이더 컴포넌트(108)는 변형 계층(transform hierarchy)의 복수의 레벨들을 작성(composing)하기 위한 픽셀 셰이더, 및 변형들을 지오메트리에 적용하기 위한 정점 셰이더를 포함한다.
도 2는 GPU(202)를 통해 장면 및 애니메이션 정보를 처리하기 위한 그래픽 처리 시스템(200)(예를 들어, 메인보드에 통합된, 메인보드에의 부속 카드 등)의 더 상세한 예를 도시한 것이다. 그래픽 처리 시스템(200)은 그래픽 처리에 연관된 프로그램 및 데이터를 저장하기 위한 메모리 서브시스템(204)에 더 연관될 수 있다. 메모리 서브시스템(204)은 GPU 전용인 별도의 메모리, 또는 CPU에도 연관된 메모리를 나타낼 수 있다. 예를 들어, 메모리 서브시스템(204)은 보유된 그래프 텍스처 정보(106)의 생성(저장)을 위한 텍스처 컴포넌트(102)로의 입력으로서, 보유된 그래프 정보(104)를 포함할 수 있다. 도시된 바와 같이, 보유된 그래프 텍스처 정보(106)는 시간 정보(206), 애니메이션 정보(208) 및 변형 정보(210)를 포함한다. 텍스처 컴포넌트(102)는 보유된 그래프 정보(104)를 보유된 그래프 텍스처 정보(106)로서의 텍스처 데이터로 저장(또는 생성)하며, 그에 의해 시간 텍스처 정보(212), 애니메이션 텍스처 정보(214) 및 변형 텍스처 정보(216)를 야기한다.
GPU(202)는 또한 원하는 효과를 출력하기 위해, 보유된 그래프 텍스처 정보(106)의 셰이더 처리를 위한 셰이더 컴포넌트(108)를 포함할 수 있다. 셰이더 컴포넌트(108)는 적합한 프로토콜들 및 명령어들을 이용하여 사용자가 원하는 대로, 하나 이상의 픽셀 셰이더(218), 하나 이상의 정점 셰이더(220), 하나 이상의 지오메트릭 셰이더(222) 및 기타 셰이더들을 위해 셰이더 처리를 제공하는 것으로서 도시된다. 하나 이상의 픽셀 셰이더(218), 하나 이상의 정점 셰이더(220), 하나 이상의 지오메트릭 셰이더(222) 등은 시간 텍스처 정보(212), 애니메이션 텍스처 정보(214) 및 변형 텍스처 정보(216)를 처리하기 위해 이용된다. 이것은 이하에 더 상세하게 설명된다.
그래픽 처리 시스템(200)이 입력 및 출력, 처리 등을 GPU 아키텍처가 구현되는 메인보드 프로세스(예를 들어, CPU), 다른 클라이언트 머신 또는 장치들에 제공하기 위한 다른 컴포넌트 및 기능성(224)도 포함한다는 점에 유의해야 한다.
즉, 그래픽 처리 시스템(200)은 보유된 그래프 정보(104)를 보유된 그래프 텍스처 정보(106)로 변환하기 위한 GPU(202) 내의 텍스처 컴포넌트(102), 시간 정보를 시간 텍스처 정보로서 평가하기 위한 GPU(202)의 픽셀 셰이더(들)(218) 중 하나, 및 변형 컴포지션을 변형 텍스처 정보로서 평가하기 위한 GPU(202)의 픽셀 셰이더 및 정점 셰이더(들)(220) 중 하나 이상을 포함할 수 있다.
보유된 그래프 텍스처 정보(106)는 시간 텍스처 정보(212), 애니메이션 텍스처 정보(214) 및 변형 텍스처 정보(216)를 포함하며, 이들은 모두 전적으로 GPU(202) 상에서 평가된다. 픽셀 세이더(들)(218) 중 하나는 애니메이션 텍스처 정보(214) 및 프로그레스(progress) 텍스처 정보(이하에 설명됨)를 평가하기 위해 이용될 수 있다. 즉, 픽셀 셰이더는 변형들의 계층을 평가하고, 정점 셰이더는 결과적인 변형들을 경로 정점 데이터에 적용한다. 시스템(200)은 경로를 래스터화(226)하기 위한 셰이더를 더 포함한다. 정점 셰이더(들)(220)는 변형 계층구조 및 경로 정점 데이터를 더 평가한다. 이것은 이하에 설명된다.
도 3은 GPU 내의 장면 컴포지션 및 애니메이션을 제공하기 위한 흐름/블록도(300)를 도시한 것이다. 둥글게 된 블록들은 텍스처 메모리에 저장된 대응하는 텍스처 데이터를 나타낸다. 각진(cornered) 블록들은 GPU 상에서 이용될 수 있는 셰이더들(예를 들어, 픽셀, 정점, 지오메트릭)을 나타낸다.
도면(300)은 타이밍 텍스처 정보(212)로서 저장되는 타이밍 정보에서 시작한다. 타이밍 정보는 타이밍 텍스처 정보(212)로 변환되어 하나 이상의 픽셀 셰이더(302)에 입력되는 타이밍 트리로서 표현될 수 있다. (도 2의 픽셀 셰이더(들)(218)와 유사한) 픽셀 셰이더(들)(302)의 출력은 프로그레스 텍스처 정보(304)로서 저장된 프로그레스 정보를 포함한다. 그 다음, 프로그레스 텍스처 정보(304)는 애니메이션 텍스처 정보(214)로서 저장된 애니메이션 정보와 함께 하나 이상의 픽셀 셰이더(들)(306)에 전달된다.
입력 애니메이션 정보는 예를 들어 시간 5에서 시작하여 5초 동안 계속되는 것을 나타내는 타이밍 정보(예를 들어, 부모 정보)를 갖는 요소들의 그래프일 수 있다. 부모 타이밍 정보에 기초하는 자식 타이밍 설명(child timing description)은 부모에 대하여 시간 0에서 시작하고, 1초 동안 계속된 후, 계속적으로 반복하는 것일 수 있다. 타이밍 또는 변형이 트리인 경우, 일반적인 경우에서 복수의 패스(pass)가 수행된다. 셰이더는 단일 패스에서 일정한 깊이(constant depth)만을 평가할 수 있다. 가장 일반적인 경우에서, k 레벨마다 1회의 셰이더 패스가 존재할 수 있으며, 여기에서 k는 상수이다.
시간 설명의 출력은 주어진 시점에서의 프로그레스에 기초하는 증분적인 출력들일 수 있다. 예를 들어, 애니메이션이 5초에서 시작하고 1초 동안 계속되는 경우, 5.5초에서 출력은 0.5이며, 이는 프로그레스가 애니메이션의 중간에 있음을 나타낸다.
하나 이상의 픽셀 셰이더(들)(302)로의 입력으로서의 타이밍 트리는 본질적으로, 시간을 애니메이션 프로세스를 따르는 프로그레스에 맵핑한다. 타이밍 텍스처 정보(212)는 프로그레스를 결정하기 위해 타이밍 트리를 평가하는 것에 관한 것이다. 프로그레스가 평가되고 나면, 프로그레스 텍스처 정보(304)로 무엇을 할 것인지를 나타내는 애니메이션 설명이 존재한다. 예를 들어, 적색으로부터 청색으로 애니메이트할 것을 나타내는 컬러 애니메이션이 존재할 수 있고, 프로그레스가 0.5(중간)인 경우, 보라색의 중간 컬러가 현재의 특성 값으로서 출력될 수 있다. 다른 예들은 불투명도를 0으로부터 1로 애니메이트하는 것에 관련된 값들을 포함한다. 0.5의 프로그레스는 중간 불투명도에 맵핑한다. 다른 애니메이션은, 개체가 좌표 (0, 0)부터 (100, 100)까지에 의해 정의되는 경로를 따라 이동할 때, 그 개체의 위치에서 애니메이션이 수행되는 포인트 애니메이션이며, 0.5의 프로그레스는 좌표 (50, 50)까지의 위치 이동에 관련된다. 더 복잡한 예는 스플라인 키 프레임 설명(spline key frame description)을 포함하는데, 여기에서 스플라인 평가는 프로그레스를 위치에 어떻게 맵핑할 것인지 등을 결정하기 위해 스플라인을 평가하는 것을 포함한다. 스플라인들은 또한 상이한 애니메이션 패턴들을 위한 튜플 또는 컬러와 같은 간단한 값들에 대해서도 이용될 수 있다.
(도 2의 픽셀 셰이더(들)(218)와 유사한) 하나 이상의 픽셀 셰이더(들)(306)를 이용하는 애니메이션 평가의 다음 스테이지는 (애니메이션에 대한 프로그레스를 기술하는) 프로그레스 결과를 취하고, 애니메이션에 대한 함수의 설명(컬러 보간, 포인트 보간, 더블 보간 등)을 수신하고, 프로그레스에 기초하여 그 보간을 수행하는 것을 포함한다. 즉, 애니메이션 평가 픽셀 셰이더(들)(306)는 프로그레스 값 및 보간 설명을 (애니메이션 텍스처 정보로서) 취하고, 컴퓨팅된 값으로 보간한다. 도시된 바와 같이, 각 단계는 입력 텍스처 정보를 취하고, 후속 스테이지를 위한 텍스처 정보를 출력한다.
애니메이션 평가 스테이지(픽셀 셰이더(들)(306))의 출력은 (도 2의 정점 셰이더(들)(220)와 유사한) 하나 이상의 정점 셰이더(들)(310)를 이용하는 다음 스테이지, 즉 변형 컴포지션을 위하여, 컴퓨팅된 변형 정보, 불투명도 정보, 컬러 정보, 위치 정보(308) 등을 포함하는, GPU에 의해 생성된 비디오 메모리(예를 들어, 도 2의 메모리 서브시스템(204)의 일부 또는 전부) 내의 텍스처이다. 따라서, 타이밍 텍스처 정보(212)는 프로그레스 텍스처 정보(304)를 생성하기 위해 픽셀 셰이더(들)(302)를 이용하고, 그 다음, 픽셀 셰이더(들)(306)는 애니메이션 변형 불투명도 및 컬러 텍스처(308)를 생성하기 위해 텍스처들을 샘플링한다. 지금까지, 이것은 모두 픽셀 셰이더들을 이용하여 수행되어 왔다. 다음 스테이지는 이것을 프리미티브들에 적용한다. 정점 셰이더(들)(310)는 또한 입력 변형 계층구조 평가 결과들(312)을 텍스처 정보로서, 그리고 경로 정점 데이터(314)를 텍스처 정보로서 수신한다.
정점 셰이더(들)(310)의 출력은 변형된 정점 데이터(316)이다. 정점 셰이더(들)(310)는 이전 스테이지로부터의 컴퓨팅된 애니메이션 데이터 및 장면 그래프 데이터를 적용하기 위해 이용된다. 컬러 변경이 있는 경우, 정점 셰이더(들)(310)는 정점 컬러 데이터의 컬러를 변경하고, 또는 정점 셰이더(들)(310)는 불투명도를 정점 데이터마다(per vertex data)의 컬러와 승산함으로써 불투명도를 변경한다. 대안적으로, 정점 셰이더(들)(310)는 정점 데이터마다의 위치 성분을 이전 스테이지의 결과로부터 수신된 입력과 승산함으로써 위치를 변경한다. 변형된 정점 데이터(316)가 획득되고 나면, (도 2의 경로 래스터화(226)와 유사한) 최종 장면 래스터화(320)를 출력하기 위해, 픽셀 셰이더(들)(318)를 이용하여 경로 래스터화가 수행된다.
이하는 개시되는 아키텍처의 신규한 양태들을 수행하기 위한 예시적인 방법론들을 나타내는 일련의 플로우차트이다. 설명을 간단히 하기 위해, 예를 들어 플로우차트 또는 흐름도의 형태로 여기에 도시된 하나 이상의 방법론들은 일련의 액트(act)들로서 도시되고 설명되지만, 그에 따른 일부 액트들은 여기에 도시되고 설명된 것과 다른 액트들과 동시에 및/또는 다른 순서로 발생할 수 있으므로, 방법론들은 액트들의 순서에 의해 제한되지 않음을 이해하고 알아야 한다. 예를 들어, 본 기술분야에 지식을 가진 자들은, 방법론이 대안적으로 상태도에서와 같이 일련의 상호관련된 상태들 또는 이벤트들로서 표현될 수 있음을 이해하고 알 것이다. 또한, 방법론에 설명된 모든 액트들이 신규한 구현을 위해 요구되는 것은 아닐 수도 있다.
도 4는 그래픽 처리 방법을 도시한 것이다. 단계(400)에서, 보유된 그래프 정보는 보유된 그래프 텍스처 정보로 변환된다. 단계(402)에서, 보유된 그래프 텍스처 정보는 픽셀 셰이더 및 정점 셰이더를 이용하여 GPU 상에서 평가된다.
방법은, 보유되는 그래프 텍스처 정보의 일부로서 애니메이션 및 계층적 장면 그래프 정보를 저장하는 것과, 픽셀 셰이더를 이용하여 프로그레스 텍스처 정보 및 애니메이션 텍스처 정보를 처리하는 것을 더 포함할 수 있다.
방법은, 픽셀 셰이더를 이용하여 경로 래스터화를 수행하는 것과, 변형 계층구조, 경로 정점 데이터, 및 컴퓨팅된 애니메이션 변형, 위치, 불투명도 및 컬러 텍스처 정보를 평가하는 것을 더 포함할 수 있다. 방법은 프로그레스 텍스처 정보를 출력하기 위해, 픽셀 셰이더를 이용하여 타이밍 텍스처 정보를 처리하는 것을 더 포함할 수 있다. 방법은 타이밍 노드 정보를 제1 텍스처로, 애니메이션 노드 정보를 제2 텍스처로, 장면 그래프 변형의 설명을 제3 텍스처로 저장하는 것과, 최종 장면 래스터화를 수행하기 위해, 타이밍 노드 정보, 애니메이션 노드 정보 및 장면 그래프 변형의 설명을 처리하는 것을 더 포함할 수 있다.
도 5는 GPU 상에서 장면 컴포지션 및 애니메이션을 처리하는 방법을 도시한 것이다. 단계(500)에서, 타이밍 노드의 설명은 텍스처 T로 저장된다. 단계(502)에서, 애니메이션 노드들의 설명은 텍스처 A로 저장된다. 단계(504)에서, 장면 그래프 변형의 설명은 텍스처 X로 저장된다. 계층구조를 표현하기 위해, 텍스처는 부모 요소로의 텍스처 유닛을 포함하는 부모 포인트를 가질 수 있다. 단계(506)에서, 테셀레이션(tessellation)과 같은 표현을 이용하여 형상들을 표현하는 정점 데이터가 정점 버퍼에 저장된다. 표현이 전적으로 GPU에서 변형될 수 있는 한, 어떤 표현이든 이용될 수 있다. 단계(508)에서, 각 프레임마다 추가의 처리가 수행된다.
도 6은 도 5의 방법에서의 각 프레임에 대한 추가 처리의 방법을 도시한 것이다. 이하의 단계들은 각 프레임마다 수행된다. 단계(600)에서, 정점 셰이더 상수는 현재 시간에 동일하게 설명된다. 단계(602)에서, 텍스처 T로부터의 타이밍 노드 정보를 풀(pull)하는 타이밍 노드 픽셀 셰이더를 이용하여 드로우가 수행된다. 단계(604)에서, 타이밍 프로그레스가 컴퓨팅된다. 단계(606)에서, 출력은 새로운 렌더 타겟 텍스처로의 것이다. 단계(608)에서, 다음 레벨을 위한 부모 입력으로서 이전에 컴퓨팅된 정보를 이용하여, 타이밍 트리의 각 레벨마다 단계(602, 604 및 606)가 반복된다. 단계(610)에서, 변형, 컬러, 위치 및 불투명도 값을 출력하기 위해, 텍스처 T로부터의 타이밍 정보 및 텍스처 A로부터의 애니메이션 설명을 풀하는 애니메이션 노드 픽셀 셰이더로 드로우가 수행된다. 단계(612)에서, 계층적 변형들에 대하여, 변형 계층구조의 각 레벨에 대하여 단계(610)가 반복된다. 단계(614)에서, 애니메이션 결과 렌더 타겟 텍스처로부터 컴퓨팅된 변형, 불투명도, 위치 및 컬러 값을 풀하는 정점 셰이더로 드로잉될 모든 프리미티브를 포함하는 정점 버퍼가 드로잉된다.
본 출원에서 사용될 때, "컴포넌트" 및 "시스템"이라는 용어는 하드웨어든, 하드웨어와 소프트웨어의 조합이든, 소프트웨어든, 또는 실행중인 소프트웨어든, 컴퓨터 관련 엔터티를 언급하도록 의도된 것이다. 예를 들어, 컴포넌트는 프로세서에서 실행중인 프로세스, 프로세서, 하드디스크 드라이브, (광 및/또는 자기 저장 매체의) 복수의 저장 드라이브, 개체, 실행파일, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만 이에 제한되는 것은 아니다. 예를 들어, 서버에서 실행중인 애플리케이션과 그 서버 둘다 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 컴포넌트는 한 컴퓨터에 로컬라이즈될 수 있고/있거나 둘 이상의 컴퓨터 간에 분산될 수 있다. "예시적인(exemplary)"이라는 단어는 여기에서 예(example), 사례(instance) 또는 실례(illustration)의 역할을 함을 의미하도록 사용될 수 있다. 여기에서 "예시적인" 것으로서 설명된 임의의 양태 또는 설계가 반드시 다른 양태들 또는 설계들에 비하여 선호되거나 유리한 것으로 해석되어서는 안 된다.
이제 도 7을 참조하면, 개시된 아키텍처에 따라 GPU 내에서 보유된 그래프 정보를 실행하도록 동작할 수 있는 컴퓨팅 시스템(700)의 블록도가 도시되어 있다. 도 7 및 이하의 논의는 다양한 양태들을 위한 추가의 맥락을 제공하기 위하여, 다양한 양태들이 구현될 수 있는 적합한 컴퓨팅 시스템(700)의 간략하고 개괄적인 설명을 제공하도록 의도된 것이다. 위의 설명은 일반적으로 하나 이상의 컴퓨터에서 실행될 수 있는 컴퓨터 실행가능 명령어들의 맥락에서 기술되지만, 당업자라면, 신규한 실시예는 다른 프로그램 모듈들과 조합하여 및/또는 하드웨어와 소프트웨어의 조합으로서도 구현될 수 있음을 인식할 것이다.
일반적으로, 프로그램 모듈들은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자라면, 본 발명의 방법들이 각각 하나 이상의 관련 장치들에 동작상 연결될 수 있는 퍼스널 컴퓨터, 핸드-헬드형 컴퓨팅 장치, 마이크로프로세서 기반 또는 프로그램가능한 가전제품뿐만 아니라, 단일 프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성으로 실시될 수 있음을 알 것이다.
설명된 양태들은 통신 네트워크를 통해 연결된 원격 처리 장치들에 의해 소정의 태스크들이 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치 둘 다에 위치될 수 있다.
컴퓨터는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 이용가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하기 위해 사용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다.
다시 도 7을 보면, 다양한 양태들을 구현하기 위한 예시적인 컴퓨팅 시스템(700)은 처리 장치(704), 시스템 메모리(706), 및 시스템 버스(708)를 갖는 컴퓨터(702)를 포함한다. 시스템 버스(708)는 시스템 메모리(706)를 포함하지만 그에 제한되지는 않는 시스템 컴포넌트들을 위하여 처리 장치(704)에 대한 인터페이스를 제공한다. 처리 장치(704)는 상용화되어 있는 각종 프로세서들 중 어느 것이라도 가능하다. 듀얼 마이크로프로세서 및 기타 멀티프로세서 아키텍처도 처리 장치(704)로서 이용될 수 있다.
시스템 버스(708)는 메모리 버스(메모리 컨트롤러를 갖거나 갖지 않음), 주변 장치 버스, 및 상용화되어 있는 각종 버스 아키텍처들 중 임의의 것을 이용하는 로컬 버스에 더 상호접속될 수 있는 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 시스템 메모리(706)는 비휘발성 메모리(NON-VOL)(710) 및/또는 휘발성 메모리(712)(예를 들어, 랜덤 액세스 메모리(RAM))를 포함할 수 있다. 기본 입출력 시스템(BIOS)은 비휘발성 메모리(710)(예를 들어, ROM, EPROM, EEPROM 등)에 저장될 수 있는데, 이 BIOS는 시동 중과 같은 때에 컴퓨터(702) 내의 구성요소들 간의 정보 전송을 돕는 기본적인 루틴이다. 휘발성 메모리(712)는 데이터를 캐싱하기 위한 정적 RAM과 같은 고속 RAM도 포함할 수 있다.
컴퓨터(702)는 내장 하드디스크 드라이브(HDD)(714)(예를 들어, EIDE, SATA)를 포함하는데, 이 내장 HDD(714)는 적합한 섀시 내에서 외장용으로, (예를 들어, 이동식 디스켓(718)으로부터 판독하거나 그에 기입하는) 자기 플로피 디스크 드라이브(FDD)(716)를 위해, 및 (CD-ROM 디스크(722)를 판독하거나, DVD와 같은 기타 대용량 광 매체로부터 판독하거나 그에 기입하는) 광 디스크 드라이브(720)를 위해 구성될 수도 있다. HDD(714), FDD(716) 및 광 디스크 드라이브(720)는 각각 HDD 인터페이스(724), FDD 인터페이스(726) 및 광 드라이브 인터페이스(728)에 의해 시스템 버스(708)에 접속될 수 있다. 외장 드라이브 구현을 위한 HDD 인터페이스(724)는 USB(Universal Serial Bus) 및 IEEE1394 인터페이스 기술 중 적어도 하나 또는 둘다를 포함할 수 있다.
드라이브들 및 관련된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어 등의 비휘발성 저장을 제공한다. 컴퓨터(702)에 대하여, 드라이브들 및 매체들은 적합한 디지털 포맷으로 된 임의의 데이터의 저장을 수용한다. 상기의 컴퓨터 판독가능 매체에 관한 설명이 HDD, 이동식 자기 디스켓(예를 들어, FDD), 및 CD 또는 DVD와 같은 이동식 광 매체를 언급하지만, 당업자라면, 집 드라이브, 자기 카세트, 플래시 메모리 카드, 카트리지 등과 같이 컴퓨터에 의해 판독될 수 있는 다른 유형의 매체들도 예시적인 운영 환경에서 사용될 수 있으며, 또한 그러한 임의의 매체는 개시된 아키텍처의 신규한 방법들을 수행하기 위한 컴퓨터 실행가능 명령어들을 포함할 수 있음을 알 것이다.
운영 체제(730), 하나 이상의 애플리케이션 프로그램(732), 기타 프로그램 모듈(734), 및 프로그램 데이터(736)를 포함하는 다수의 프로그램 모듈이 드라이브들 및 휘발성 메모리(712)에 저장될 수 있다. 또한, 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 일부가 휘발성 메모리(712)에 캐싱될 수 있다. 개시된 아키텍처는 상용화되어 있는 각종 운영 체제, 또는 운영 체제들의 조합으로 구현될 수 있음을 알 것이다.
사용자는 하나 이상의 유무선 입력 장치, 예를 들어 키보드(738) 및 마우스(740)와 같은 포인팅 장치를 통해 컴퓨터(702)에 커맨드 및 정보를 입력할 수 있다. 다른 입력 장치들(도시되지 않음)은 마이크로폰, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린 등을 포함할 수 있다. 여기에 개시된 것과 그 이외의 입력 장치들은 주로 시스템 버스(708)에 연결된 입력 장치 인터페이스(742)를 통해 처리 장치(704)에 접속되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 기타 인터페이스들에 의해서도 접속될 수 있다.
모니터(744) 또는 다른 유형의 디스플레이 장치도 비디오 어댑터(746)와 같은 인터페이스를 통해 시스템 버스(708)에 접속된다.
비디오 어댑터(746)는 시스템(100), 시스템(200), 흐름/블록도(300)에 관련하여 설명된 능력들 및 기능, 및 도 4 내지 도 6에서 설명된 방법들을 포함할 수 있다. 대안적으로 또는 그와 함께, 컴퓨터(702)는, 그래픽 처리 기능부가 그 위에 제조되며 이 경우에서는 시스템(100), 시스템(200), 흐름/블록도(300)에 관련하여 설명된 능력들 및 기능, 및 도 4 내지 도 6에서 설명된 방법들을 포함할 수 있는 메인보드(마더보드라고도 칭해짐)를 포함한다.
전형적으로, 컴퓨터는 모니터(744) 이외에, 스피커, 프린터 등과 같은 기타 주변 출력 장치들(도시되지 않음)을 포함한다.
컴퓨터(702)는 원격 컴퓨터(들)(748)와 같은 하나 이상의 원격 컴퓨터로의 유선 및/또는 무선 통신을 통한 논리적 접속을 이용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(748)는 워크스테이션, 서버 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대형 컴퓨터, 마이크로프로세서 기반 엔터테인먼트 기기, 피어 장치 또는 기타 공통 네트워크 노드일 수 있으며, 간략함을 위하여 메모리/저장 장치(750)만이 도시되었지만, 전형적으로는 컴퓨터(702)에 관하여 기술된 구성요소들 중의 다수 또는 전부를 포함한다. 도시된 논리적 접속은 LAN(local area network)(752), 및/또는 예를 들어 WAN(wide area network)(754)인 더 큰 네트워크로의 유선/무선 접속을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 흔한 것이며, 인트라넷들과 같은 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 하며, 이들 모두는 예를 들어 인터넷과 같은 글로벌 통신 네트워크에 접속될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(702)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(756)를 통해 LAN(752)에 접속된다. 어댑터(756)는 어댑터(756)의 무선 기능성과 통신하기 위하여 배치된 무선 액세스 포인트를 또한 포함할 수 있는 LAN(752)으로의 유선 및/또는 무선 통신을 용이하게 할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(702)는 모뎀(758)을 포함하거나, WAN(754) 상의 통신 서버에 접속되거나, 또는 인터넷에 의한 것과 같이 WAN(754)을 통한 통신을 확립하기 위한 기타 수단을 갖는다. 내장형 또는 외장형, 그리고 유산 및/또는 무선 장치일 수 있는 모뎀(758)은 입력 장치 인터페이스(742)를 통해 시스템 버스(708)에 접속된다. 네트워크화된 환경에서, 컴퓨터(702)에 관련하여 도시된 프로그램 모듈들 또는 그 일부는 원격 메모리/저장 장치(750)에 저장될 수 있다. 도시된 네트워크 접속들은 예시적인 것이며, 컴퓨터들 간에 통신 링크를 확립하기 위한 기타 수단이 이용될 수 있음을 알 것이다.
컴퓨터(702)는, 예를 들어 프린터, 스캐너, 데스크탑 및/또는 휴대형 컴퓨터, PDA(personal digital assistant), 통신 위성, 무선 검출가능 태그에 관련된 위치 또는 장비의 임의의 부분(예를 들어, 키오스크, 신문 가판대, 화장실), 및 전화와의 무선 통신에 동작가능하게 배치된 무선 장치와 같이, IEEE 802 표준군(예를 들어, IEEE 802.11 오버-디-에어 변조 기술)을 이용하는 유선 및 무선 장치 또는 엔터티들과 통신하도록 동작할 수 있다. 이것은 적어도 Wi-Fi(Wireless Fidelity), WiMax 및 Bluetooth™ 무선 기술들을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나, 단순히 적어도 두 개의 장치 간의 애드혹 통신일 수 있다. Wi-Fi 네트워크는 안전하고 신뢰가능하며 빠른 무선 접속성을 제공하기 위하여 IEEE 802.11x(a, b, g 등)이라고 칭해지는 무선 기술들을 이용한다. Wi-Fi 네트워크는 컴퓨터들을 상호 접속하거나, 인터넷 및 (IEEE 802.3 관련 매체 및 기능들을 이용하는) 유선 네트워크에 접속하는 데에 이용될 수 있다.
위에 기술된 것은 개시된 아키텍처의 예시들을 포함한다. 컴포넌트들 및/또는 방법론들의 모든 인지가능한 조합을 기술하는 것은 당연히 불가능하지만, 본 기술분야에 통상의 지식을 가진 자라면, 많은 다른 조합들 및 변경들이 가능함을 인식할 수 있을 것이다. 따라서, 신규한 아키텍처는 첨부된 특허청구범위의 취지 및 범위 내에 드는 그러한 모든 변경, 수정 및 변형을 포용하도록 의도된다. 또한, "포함한다(include)"라는 용어가 상세한 설명이나 특허청구범위에서 사용되는 한, 그 용어는 "포함한다(comprising)"는 용어가 청구항의 전이구로서 이용될 때 해석되는 것과 유사한 방식으로 포괄적인 것으로 의도된다.

Claims (15)

  1. 그래픽 처리 시스템(100)으로서,
    보유된(retained) 그래프 정보를 보유된 그래프 텍스처 정보로 변환하기 위한 텍스처 컴포넌트(102); 및
    상기 보유된 그래프 텍스처 정보를 전적으로(entirely) 그래픽 처리 유닛(GPU) 상에서 평가(evaluating)하기 위한 셰이더 컴포넌트(108)
    를 포함하는 그래픽 처리 시스템.
  2. 제1항에 있어서,
    상기 셰이더 컴포넌트는 시간 텍스처 정보를 평가하기 위한 픽셀 셰이더를 포함하는 그래픽 처리 시스템.
  3. 제1항에 있어서,
    상기 셰이더 컴포넌트는 변형들(transforms)의 변형 계층구조의 복수의 레벨을 작성(composing)하기 위한 픽셀 셰이더, 및 지오메트리로 변형들을 작성하기 위한 정점 셰이더를 포함하는 그래픽 처리 시스템.
  4. 제1항에 있어서,
    상기 보유된 그래프 텍스처 정보는 시간 텍스처 정보로서 저장된 시간 정보를 포함하는 그래픽 처리 시스템.
  5. 제1항에 있어서,
    상기 보유된 그래프 텍스처 정보는 애니메이션 텍스처 정보로서 저장된 애니메이션 정보를 포함하는 그래픽 처리 시스템.
  6. 제1항에 있어서,
    상기 보유된 그래프 텍스처 정보는 변형 텍스처 정보로서 저장된 변형 정보를 포함하는 그래픽 처리 시스템.
  7. 제1항에 있어서,
    상기 셰이더 컴포넌트는 장면 그래프 변형들을 평가하는 그래픽 처리 시스템.
  8. 제1항에 있어서,
    상기 셰이더 컴포넌트는 경로(path)들을 래스터화하는 그래픽 처리 시스템.
  9. 그래픽을 처리하는 방법으로서,
    보유된 그래프 정보를 보유된 그래프 텍스처 정보로 변환하는 단계(400); 및
    상기 보유된 그래프 텍스처 정보를 픽셀 셰이더들 및 정점 셰이더들을 이용하여 GPU 상에서 평가하는 단계(402)
    를 포함하는 그래픽 처리 방법.
  10. 제9항에 있어서,
    애니메이션 및 계층적 장면 그래프 정보를 상기 보유된 그래프 텍스처 정보의 일부로서 저장하는 단계를 더 포함하는 그래픽 처리 방법.
  11. 제9항에 있어서,
    상기 픽셀 셰이더를 이용하여 프로그레스 텍스처 정보 및 애니메이션 텍스처 정보를 처리하는 단계를 더 포함하는 그래픽 처리 방법.
  12. 제9항에 있어서,
    상기 픽셀 셰이더를 이용하여 경로 래스터화를 수행하는 단계를 더 포함하는 그래픽 처리 방법.
  13. 제9항에 있어서,
    변형 계층구조, 경로 정점 데이터, 및 계산된 애니메이션 변형들, 위치들, 불투명도 및 컬러 텍스처 정보를 평가하는 단계를 더 포함하는 그래픽 처리 방법.
  14. 제9항에 있어서,
    프로그레스(progress) 텍스처 정보를 출력하기 위해, 상기 픽셀 셰이더를 이용하여 타이밍 텍스처 정보를 처리하는 단계를 더 포함하는 그래픽 처리 방법.
  15. 제9항에 있어서,
    타이밍 노드 정보를 제1 텍스처로, 애니메이션 노드 정보를 제2 텍스처로, 그리고 장면 그래프 변형들의 설명(description)을 제3 텍스처로 저장하고, 최종 장면 래스터화를 수행하기 위해, 상기 타이밍 노드 정보, 애니메이션 노드 정보 및 장면 그래프 변형들의 설명을 처리하는 단계를 더 포함하는 그래픽 처리 방법.
KR1020117002305A 2008-08-04 2009-07-31 Gpu 장면 컴포지션 및 애니메이션 KR101618389B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/185,114 2008-08-04
US12/185,114 US8274516B2 (en) 2008-08-04 2008-08-04 GPU scene composition and animation

Publications (2)

Publication Number Publication Date
KR20110050630A true KR20110050630A (ko) 2011-05-16
KR101618389B1 KR101618389B1 (ko) 2016-05-04

Family

ID=41607867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117002305A KR101618389B1 (ko) 2008-08-04 2009-07-31 Gpu 장면 컴포지션 및 애니메이션

Country Status (6)

Country Link
US (1) US8274516B2 (ko)
EP (1) EP2308224B1 (ko)
JP (1) JP5384636B2 (ko)
KR (1) KR101618389B1 (ko)
CN (1) CN102113303B (ko)
WO (1) WO2010017113A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331331B2 (en) 2014-11-07 2019-06-25 Samsung Electronics Co., Ltd. Display device and method of controlling display device

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2109304A1 (en) * 2008-04-07 2009-10-14 Océ-Technologies B.V. Color management method, module, and program product, and printer ussing said method
US9058675B2 (en) * 2010-05-29 2015-06-16 Intel Corporation Non-volatile storage for graphics hardware
US20130063460A1 (en) * 2011-09-08 2013-03-14 Microsoft Corporation Visual shader designer
US8872838B2 (en) * 2011-09-09 2014-10-28 Microsoft Corporation Primitive composition
US9530245B2 (en) * 2011-12-29 2016-12-27 Qualcomm Incorporated Packing multiple shader programs onto a graphics processor
TWI606418B (zh) * 2012-09-28 2017-11-21 輝達公司 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法
CN104517309B (zh) * 2013-10-08 2018-08-24 博雅网络游戏开发(深圳)有限公司 帧循环中的动画处理方法和装置
CN104244087B (zh) * 2014-09-19 2018-05-01 青岛海信移动通信技术股份有限公司 一种视频渲染的方法及设备
CN104820497B (zh) * 2015-05-08 2017-12-22 东华大学 一种基于增强现实的3d交互显示系统
CN107644446B (zh) * 2016-07-21 2019-03-15 腾讯科技(深圳)有限公司 一种动画纹理实现方法及图形处理设备
CN108198236B (zh) * 2017-11-29 2021-05-14 腾讯科技(深圳)有限公司 数据显示方法和装置、存储介质及电子装置
CN109814970B (zh) * 2019-01-22 2021-09-10 西安电子科技大学 一种基于OpenGL-ES的动态进度条绘制方法
CN114090101A (zh) * 2020-08-05 2022-02-25 宝能汽车集团有限公司 开机动画的处理方法、装置、车辆、设备和存储介质
CN112489183A (zh) * 2020-11-26 2021-03-12 北京邮电大学 基于Unity3D的骨骼动画渲染方法及系统
CN112767518B (zh) * 2020-12-22 2023-06-06 北京淳中科技股份有限公司 虚拟动画特效制作方法、装置及电子设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6215495B1 (en) 1997-05-30 2001-04-10 Silicon Graphics, Inc. Platform independent application program interface for interactive 3D scene management
US6243856B1 (en) 1998-02-03 2001-06-05 Amazing Media, Inc. System and method for encoding a scene graph
US6266053B1 (en) 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content
US6487565B1 (en) 1998-12-29 2002-11-26 Microsoft Corporation Updating animated images represented by scene graphs
US6512522B1 (en) * 1999-04-15 2003-01-28 Avid Technology, Inc. Animation of three-dimensional characters along a path for motion video sequences
US6707456B1 (en) 1999-08-03 2004-03-16 Sony Corporation Declarative markup for scoring multiple time-based assets and events within a scene composition system
JP4038434B2 (ja) * 2001-05-14 2008-01-23 株式会社ネットディメンション 情報配信システム及び情報配信方法
JP2002369076A (ja) * 2001-06-11 2002-12-20 Matsushita Electric Ind Co Ltd 3次元特殊効果装置
US6919891B2 (en) 2001-10-18 2005-07-19 Microsoft Corporation Generic parameterization for a scene graph
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7126606B2 (en) 2003-03-27 2006-10-24 Microsoft Corporation Visual and scene graph interfaces
KR20050036722A (ko) 2003-10-14 2005-04-20 삼성전자주식회사 3차원 객체 그래픽 처리장치 및 3차원 신 그래프 처리장치
US7219085B2 (en) * 2003-12-09 2007-05-15 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit
US20070070077A1 (en) * 2005-09-26 2007-03-29 Silicon Integrated Systems Corp. Instruction removing mechanism and method using the same
US7728841B1 (en) * 2005-12-19 2010-06-01 Nvidia Corporation Coherent shader output for multiple targets
JP4594892B2 (ja) * 2006-03-29 2010-12-08 株式会社東芝 テクスチャマッピング装置、方法およびプログラム
US7836087B1 (en) * 2006-06-09 2010-11-16 Pixar Graphs of components for digital productions
US20080024510A1 (en) * 2006-07-27 2008-01-31 Via Technologies, Inc. Texture engine, graphics processing unit and video processing method thereof
US7551176B2 (en) 2006-08-24 2009-06-23 Via Technologies, Inc. Systems and methods for providing shared attribute evaluation circuits in a graphics processing unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331331B2 (en) 2014-11-07 2019-06-25 Samsung Electronics Co., Ltd. Display device and method of controlling display device

Also Published As

Publication number Publication date
JP5384636B2 (ja) 2014-01-08
WO2010017113A2 (en) 2010-02-11
WO2010017113A3 (en) 2010-05-06
EP2308224A4 (en) 2013-06-05
EP2308224A2 (en) 2011-04-13
US20100026700A1 (en) 2010-02-04
CN102113303B (zh) 2015-06-03
JP2011530136A (ja) 2011-12-15
US8274516B2 (en) 2012-09-25
CN102113303A (zh) 2011-06-29
KR101618389B1 (ko) 2016-05-04
EP2308224B1 (en) 2019-03-06

Similar Documents

Publication Publication Date Title
US8274516B2 (en) GPU scene composition and animation
CN105849780B (zh) 平铺块式基础架构上的经优化多遍次再现
JP5232358B2 (ja) アウトラインフォントのレンダリング
US9916674B2 (en) Baking path rendering objects into compact and efficient memory representations
US10089774B2 (en) Tessellation in tile-based rendering
KR101071073B1 (ko) 퀵 픽셀 렌더링 프로세싱
US7394464B2 (en) Preshaders: optimization of GPU programs
US10068370B2 (en) Render-time linking of shaders
US7928984B1 (en) Efficient data packaging for rendering bézier curves on a GPU
JP6325756B2 (ja) 単一パスの表面スプラッティング
US20130300656A1 (en) Hit testing of visual objects
CN111279384B (zh) 图形流水线中的索引的压缩和解压缩
KR20180060198A (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
KR102659643B1 (ko) 레지던시 맵 디스크립터
Prévost et al. A vectorial framework for ray traced diffusion curves
WO2021183545A1 (en) Graphics processing unit render mode selection system
JP2017062789A (ja) グラフィックス処理装置、及びテクスチャリングのためのlodを決定する方法
US9275487B1 (en) System and method for performing non-affine deformations
JP4847226B2 (ja) 画像生成装置
US11030792B1 (en) System and method for packing sparse arrays of data while preserving order
Huang et al. Scalable programmable motion effects on GPUs
JP5606632B2 (ja) ジオモーフィング装置
Lindström Smooth silhouette rendering of low polygon models for computer games
János Graphic Cards in Radio Reconnaissance: The GPGPU Technology

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4