KR20020015973A - 그래픽 시스템용 재순환 쉐이드 트리 블렌더 - Google Patents

그래픽 시스템용 재순환 쉐이드 트리 블렌더 Download PDF

Info

Publication number
KR20020015973A
KR20020015973A KR1020010050975A KR20010050975A KR20020015973A KR 20020015973 A KR20020015973 A KR 20020015973A KR 1020010050975 A KR1020010050975 A KR 1020010050975A KR 20010050975 A KR20010050975 A KR 20010050975A KR 20020015973 A KR20020015973 A KR 20020015973A
Authority
KR
South Korea
Prior art keywords
texture
color
data
shader
blend
Prior art date
Application number
KR1020010050975A
Other languages
English (en)
Inventor
드레빈로버트에이.
반후크티모시제이.
로우패트릭와이.
레더마크엠
컴스도에프트매튜
Original Assignee
야마우치 히로시
닌텐도가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 야마우치 히로시, 닌텐도가부시키가이샤 filed Critical 야마우치 히로시
Publication of KR20020015973A publication Critical patent/KR20020015973A/ko

Links

Classifications

    • 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
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Abstract

종래 그래픽 및 오디오 프로세서를 포함한 그래픽 시스템은 흥미로운 2D 및 3D 그래픽 및 서라운드 사운드를 생성하고, 3D 그래픽 파이프라인을 포함한 그래픽 및 오디오 프로세서 및 오디오 디지털 신호 프로세서를 포함하며, 멀티텍스쳐링을 실현하기 위해 종래의 그래픽 렌더링 시스템은 일반적으로 다중 렌더링 패스에 의존하고, 추가적인 칩 영역을 차지하고 메모리 중재 문제를 악화시키는 다중 직렬/병렬 텍스쳐-검색/프로세싱 회로를 요구하여, 이 문제점을 해결하고 향상된 멀티텍스쳐링 성능 레퍼토리를 제공하기 위해서 비교적 낮은 칩 밑넓이의 TEV(versatile texture environment) 프로세싱 서브시스템은 다중 텍스쳐 블렌드/쉐이딩 사이클(스테이지)상에서 게산된 컬러 및 알파 데이터를 계산하는 하드웨어-가속된 프로그래밍가능한 텍스쳐 블렌더/쉐이더 구성 및 유동적 API를 이용하여 파이프라인된 그래픽 시스템에서 구현되고, 상기 텍스쳐 환경 서브시스템은 포깅(fogging) 및 최종 픽셀 블렌드에 앞서 계산된 픽셀 컬러를 형성하기 위해 꼭지점단위 조명, 텍스쳐 및 일정한(래스터된) 컬러를 결합하며, 컬러(RGB)와 알파 성분에 대한 블렌드 동작은 다중 텍스쳐를 결합하기 위해 다중 프로세싱 스테이지상에서 재사용되는 한 세트의 컬러/알파-결합기(쉐이더) 하드웨어로 구성된 단일 서브블렌드 유닛에 의해 TEV 서브시스템내에서 독립적으로 처리되고, 모든 스테이지 사이에서 공유되는 4개 선택가능한 현재 컬러 입출력 레지스터의 세트는 임시적으로 계산된 컬러 결과를 저장하고 스테이지 사이에서 계산된 컬러를 통과시키기 위해 서브블렌드 유닛의 출력에 제공되며, 블렌드 스테이지 연상에서의 변수는 4개 현재 컬러 레지스터, 래스터된 컬러(확산 또는 반사), 텍스쳐, 상기 컬러의 알파 성분, 및 0 또는 1에서 선택될 수 있고, 블렌드 동작 체인을 형성하는 최대 16개 독립적으로 프로그래밍가능한 연소적 스테이지는 단일 렌더링 패스에서 다중 텍스쳐를 단일 객체에 인가하기 위해 지원되는 것을 특징으로 한다.

Description

그래픽 시스템용 재순환 쉐이드 트리 블렌더{RECIRCULATING SHADE TREE BLENDER FOR A GRAPHICS SYSTEM}
본 출원은 그 전체 내용이 본 출원서에서 참조로 구체화된 2000년 8월 23일 제출된 미국 가특허출원 제60/226,888호의 이익을 청구한다. 본 출원은 동시 제출된 Law 등의 "Method And Apparatus For Providing Local Combination Of N Alpha Operations Within A Graphics System"라는 발명의 명칭의 미국특허출원 제 호 (대리인 일련번호 제723-973호)에 관한 것이다.
본 발명은 컴퓨터 그래픽에 관한 것으로, 특히 홈비디오게임 플랫폼과 같은 대화식 그래픽시스템에 관한 것이다. 특히, 본 발명은 멀티텍스쳐링 (multitexturing) 및 다른 효과를 위해 쉐이드 트리(shade tree)를 실행하기 위한 쉐이더(shader) 하드웨어를 재순환하는 방법에 관한 것이다.
상당히 사실적인 공룡, 에일리언, 애니메이션 인형 및 다른 기발한 피조물을 포함하는 많은 영화들이 소개되어왔다. 그러한 방법을 이용하여, 컴퓨터 그래픽 아티스트는 각각의 대상이 보는 방법 및 시간이 경과되면서 외모가 변하는 방법을 지정할 수 있고, 그 후 컴퓨터는 대상을 모형화하여 텔레비젼 또는 컴퓨터 스크린과 같은 표시장치에 그들을 표시한다. 상기 컴퓨터는 표시되는 화상의 각각의 부분이 장면에서 각각의 대상의 위치 및 방위, 각각의 대상에 빛이 부딪힐 것으로 판단되는 방향, 각각의 대상의 표면 텍스쳐 및 다른 인수에 바로 근거하여 착색되고 정형된다는 것을 보장하기 위해 필요한 많은 태스크를 수행하게 된다.
컴퓨터 그래픽 생성이 복잡하기 때문에, 컴퓨터-생성 3차원 그래픽은 몇년전까지만 해도 대부분 고가의 특수 비행 시뮬레이터, 고급 그래픽 워크스테이션 및수퍼컴퓨터에 제한되었다. 대중들은 영화에서 이들 컴퓨터 시스템에 의해 생성된 화상의 일부 및 고가의 텔레비젼 광고를 보았지만, 대부분은 그래픽 생성을 하는 컴퓨터와 실제 상호작용할 수 없었다. 이 모든 것들은 예를 들어 이제 개인용 컴퓨터에서도 사용가능한 여러 3D 그래픽카드 및 Nintendo 64과 같은 비교적 저렴한 3D 그래픽 플랫폼의 이용가능성과 함께 변화되었다. 이제 각자의 집 또는 사무실에서 비교적 저렴한 컴퓨터 그래픽 시스템상의 재미있는 3D 애니메니션 및 시뮬레이션과 상호작용할 수 있다.
과거에 그래픽 시스템 설계자가 직면한 문제점은 그래픽 시스템에서 효과적으로 쉐이더를 실행하는 방법이었다. 일반적으로, 쉐이드화는 조명 계산을 수행하고 그로부터 화소 컬러/불투명성을 판정하는 프로세스이다. 대개, 공용되는 3개 쉐이딩 타입이 있다: 플랫, 거라우드(Gouraud), 퐁(Phong). 이들은 광/다각형, 광/꼭지점, 및 광/픽셀을 계산하는 방법에 대응한다. 무수한 쉐이딩 모형이 만들어져왔다. 모든 사용자를 만족시키고 모든 애플리케이션에 적당한 쉐이딩 모형은 하나도 없었다. 따라서, 쉐이딩 모형의 프로그래머 선택 및 지정의 측면에서 유연성을 제공하기 위해 여러 설계방법이 제안되어 왔다.
"쉐이드 트리"(SIGGRAPH 48, pp.223-231)를 언급한 R.L. Cook의 논문에서, 저자는 쉐이더가 쉐이드 트리라고 불리는 트리 표현으로 설계되는 특수목적언어를 설명했다. 대개, 쉐이드 트리는 각각이 그 자식으로부터 파라미터를 취하고 그 부모를 위해 파라미터를 생산하는 노드들의 트리이다. 예를 들어, 상기 파라미터는 설명식의 항이 될 수도 있다(예를 들어, 반사계수 또는 정상 표면). 다른 파라미터들은 대기효과(예를 들어, 옅은 안개) 또는 투사를 포함한다. RenderMan 인터페이스는 여러 목적용으로 사용자 정의 및 시스템 정의 쉐이더를 제공하기 위해 쉐이드 트리를 이용한다.
쉐이드 트리가 비-실시간 렌더링(rendering) 그래픽 시스템에서 광범위하게 사용되어왔지만, 쉐이드 트리가 실시간 렌더링 환경에 제공하는 융통성을 수용하고자 하는 경우 문제점이 발생된다. 예를 들어, 홈비디오게임 플랫폼 및 개인용 컴퓨터 그래픽카드와 같은 저비용의 실시간 렌더링 시스템에 쉐이드 트리의 융통성을 제공할 수 있는 것이 매우 바람직하다.
그래픽 시스템 설계자가 직면하는 다른 문제점은 단일 패스 멀티텍스쳐링이라 불리는 특징을 효과적으로 제공하는 방법이었다. 기본적으로, 텍스쳐링은 표면 속성을 효과적으로 모형화하기 위한 방법이다. 예를 들어, 벽돌벽 안쪽의 각각의 벽돌 및 모르타르선의 기하학을 모형화하는 대신, 표면상에 벽돌벽의 이미지를 전자적으로 "접착"하는 것이 가능하다. 상기 텍스쳐링 성능은 상당하는 모형화 및 처리 비용의 증가없이 이미지 복잡성을 상당히 증가시키기 위해 사용될 수 있다.
멀티텍스쳐링으로 알려진 텍스쳐링으로의 확대는 2개 이상의 텍스쳐가 동일 표면상에 변수되도록 한다. 예를 들어, 외계에서 볼 수 있는 바와 같이 지구의 이미지를 형성하기를 원한다고 가정하자. 지구를 구형으로 모형화하고 거기에 2개 서로 다른 텍스쳐를 인가할 수 있다. 제 1 텍스쳐는 대륙과 바다의 이미지가 될 수 있다. 제 2 텍스쳐는 구름 덮개의 이미지가 될 수 있다. 상기 대륙/바다 텍스쳐 이미지에 대해 상기 구름 덮개 텍스쳐 이미지를 이동시킴으로써, 매우 현실적인동적 텍스쳐 매핑된 이미지를 형성할 수 있다.
일부 그래픽 가속기는 2개 이상의 텍스쳐가 동일한 렌더링 패스동안 액세스되는 멀티텍스쳐링을 지원한다. 예를 들어, Microshoft의 Direct X 6.0 SBK(1998); Segal 등의 "The Open GL Graphics System: A Specification"(Version 1.2.1)(1998.3)(www.OpenGL.org)을 참고. 특정 PC 그래픽 가속기 카드는 또한 단일 패스 멀티텍스쳐링을 제공한다. 그러나, 추가적인 개선도 가능하다.
본 발명은 복수의 융통성있는 블렌드효과를 위해 사용될 수 있는 보편화된 쉐이드 트리 블렌더를 제공하는 것을 목적으로 한다.
도 1은 예시적인 대화식 컴퓨터 그래픽 시스템의 전체 도면,
도 2는 도 1의 예시적인 컴퓨터 그래픽 시스템의 블럭도,
도 3은 도 2에 도시된 예시적인 그래픽 및 오디오 프로세서의 블럭도,
도 4는 도 3에 도시된 예시적인 3D 그래픽 프로세서의 블럭도,
도 5는 도 4의 그래픽 및 오디오 프로세서의 예시적인 논리적 흐름도,
도 6은 예시적인 재사용가능한 재순환 쉐이더,
도 7은 상기 재순환 쉐이더를 이용하여 실행되는 예시적인 쉐이딩 파이프라인을 나타내는 도면,
도 8은 예시적인 재순환 쉐이더의 블럭도,
도 9는 예시적인 재순환 쉐이더 입력 멀티플렉서를 나타내는 도면,
도 10은 예시적인 재순환 쉐이더 동작 블럭도,
도 11은 예시적인 재순환 쉐이더 구성을 나타내는 도면,
도 12a-12b는 예시적인 컬러 교체 특징을 나타내는 도면,
도 13은 예시적인 텍스쳐 환경 유닛 구성을 나타내는 도면,
도 14는 예시적인 포그 계산유닛을 나타내는 도면,
도 15는 상기 재순환 쉐이더가 멀티텍스쳐링을 위해 사용될 수 있는 방법의 예를 나타내는 도면,
도 16은 재순환 쉐이더를 이용하는 예시적인 멀티텍스쳐링 프로세스를 나타내는 도면,
도 17은 상기 재순환 쉐이더를 이용하는 예시적인 멀티텍스쳐 파이프라인을 나타내는 도면,
도 18은 예시적인 멀티텍스쳐 파이프라인 제어를 나타내는 도면,
도 19는 예시적인 텍스쳐 환경 유닛제어 레지스터를 나타내는 도면, 및
도 20a-20b는 예시적인 대안적 호환성 구성을 나타내는 도면이다.
* 도면의 주요 부분에 대한 부호의 설명
50 : 3D 컴퓨터 그래픽 시스템 52a,52b : 핸드 제어기
54 : 메인 유닛 58 : 케이블
60a,60b : 제어부 61L,61R : 텔레비젼 스테레오 스피커
62 : 저장매체 66 : 전원스위치
108 : 핸드 제어장치 110 : 주 프로세서
112 : 주 메모리 114 : 그래픽 및 오디오 프로세서
120 : 비디오 인코더 122 : 오디오 코덱
124 : 버퍼
본 발명은 멀티텍스쳐링 뿐만 아니라 복수의 다른 융통성있는 블렌드효과를 위해 사용될 수 있는 보편화된 쉐이드 트리 블렌더를 제공한다. 본 발명에서 제공된 한 측면에 따르면, 그래픽 파이프라인내 재순환 쉐이더 하드웨어는 독립 제어가능한 복수의 블렌드 단계를 제공하도록 제어될 수 있다. 쉐이더 하드웨어는 이전 블렌드동작 결과용 중간 기억장치를 포함한다. 상기 쉐이더 하드웨어는 다른 입력을 선택하고 각각의 블렌드 스테이지를 위해 서로 다른 동작을 수행할 수 있다. 따라서, 정해져 있지 않은 복잡한 쉐이드 트리를 실행하기 위해 비교적 저렴하고 소형인 쉐이더 하드웨어가 사용될 수 있다.
본 발명에서 제공된 다른 측면에 따르면, 제 1 텍스쳐 매핑동작 결과가 재구성가능한 쉐이더에 제공된다. 상기 쉐이더는 제 1 텍스쳐 매핑동작에 응하여 블렌드동작을 수행한다. 그 후 상기 쉐이더는 재구성되고, 추가적인 텍스쳐링동작 결과를 수신하기 위해 연결된다. 상기 재구성된 쉐이더는 블렌드된 출력을 제공하기 위한 추가적인 텍스쳐링 동작 결과와 그 이전 결과를 결합한다.
본 발명에서 제공된 다른 측면에 따르면, 쉐이더는 정해져 있지 않은 복잡한 쉐이딩 모형을 실행하기 위해 임의의 원하는 횟수만큼 재순환될 수 있다. 각각의 재순환 또는 "스테이지"는 복수의 원하는 블렌드동작 중의 하나를 갖고 여러 컬러, 불투명성 또는 깊이 소스 중의 선택된 것들로부터 블렌드하도록 프로그래밍될 수 있다. 재순환 횟수는 실시간 렌더링 타이밍 구속의 측면에서 특정한 수단으로 제한될 수도 있지만, 타당한 수의 재순환 스테이지(예를 들어, 15)는 복수의 복잡한 쉐이딩 모형을 실행하는데 큰 융통성을 제공할 수 있다.
본 발명에서 제공된 또다른 측면에 따르면, 재순환 쉐이드 트리 블렌더는 처리시간/스테이지를 최소화하기 위해 하드웨어내에 실행된다. 좀더 상세하게, 본 발명의 적절한 실시예는 계산된 컬러, 불투명성 및 다중 사이클/스테이지에 걸친 다른 데이터를 계산하는 하드웨처 가속된 프로그래밍 가능한 텍스쳐 쉐이더/픽셀을 포함하는 비교적 낮은 칩-밑넓이의 다용도 텍스쳐-환경 처리 서브시스템을 제공한다. 상기 텍스쳐 환경 서브시스템은 디스플레이용 픽셀 파라미터를 형성하기 위해 꼭지점 당 조명, 텍스쳐, 래스터된 컬러, 불투명성과 깊이를 결합할 수 있다. 컬러(예를 들어, RGB)과 알파성분을 위한 블렌드동작은 멀티텍스쳐링 및 다른 효과를 신현하기 위해 다중 처리 스테이지에서 재사용되는 한 세트의 컬러/알파 결합기(쉐이더) 하드웨어를 포함하는 블렌드유닛에 의해 텍스쳐 환경 서브시스템내에서 독립적으로 처리될 수도 있다. 선택가능한 현재 컬러/불투명성 입출력 레지스터는 중간 결과를 저장하기 위해 모든 스테이지 사이에서 공유될 수 있다. 쉐이처 하드웨어는 단일 렌더링 패스 멀티텍스쳐링 및 다른 효과를 지원하는 지정가능한 블렌드/쉐이딩조작의 체인을 제공하기 위해 각각의 스테이지에서 재구성될 수 있다.
본 발명에서 제공된 이러한 특징과 이점 및 다른 특징과 이점은 첨부된 도면과 함께 후술되는 현재 적절한 실시예의 상세한 설명을 참조하여 더 완벽하게 이해될 것이다.
도 1은 예시적인 대화식 3D 컴퓨터 그래픽 시스템(50)을 나타낸다. 상기 시스템(50)은 흥미로운 스테레오 사운드를 이용하여 대화식 3D 비디오 게임을 할 수 있도록 하기 위해 사용될 수 있다. 또한 여러 다른 애플리케이션을 위해 사용될 수 있다.
이 예시에서, 상기 시스템(50)은 3차원 세계의 디지털 표현 또는 모형을 대화식으로 실시간 처리할 수 있다. 상기 시스템(50)은 임의의 시점으로부터 세계의 일부 또는 모두를 표시할 수 있다. 예를 들어, 상기 시스템(50)은 핸드 제어기(52a,52b) 또는 다른 입력디바이스로부터의 실시간 입력에 응하여 대화식으로 시점을 변경할 수 있다. 이것은 게임 플레이어가 세계의 안 또는 밖의 누군가의 눈을 통해 세계를 보도록 한다. 상기 시스템(50)은 실시간 3D 대화식 디스플레이를 필요로 하지 않는 애플리케이션(예를 들어, 2D 디스플레이 생성 및/또는 비-대화식 디스플레이)을 위해 사용될 수 있지만, 3D 이미지의 품질을 매우 신속하게 표시하는 능력은 매우 사실적이고 재미있는 게임플레이 또는 다른 그래픽적 상호작용을 형성하기 위해 사용될 수 있다.
상기 시스템(50)을 이용하여 비디오 게임 또는 다른 애플리케이션을 하기 위해서, 사용자는 메인 유닛(54)과 먼저 컬러텔레비젼(56) 또는 다른 표시장치에 케이블(58)을 연결하여 그 둘을 연결한다. 메인 유닛(54)은 컬러텔레비젼(56)을 제어하기 위해 비디오신호 및 오디오신호 모두를 생성한다. 상기 비디오신호는 텔레비젼 스크린(59)에 표시되는 이미지를 제어하는 것이고, 상기 오디오신호는 텔레비젼 스테레오 스피커(61L,61R)를 통해 사운드로서 재생된다.
상기 사용자는 또한 메인 유닛(54)을 전원과 연결할 필요가 있다. 이러한 전원은 표준 가정용 전기벽 소켓으로 플러그되고 가정 전류를 메인 유닛(54)에 전력을 공급하기 위해 적당한 낮은 DC 전압신호로 전환하는 종래의 AC 어댑터(도시되지 않음)가 될 수도 있다. 배터리는 다른 구성에서 사용될 수 있다.
사용자는 메인 유닛(54)을 제어하기 위해 핸드 제어기(52a,52b)를 이용하기도 한다. 제어부(60a,60b)는 예를 들어 텔레비젼(56)상에 표시되는 캐릭터가 3D 세계안에서 이동해야 하는 방향(위아래, 좌우, 가까이 또는 멀리)을 지정하기 위해 사용될 수 있다. 제어부(60a,60b)는 또한 다른 애플리케이션(예를 들어, 메뉴선택, 포인터/커서 제어 등)을 위한 입력을 제공한다. 제어장치(52)는 여러 형태를 취할 수 있다. 이 예에서, 도시된 제어장치(52) 각각은 조이스틱, 푸시버튼 및/또는 방향 스위치와 같은 제어부(60a,60b)를 포함한다. 제어장치(52)는 전자기파(예를 들어 라디오 또는 적외선파)를 통해 케이블에 의해 또는 무선으로 메인 유닛(54)과 연결될 수도 있다.
게임과 같은 애플리케이션을 하기 위해서, 사용자는 하고 싶은 비디오 게임 또는 다른 애플리케이션을 저장하는 적절한 저장매체(62)를 선택하고, 메인 유닛(54)내 슬롯(64)으로 상기 저장매체를 삽입한다. 저장매체(62)는 예를 들어 특수 인코딩 및/또는 암호화된 광 및/또는 자기 디스크가 될 수도 있다. 사용자는 메인 유닛(54)을 온하기 위해 전원스위치(66)를 조작하고, 메인 유닛이 상기 저장매체(62)에 저장된 소프트웨어에 기초하여 비디오 게임 또는 다른 애플리케이션을 실행하기 시작하도록 할 수 있다. 사용자는 메인 유닛(54)에 입력을 제공하기 위해 제어장치(52)를 조작할 수도 있다. 예를 들어, 제어부(60a,60b)를 조작하면 게임 또는 다른 애플리케이션이 시작된다. 다른 제어부(60a,60b)를 이동시키면 애니메이션 캐릭터가 다른 방향으로 움직이거나 3D 세계에서 사용자의 시야를 다른 방향으로 변경한다. 기억매체(62)에 저장된 특수 소프트웨어에 따라, 제어장치(52)상의 여러 제어부(60a,60b)는 다른 시각에 다른 기능을 수행할 수 있다.
전체 시스템의 예시적인 전자장치부
도 2는 시스템(50)의 예시적인 구성요소의 블럭도를 나타낸다. 주요 구성요소로는:
·주 프로세서(CPU)(110)
·주 메모리(112)
·그래픽 및 오디오 프로세서(114)
가 있다.
이 예시에서, 주 프로세서(110)(예를 들어 향상된 IBM Power PC 750)는 그래픽 및 오디오 프로세서(114)에 의해 핸드 제어장치(108)(및/또는 다른 입력디바이스)로부터의 입력을 수신한다. 주 프로세서(110)는 사용자 입력에 상호작용으로 응답하고, 예를 들어 광 디스크 드라이브와 같은 매스 기억 액세스 디바이스(106)에 의해 외부 기억매체(62)에 의해 공급된 비디오 게임 또는 다른 프로그램을 실행한다. 한 예로써, 비디오 게임 플레이 환경에서, 주 프로세서(110)는 복수의 상호작용 및 제어기능에 추가하여 충돌 검출 및 애니메이션 처리를 수행할 수 있다.
이 예에서, 주 프로세서(110)는 3D 그래픽 및 오디오 명령을 생성하고 그것을 그래픽 및 오디오 프로세서(114)에 전송한다. 상기 그래픽 및 오디오 프로세서(114)는 디스플레이(59)상에 재미있는 시각 이미지를, 그리고 스테레오 스피커(61R,61L) 또는 다른 적당한 사운드발생 디바이스상에 재미있는 스테레오 사운드를 발생시키기 위해 이들 명령을 처리한다.
예시적인 시스템(50)은 그래픽 및 오디오 프로세서(114)로부터 이미지 신호를 수신하고, 상기 이미지 신호를 컴퓨터 모니터 또는 가정용 컬러텔레비젼(56)과 같은 표준 표시장치상의 디스플레이에 적당한 아날로그 및/또는 디지털 비디오신호로 변환하는 비디오 인코더(120)를 포함한다. 상기 시스템(50)은 또한 디지털화된 오디오신호를 압축 및 압축해제하고, 또한 필요에 따라 디지털과 아날로그 오디오 시그낼링 포맷 사이에서 변환할 수도 있는 오디오 코덱(압축기/감압기)(122)를 포함한다. 오디오 코덱(122)은 버퍼(124)에 의해 오디오 입력을 수신하고, 처리(예를 들어, 프로세서가 대량 기억 액세스 디바이스(106)의 스트리밍 오디오 출력에 의해 발생 및/또는 수신하는 다른 오디오신호와의 믹싱)를 위해 그것을 그래픽 및오디오 프로세서(114)에 제공할 수 있다. 이 예에서 그래픽 및 오디오 프로세서(114)는 오디오 태스크에서 이용가능한 오디오 메모리(126)에 오디오 관련정보를 저장할 수 있다. 그래픽 및 오디오 프로세서(114)는 (예를 들어, 버퍼 증폭기(128L,128R)에 의해) 감압 및 아날로그 신호로의 변환을 위해 결과물인 오디오 출력신호를 오디오 코덱(122)에 제공하여, 스피커(61L,61R)에 의해 재생될 수 있다.
그래픽 및 오디오 프로세서(114)는 시스템(50)내에 존재할 수도 있는 여러 추가적인 디바이스와 통신할 수 있는 능력을 갖는다. 예를 들어, 병렬 디지털버스(130)는 대량 저장 액세스 디바이스(106) 및/또는 다른 구성요소와의 통신을 위해 사용될 수도 있다. 직렬 주변장치 버스(132)는 복수의 주변장치 또는 예를 들어 다음을 포함한 다른 디바이스와 통신할 수 있다:
·프로그래밍가능한 ROM 및/또는 실시간 클럭(134)
·모뎀(136) 또는 (프로그램 명령 및/또는 데이터가 그로부터/그리로 다운로드 또는 업로드될 수 있는 인터넷 또는 다른 디지털 네트워크와 같은 전기통신 네트워크(138)에 시스템(50)을 차례로 연결할 수 있는)다른 네트워킹 인터페이스
·플래시 메모리(140).
추가적인 외부 직렬버스(142)는 추가적인 확장메모리(144)(예를 들어 메모리 카드) 또는 다른 디바이스와의 통신을 위해 사용될 수도 있다. 커넥터는 여러 디바이스를 버스(130,132,142)와 연결하기 위해 사용될 수도 있다.
예시적인 그래픽 및 오디오 프로세서
도 3은 예시적인 그래픽 및 오디오 프로세서(114)의 블럭도이다. 그래픽 및 한 예시에서 오디오 프로세서(114)는 단일 칩 ASIC(application specific integrated circuit)이 될 수 있다. 이 예시에서, 그래픽 및 오디오 프로세서(114)는:
·프로세서 인터페이스(150)
·메모리 인터페이스/제어장치(152)
·3D 그래픽 프로세서(154)
·오디오 디지털신호 프로세서(DSP)(156)
·오디오 메모리 인터페이스(158)
·오디오 인터페이스 및 믹서(160)
·주변장치 제어장치(162)
·디스플레이 제어장치(164)
가 있다.
3D 그래픽 프로세서(154)는 그래픽처리 태스크를 수행한다. 오디오 디지털신호 프로세서(156)는 오디오처리 태스크를 수행한다. 디스플레이 제어장치(164)는 주 메모리(112)로부터 이미지 정보를 액세스하고, 표시장치(56)상의 표시를 위해 그것을 비디오 인코더(120)에 제공한다. 오디오 인터페이스 및 믹서(160)는 오디오 코덱(122)과 인터페이스하고, 다른 소스(예를 들어, 대량저장 액세스 디바이스(106)로부터의 스트리밍 오디오, 오디오 DSP(156)의 출력 및 오디오 코덱(122)에 의해 수신된 외부 오디오입력)로부터의 오디오를 믹스할 수도 있다. 프로세서 인터페이스(150)는 데이터를 제공하고, 주 프로세서(110)와 그래픽 및 오디오 프로세서(114) 사이의 인터페이스를 제어한다.
메모리 인터페이스(152)는 데이터를 제공하고, 그래픽 및 오디오 프로세서(114)와 메모리(112) 사이의 인터페이스를 제어한다. 이 예시에서, 주 프로세서(110)는 그래픽 및 오디오 프로세서(114)의 일부인 메모리 인터페이스(152) 및 프로세서 인터페이스(150)에 의해 주 메모리(112)를 액세스한다. 주변장치 제어장치(162)는 데이터를 제공하고, 그래픽 및 오디오 프로세서(114)와 상기된 여러 주변장치 사이의 인터페이스를 제어한다. 오디오 메모리 인터페이스(158)는 오디오 메모리(126)와의 인터페이스를 제공한다.
예시적인 그래픽 파이프라인
도 4는 예시적인 3D 그래픽 프로세서(154)의 좀더 상세한 도면이다. 3D 그래픽 프로세서(154)는 다른 것들 중에서 명령 프로세서(200) 및 3D 그래픽 파이프라인(180)을 포함한다. 주 프로세서(110)는 데이터 스트림(예를 들어, 그래픽 명령 스트림 및 디스플레이 리스트)을 명령 프로세서(200)에 전달한다. 주 프로세서(110)는 메모리 지연시간을 최소화하기 위해 2레벨 캐시(115)를 갖고, 또한 그래픽 및 오디오 프로세서(114)를 위한 목표가 되는 캐시되지 않은 데이터 스트림을 위한 기록-수집 버퍼(111)를 갖는다. 상기 기록-수집 버퍼(111)는 부분적인 캐시 라인을 전체 캐시 라인으로 수집하고, 최대 버스 사용을 위해 한번에 1 캐시 라인씩 상기 데이터를 그래픽 및 오디오 프로세서(114) 밖으로 전송한다.
명령 프로세서(200)는 주 프로세서(110)로부터 디스플레이 명령을 수신하고,그것을 파싱하여, 공유메모리(112)로부터 그것을 처리하기 위해 필요한 임의의 추가 데이터를 획득한다. 상기 명령 프로세서(200)는 2D 및/또는 3D 처리 및 렌더링을 위해 그래픽 파이프라인(180)으로 꼭지점 명령 스트림을 제공한다. 그래픽 파이프라인(180)은 이들 명령에 기초하여 이미지를 생성한다. 결과적인 이미지 정보는 디스플레이(56)상에 파이프라인(180)의 프레임 버퍼 출력을 표시하는 디스플레이 제어장치/비디오 인터페이스 유닛(164)에 의한 액세스를 위해 주 메모리(112)로 전달될 수 있다.
도 5는 그래픽 프로세서(154)의 논리적 흐름도이다. 주 프로세서(110)는 그래픽 명령 스트림(210), 디스플레이 리스트(212) 및 꼭지점 어레이(214)를 주 메모리(112)에 저장할 수 있고, 버스 인터페이스(150)에 의해 명령 프로세서(200)로 포인터를 전달한다. 주 프로세서(110)는 주 메모리(112)에 할당하는 하나 이상의 그래픽 FIFO(first-in-first-out) 버퍼(210)에 그래픽 명령을 저장한다. 상기 명령 프로세서(200)는:
·동기화/흐름 제어 및 로드 균형을 위해 그래픽 명령을 수신하고 버퍼링하는 온-칩 FIFO 메모리 버퍼(216)에 의해 주 메모리(112)로부터 명령 스트림을 페치(fetch)하고,
·온-칩 콜(call) FIFO 메모리 버퍼(218)에 의해 주 메모리(112)로부터 디스플레이 리스트(212)를 페치하며,
·꼭지점 캐시(220)에 의해 주 메모리(112)내 명령 스트림 및/또는 꼭지점 어레이(214)로부터 꼭지점 속성을 페치한다.
명령 프로세서(200)는 속성 타입을 부동소수점 포맷으로 변환하는 명령처리 동작(200a)을 수행하고, 렌더링/래스터화를 위해 결과물인 완전 꼭지점 다각형 데이터를 그래픽 파이프라인(180)으로 전달한다. 프로그래밍가능한 메모리 중재회로(130)(도 4 참조)는 그래픽 파이프라인(180), 명령 프로세서(200) 및 디스플레이 제어장치/비디오 인터페이스 유닛(164) 사이에서 공유된 주 메모리(112)에 대한 액세스를 중재한다.
도 4는 그래픽 파이프라인(180)이:
·변형 유닛(300)
·셋업/래스터라이저(400)
·텍스쳐 유닛(500)
·텍스쳐 환경유닛(600)
·픽셀 엔진(700)
을 포함할 수도 있다는 것을 나타낸다.
변형유닛(300)은 복수의 2D 및 3D 변형 및 다른 동작(300a)(도 5 참조)을 수행한다. 변형 유닛(300)은 변형 처리부(300a)에서 사용되는 행렬을 저장하기 위한 하나 이상의 행렬 메모리(300b)를 포함할 수도 있다. 상기 변형 유닛(300)은 대상 공간으로부터 스크린 공간으로 입력 기하학/꼭지점을 변형하고; 입력 텍스쳐 좌표를 변형하며, 투사 텍스쳐 좌표(300c)를 계산한다. 변형 유닛(300)은 다각형 클리핑(clipping)/컬링(culling)(300d)을 수행하기도 한다. 또한 변형 유닛(300b)에 의해 처리되는 조명 처리부(300e)는 한 예시적인 실시예에서 최대 8개의 독립적인광에 대한 꼭지점당 조명 계산을 제공한다. 변형 유닛(300)은 또한 다각형 클리핑/컬링 동작(300d)뿐만 아니라 엠보싱형 범프 매핑효과를 위해 텍스쳐 좌표 발생(300c)을 수행할 수 있다.
셋업/래스터라이저(400)는 변형 유닛(300)으로부터 꼭지점 데이터를 수신하고 에지 래스터화, 텍스쳐 좌표 래스터화 및 컬러 래스터화를 수행하는 하나 이상의 래스터라이저 유닛(400b)으로 삼각형 셋업 정보를 전송하는 셋업 유닛을 포함한다.
(온-칩 텍스쳐 메모리(TMEM)(502)를 포함하기도 하는) 텍스쳐 유닛(500)은 예를 들어 다음을 포함하는 텍스쳐링과 관련된 여러 태스크를 수행한다:
·주 메모리(112)로부터 텍스쳐(504)를 검색
·예를 들어 멀티텍스쳐 처리, 포스트-캐시 텍스쳐 압축풀기, 텍스쳐 여과, 엔보싱, 투사 텍스쳐의 사용을 통한 빛과 그림자, 및 알파 투명성 및 깊이를 갖는 BLIT를 포함한 텍스쳐 처리(500a)
·범프 매핑, 의사 텍스쳐 및 텍스쳐 타일링(tiling) 효과(500b)를 위해 텍스쳐 좌표 변위를 계산하기 위한 범프 맵 처리
·간접적 텍스쳐 처리(500c).
블럭(500a,500b,500c)의 동작에 관한 세부사항에서, 규칙적이고 간접적인 텍스쳐 룩업 동작을 수행하기 위한 예시적인 그래픽 파이프라인 회로 및 프로시저의 좀더 상세한 설명은 공동 계류중인 공동 양도된 "Method And Apparatus For Direct And Indirect Texture Processing In A Graphics System"(대리인 일련번호 제723-961)라는 발명의 명칭의 미국특허출원 제 호 및 2000년 8월 23일 출원된 그 대응 가특허출원 제60/226,891호에 개시되어 있고, 모두 참조로 본 명세서에 구체화되어 있다.
그래픽 파이프라인의 적절한 예시적인 수단에서, 텍스쳐 유닛(500)은 논리적 직접 및 간접 텍스쳐 좌표 데이터의 처리를 간삽하는 단일 텍스쳐 어드레스 좌표/데이터 처리유닛을 이용하고, 상기 단일 텍스쳐 검색유닛으로부터 텍스쳐 어드레스 좌표/데이터 처리유닛으로 검색된 간접 텍스쳐 룩업 데이터를 재순환하기 위해 텍스쳐 룩업 데이터 피드백경로(500d)를 제공하는 "재순환" 텍스쳐링 파이프라인 수단을 이용하여 실행된다.
텍스쳐 유닛(500)은 텍스쳐 환경처리(600a)를 위해 여과된 텍스쳐 값을 상기 텍스쳐 환경유닛(600)으로 출력한다. 텍스쳐 환경유닛(600)은 다각형과 텍스쳐 컬러/알파/깊이를 블렌드하고, 또한 포그(fog)효과에 기반한 반대 범위를 실행하기 위해 텍스쳐 포그처리(600b)를 수행할 수 있다. 텍스쳐 환경유닛(600)은 예를 들어 컬러/알파 변조, 엠보싱, 세부사항 텍스쳐링, 텍스쳐 교환, 클램핑, 및 깊이 블렌드에 기초한 여러 다른 흥미로운 환경관련 기능을 수행하기 위해 다중 스테이지를 제공할 수 있다.
도 5에 도시된 바와 같이, 예시적인 실시예에서 텍스쳐 환경유닛(600a)은 재순환 쉐이더(602)를 포함한다. 상기 예시에서 상기 재순환 쉐이더(602)는 복수의 선택된 입력을 블렌드할 수 있고 잇따른 블렌드 동작에서 추가 블렌드를 위해 블렌드결과를 보유할 수 있는 하드웨어 기반 범용 블렌더를 포함한다. 상기 예시에서재순환 쉐이더(602)는 복수의 다른 블렌드 동작을 실행할 수 있는 재사용가능한 블렌드 로직을 포함한다. 예시적인 실시예에서, 재순환 쉐이더(602)는 복수의 다른 구별되는 이전 블렌드결과를 보유할 수 있고, 새롭게 제공된 값을 이들 이전 블렌드결과 중의 어떤 결과과 블렌드할 수 있다. 이것은 재순환 쉐이더(602)가 연속적인 재순환 스테이지를 통해 임의의 쉐이드 트리를 실행하도록 한다. 예를 들어, Cook의Shade Trees(SIGGRAPH Proceedings, pp.223-231; 1984.7) 참조. 재순환 쉐이더(602)가 실행할 수 있는 쉐이드 트리의 복잡성은 재순환 쉐이더(602)가 소정 렌더링 패스내에서 재순환할 수 있는 전체 횟수에 의해 제한된다. 예시적인 실시예에서, 재순환 쉐이더(602)는 예시적인 실시예에서 최대 15개의 재순환된 스테이지를 제공할 수 있지만, 다른 수단은 다른 횟수의 재순환 스테이지를 제공할 수 있다.
일단 텍스쳐 환경유닛(600)이 블렌드된 컬러/알파/z 출력을 발생하면, 픽셀 엔진(700)은 깊이(z) 비교(700a)와 프레임 버퍼 픽셀 블렌드(700b)을 수행한다. 이 예시에서, 픽셀 엔진(700)은 내장된(온-칩) 프레임 버퍼 메모리(702)에 데이터를 저장한다. 그래픽 파이프라인(180)은 프레임 버퍼 및/또는 텍스쳐 정보를 국부적으로 저장하기 위해 하나 이상의 내장 DRAM 메모리(702)를 포함할 수도 있다. Z 비교(700a')는 또한 현재 이용가능한 렌더링 모드에 따라 그래픽 파이프라인(180)에서 더 빠른 스테이지에서 수행될 수 있다(예를 들어, z 비교는 알파 블렌드가 필요하지 않은 경우 좀더 빨리 수행될 수 있다). 상기 픽셀 엔진(700)은 디스플레이/비디오 인터페이스 유닛(164)에 의한 액세스를 위해 주기적으로 온-칩프레임 버퍼(702)를 주 메모리(112)에 기록하는 카피 동작(700c)을 포함한다. 상기 카피 동작(700c)은 동적 텍스쳐 합성효과를 위해 내장된 프레임 버퍼(702) 내용을 주 메모리(112)내 텍스쳐에 카피하기 위해 사용될 수도 있다. 반-에일리어싱 및 다른 여과는 카피 동작동안 수행될 수 있다. (마침내 주 메모리(112)에 저장되는) 그래픽 파이프라인(180)의 프레임 버퍼 출력은 디스플레이/비디오 인터페이스 유닛(164)에 의해 각각의 프레임이 판독된다. 디스플레이 제어장치/비디오 인터페이스(164)는 디스플레이(102)상의 표시를 위해 디지털 RGB 픽셀값을 제공한다.
예시적인 재순환 쉐이더
도 6은 예시적인 재순환 쉐이더 수단의 하이레벨 블럭도를 나타내고, 도 7은 도 6의 재순환 쉐이더를 이용하여 실행될 수 있는 예시적인 쉐이더 파이프라인의 논리도표를 나타낸다. 도 6에 도시된 바와 같이. 재순환 쉐이더(602)는 복수의 다른 입력을 수신하고 그 입력으로 피드백될 수 있는 출력을 발생한다.
좀더 상세하게, 예시적인 실시예에서 재순환 쉐이더(602)는 다음의 입력 타입 중의 하나를 선택할 수 있다:
·래스터화된 컬러/알파
·텍스쳐 컬러/알파
·계산된 컬러/알파
·그 외
예시적인 실시예에서, 상기 래스터화된 컬러/알파는 래스터라이저(400)에 의해 제공될 수도 있다. 예를 들어, 래스터화된 컬러/알파는 꼭지점 단위 기반으로변형 유닛(300)에 의해 수행되는 조명계산에 근거하여 래스터라이저(400)에 의해 결정된 거라우드 쉐이드 픽셀이 될 수 있다. 텍스쳐 컬러/알파는 텍스쳐유닛(500)에 의해 수행된 직접 또는 간접 텍스쳐 매핑 동작 결과가 될 수 있다. 재순환 쉐이더(602)는 그 출력의 계산된 컬러/알파값을 제공하기 위해 프로그래밍가능한 블렌드 동작에 기초하여 이들 값 및/또는 상수의 어느 하나/전부를 블렌드한다. 이러한 계산된 컬러/알파값은 잇따른 블렌드 동작에서 사용하기 위해 재순환 쉐이더(602)에 대한 입력으로서 피드백될 수 있다.
각각의 독립 제어된 재순환 쉐이더(602)의 순환은 "스테이지"로 언급되기도 한다. 예시적인 실시예에서, 재순환 쉐이더(602)는 애플리케이션-지정 집적회로(ASIC)에서 고속 하드웨어 로직에 의해 실행된다. 복수의 독립 제어된 논리적 스테이지를 제공하기 위한 고속 하드웨어 로직 기능성의 재순환은 임의의 원하는 수의 쉐이딩/블렌드 스테이지를 허용함으로써 융통성을 제공하여, 하드웨어 복잡성 및 필요한 집적회로 공간을 감소시킨다. 예시적인 실시예에서 각각의 재순환 쉐이더(602) 스테이지는 컬러(RGB) 및 알파(투명성)를 위한 독립적인 블렌드 동작을 계산한다. 예시적인 실시예에서 블렌드 계산은 예를 들어 다음을 포함한 복수의 다른 동작으로부터 주 프로세서(110)에서 실행되는 애플리케이션에 의해 프로그래밍될 수 있다:
·변조
·2배 변조
·4배 변조
·가산
·2배 부호 가산
·감산
·스무스(smooth) 가산
·확산 알파 블렌드
·텍스쳐 알파 블렌드
·인수 알파 블렌드
·전류 알파 블렌드
·미리 곱해진 텍스쳐 알파 블렌드
·알파 변조 및 컬러 가산
·컬러 변조 및 알파 가산
·반대 알파 변조 및 컬러 가산
·반대 컬러 변조 및 알파 가산
·반사 컬러 및 텍스쳐(다중 스테이지)
·엠보싱(다중 스테이지)
·세부사항 텍스쳐(다중 스테이지)
·다른 동작.
도 7은 재순환 쉐이더(602)에 의해 제공될 수 있는 예시적은 재순환 쉐이딩 파이프라인을 나타낸다. 이러한 논리적 파니프라인은 각각이 계산된 컬러/알파를 텍스쳐 컬러/알파 및/또는 래스터된 컬러/알파와 블렌드할 수 있는 복수의 순차적블렌드 스테이지를 제공한다. 예시적인 실시예에서, 최대 16개 다른 단계의 블렌드 동작에는 보간된 텍스쳐 및 래스터 컬러/알파를 받아들이는 각각의 스테이지가 제공될 수 있다. 래스터라이저(400)(도 5 참조)의 프로그래밍은 8개 텍스쳐 좌표 세트 중의 어느 하나 및 재순환 쉐이더(602)에 의해 제공된 텍스쳐 보간을 위해 사용하기 위한 8개 물리적 텍스쳐(504) 중의 어느 하나를 지정한다. 래스터라이저(400)는 또한 2개 래스터된 컬러 중 어느 하나가 소정 재순환 쉐이더(602) 스테이지에서 사용되는 것을 제어할 수도 있다.
예시적인 재순환 쉐이더 구성
도 8은 텍스쳐 환경 블럭(600)에서 사용하기에 적당한 재순환 쉐이더(602)의 예시적인 구성을 나타내는 블럭도이다. 도시된 예시에서, 재순환 쉐이더(602)는 여러 다른 입력들(예를 들어, 텍스쳐 컬러/알파, 래스터된 컬러/알파, 및 이전 블렌드 동작의 결과) 중에서 블렌드 오퍼레이터(658)에 의해 동작될 것을 선택하기 위해 복수의 입력 멀티플렉서(656)를 포함한다. 블렌드 오퍼레이터(658)의 결과는 상기 예시적인 실시예에서 4개 중간 레지스터(660) 중 어느 하나에 저장될 수 있다. 그 후, 이들 레지스터(660) 중의 어느 하나는 연속되는 블렌드 스테이지에서의 추가적인 블렌드 동작을 위해 입력 멀티플렉서(656)에 의해 선택될 수 있다.
예시적인 실시예에서, 재순환 쉐이더(8)는 각각의 블렌드 스테이지에 대해 컬러성분 동작 및 분리된 알파성분 동작을 제공한다. 소정 스테이지에서, 블럭(658)에 의해 수행된 동작은 컬러성분과 알파성분에 서로 다를 수 있다. 컬러 및 알파성분 동작은 주 마이크로프로세서(110)에서 실행되는 애플리케이션에 의해독립적으로 제어될 수 있다. 각각의 재순환 스테이지에서 독립적인 컬러 및 알파 동작제어를 제공하는 이러한 능력은 처리속도면에서 추가 비용없이 재순환 쉐이더(602)가 임의의 복잡한 알파(투명성) 동작 트리를 수행하도록 한다. 재순환 쉐이더(602)의 마지막 스테이지에 의해 생성된 알파는 알파 비교블럭(662)으로 입력된다. 이러한 알파 비교동작(662)의 결과는 예를 들어 조건부로 컬러를 마스크 및/또는 내장된 프레임 버퍼(702)에 z 기록을 위해 이용될 수 있다.
상기 예시적인 실시예에서, 마지막 블렌드 스테이지의 최종 블렌드출력은 컬러 출력 및/또는 알파 스레숄딩(thresholding)(662)을 위해 레지스터(660(4))에 저장된다. z-텍스쳐링 경로는 또한 z-텍스쳐링을 위해 제공된다. 본 명세서에서 참조로 구체화되어 있는 "Z-Texturing"이라는 명칭의 Leather 등의 공동 계류중인 공통 양도된 미국특허철원 제 호(대리인 일련번호 제723-965호) 및 2000년 8월 23일 제출된 대응하는 가특허출원 제60/226,913호 참조.
예시적인 입력 멀티플렉서 구성
도 9는 예시적인 재순환 쉐이더 입력 멀티플렉서 구성(656)을 나타낸다. 도 9에 도시된 바와 같이, 4개 멀티플렉서(656a~656d) 중 각각의 하나는 다음을 포함한 복수의 서로 다른 컬러입력 중의 하나를 선택할 수 있다:
·레지스터(660(1))의 컨텐트
·레지스터(660(2))의 컨텐트
·레지스터(660(3))의 컨텐트
·레지스터(660(4))의 컨텐트
·텍스쳐 컬러(들)
·텍스쳐 알파(들)
·상수(레지스터) 컬러(들)
·상수(레지스터) 알파(들)
·래스터된 컬러(들)
·래스터된 알파(들)
·몇몇 이용가능한 고정 상수들
·프로그래밍가능한 상수들
·다른 텍스쳐 컬러 채널로 복사된 텍스쳐 컬러성분(이러한 특징은 도트 생산, 강도 계산 및 컬러공간 변환에서 이용가능하다)
·다른 입력들.
멀티플렉서(656)로의 입력 제어는 각각의 재순환 쉐이더 스테이지에 대해 독립적으로 저정될 수 있다. 예시적인 실시예에서 멀티플렉서(656) 출력은 부호없는 8비트 값 또는 부호있는 10비트 값이 되지만, 다른 구성에서는 다른 정밀도를 제공할 수 있다.
예시적인 블렌드 계산/동작
도 10은 예시적인 블렌드/쉐이딩 오퍼레이터(658)를 나타낸다. 상기 예시적인 실시예에서, 재순환 쉐이더(602)는 각각의 스테이지에서 다음과 같이 일반식으로 표시될 수 있는 계산을 수행할 수 있다:
R = (D+(-1)sub* ((1-C)*A+C*B) + bias << shift
상기 예시적인 실시예에서 계산 블럭(664)내 변수 A,B,C 및 D는 다음으로부터 선택된다:
·4개 컬러 레지스터
·래스터된 컬러(확산 또는 반사)
·텍스쳐
·상기 컬러의 알파 성분 또는 정의된 상수
·정적 상수
·프로그래밍가능한 상수.
상기 예시적인 실시예에서 계산 블럭(664)은 값(A,B,C)에 대해 동작한다. 계산 블럭(664)의 출력은 선택적 부정블럭(666)을 통과하고, 가산기(668)에 의해 "D" 멀티플렉서(656(D))의 출력 및 선택적 바이어스값과 가산된다. 결과적인 합계는 출력 및/또는 연속되는 추가적인 블렌드를 위해 레지스터(660(1),660(2),660(3), 660(4)) 중의 어느 하나에 저장되기 전에 스케일러 블럭(670)에 의해 스케일링되고 클램프 블럭(672)에 의해 클램핑될 수 있다.
상기 예시적인 실시예에서, 스케일 블럭(670)은 0.5, 1, 2 또는 4로 스케일할 수 잇지만, 다른 구성에서는 다른 스케일링 인수를 제공할 것이다. 클램핑 블럭(672)은 복수의 다른 클램핑 모드를 지원할 수 있다. 한 구성에서, 입력값 A,B,C,는 한 구성에서 부호없는 8비트 값이 되기도 하고, 입력값 D는 부호있는 10비트 값이 될 수 있으며, 클램프 블럭(672)의 출력은 부호있는 10비트 값이 될 수 있다.
도 11은 재순환 쉐이더(602)의 좀더 상세한 구성을 나타낸다. 이 예시에서, 계산 블럭(664)은 하드웨어 배율기(664b,664c); "1-f" 보충 블럭(664a); 및 가산기(664d)에 의해 구성된다. 이 예시에서, 배율기(664b)는 B와 C입력을 곱하고, 가산기(664d)의 하나의 입력으로서 결과적인 생산물을 제공한다. 다른 배율기(664c)는 A입력에 값(1-C)을 곱하고, 그 결과를 가산기(664d)의 다른 입력으로 제공한다. 이러한 하드웨어는 블럭(664)에 의해 계산되는 바와 같이 도 10에 도시된 수학식을 계산한다. 가산기(664)에 의해 제공된 결과물은 부호반전 블럭(666)으로 출력된다.
도 11에 도시된 실시예에서, 추가 비교기(674)는 멀티플렉서(656) 출력 A와 D를 비교하기 위해 제공되고, 비교 결과는 (멀티플렉서(676)에 의해) 멀티플렉서(656) 출력 C과 0값 사이에서 선택하기 위해 이용된다. 추가 멀티플렉서(678)는 부호 오퍼레이터(666)의 출력과 멀티플렉서(676)의 출력(즉, 비교 동작 결과) 사이에서 선택하기 위해 데이터 경로내에 제공된다. 그러한 비교는 하나의 재순환 스테이지에서 블렌드 계산과 비교 결과 동작 모두를 수행함으로써 재순환 스테이지를 저장할 수 잇다. 이러한 예시적인 실시예에서 비교기(674)는 8비트, 16비트 또는 24비트 비교를 제공하기 위해 1, 2 또는 3개 채널을 동시에 비교할 수 있다.
도 11에 도시된 예시적인 실시예에서, 스케일 동작(670)은 다음의 인수 중어느 것의 스케일링을 제공한다.
·0.5
·1
·2
·4.
예시적인 실시예에서, 다른 스케일링 블럭(670a,670b,670c,670d)은 클램프 블럭(672)을 제공하기 위해 멀티플렉서(670e)에 의해 선택된다.
도 11에 도시된 예시적인 실시예에서, 멀티플렉서(656)로의 입력은 블럭(664)에 의한 계산전에 "컬러 교체" 블럭(680)을 선택적으로 통과하기도 한다. 컬러 교체 블럭(680)은 다른 2개 컬러성분으로 각각의 컬러성분(R,G,B)을 알리기 위해 사용될 수 있다. 도 12a,12b 참조. 이러한 특징은 예를 들어 도트 생성물, 강도 계산 및 컬러 공간변환을 위해 사용될 수 있다.
도 11에 도시된 예시적인 실시예는 정적이고 프로그래밍가능한 상수를 위한 지원을 포함한다. 하나의 실시예에서, 복수의 정적 한정된 값 중의 하나 또는 복수의 프로그래밍가능한 컬러 레지스터값 중의 하나를 이용하는지 여부를 지정하는 일정한 선택 레지스터에 의해 판정된 임의의 상수값을 선택하기 위해 이용된다. 상기 프로그래밍가능한 고정된 상수는 블렌드 동작에서 융통성을 제공한다. 다른 실시예에서, 적은 수의 고정 상수(예를 들어 1.0)가 대신 사용될 수 있다.
도 11의 데이터 경로는 예를 들어 DirectX 6.0 또는 7.0의 D3D에서 지정된 것과 같은 다른 블렌드동작을 위해 설정될 수 있다. 상기 예시적인 실시예에서, 7개 파라미터는 재순환 쉐이더(602) 블렌드 스테이지를 프로그래밍하기 위해 이용된다.
·변수 A
·변수 B
·변수 C
·변수 D
·서브
·바이어스
·시프트.
다음 설명에는 일부 예시적인 블렌드 동작이 있다:
SelectArg
R = (0,0,0,D,0,0,0) = D
Modulate,Modulate2X,Modulate4X
R = (0,B,C,0,0,0,0) = B*C
변수 B와 C의 성분은 함께 곱해진다. 명확하게 하기 위해 2 또는 4의 스케일링 인수가 사용될 수 있다:
R = (0,B,C,0,0,0,1) = B*C*2
R = (0,B,C,0,0,0,2) = B*C*4
Add
변수 성분들이 함께 가산된다:
R = (A,0,0,D,0,0,0) = A + D
AddSigned,AddSigned2X
변수 성분들이 -0.5 바이어스 가산되어, -0.5 내지 0.5 값의 이용가능범위를 만든다. 명확하게 하기 위해 그 결과에 2가 곱해질 수 있다:
R = (A,0,0,D,0,-0.5,0) = A+D-0.5
R = (A,0,0,D,0,-0.5,1) = (A+D-0.5)*2
Subtract
제 1 변수에서 제 2 변수 성분을 뺀다:
R = (A,0,0,D,1,-0,0) = D-A
AddSmooth
기본 가산동작은 불분명함 때문에 수학적으로 정확하다. 그러나, 그것은 포화되어 갑자기 윤곽대비 인공물을 발생시킨다. 더 좋아보이지만 수학적으로 덜 정확한 방법은 결과를 빼는 것이다:
R = (A,0,C,C,0,0,0) = C+A*(1-C)
BlendDiffuseAlpha,BlendTextureAlpha,BlendFactorAlpha,
BlendCurrentAlpha
선형 블렌드는 꼭지점으로부터의 보간 알파(C=래스터된 알파). 현재 텍스쳐로부터의 알파(C=텍스쳐 알파), 상수 알파(C=상수 알파) 및/또는 현재 컬러의 알파(C=계산된 알파) 중의 알파를 이용하여 수행된다:
R = (A,B,CA,0,0,0,0) = A*(1-CA)+B*CA
BlendTextureAlphaPM
미리 곱해진 알파와의 선형 블렌드:
R = (A,0,CA,D,0,0,0) = D+A*(1-CA)
ModulateAlpha_AddColor
제 2 변수는 제 1 알파를 이용하여 변조되고, 그 결과는 제 1 변수에 가산된다:
RGBA= (0,BA,CRGB,BRGB,0,0,0) = BRGB*CRGB
ModulateColor_AddAlpha
변수가 변조된 후, 제 1 변수의 알파가 가산된다:
RGBA= (0,BRGB,CRGB,BA,0,0,0) = BRGB*CRGB+BA
ModulateInvAlpha_AddColor
ModulateAlpha_AddColor와 유사하지만, 제 1 변수의 알파의 반전을 이용한다:
RGBA= (ARGB,0,CA,CRGB,0,0,0) = (1-CA)*ARGB+CRGB
ModulateInvColor_AddAlpha
ModulateColor_AddAlpha와 유사하지만, 제 1 컬러의 반전을 이용한다:
RRGB= (ARGB,0,CA,CRGB,0,0,0) = (1-CA)*ARGB+CRGB
ModulateInvColor_AddAlpha
ModulateColor_AddAlpha와 유사하지만, 제 1 컬러의 반전을 이용한다:
RRGB= (ARGB,0,CRGB,CA,0,0,0) = (1-CRGB)*ARGB+CA
Specular Color and Texture
상기 동작에 추가하여, 좀더 복잡한 블렌드가 다중 스테이지를 이용하여 실현될 수 있다. 예를 들어:
최종 컬러 = 반사 텍스쳐*반사 컬러 + 확산 텍스쳐*확산 컬러
다음과 같은 2개 스테이지를 이용하여 구성될 수 있다:
1. R = (0,TSPEC,CSPEC,0,0,0,0) = TSPEC+CSPEC
2. R = (0,TDIFF,CDIFF,0,0,0,0) = TSPEC*CSPEC+ TDIFF*CDIFF
Embossing
이 예시는 엠보싱을 위한 것이다:
최종 컬러 = (확산 컬러 + 상수*(노멀1-노멀2))*재료 텍스쳐
다음과 같은 3개 스테이지를 이용하여 구성될 수 있다:
1. R = (0,TNORM1,Constant,CDIFF,0,0,0) = TNORM1*Constant+CDIFF
2. R = (0,TNORM2,Constant,R,1,0,0) = (TNORM1-TNORM2)*Constant+CDIFF
3. R = (R,0,TMAT,0,0,0,0) = ((TNORM2)*Constant+CDIFF)*TMAT
Detail Texture
이 예시는 세부사항 텍스쳐링을 위한 것이다. 차이 텍스쳐는 0.5의 바이어스를 갖는다.
최종 컬러 = 베이스 텍스쳐 + (차이 텍스쳐 A-0.5) + (차이 텍스쳐 B = 0.5)
다음과 같이 구성될 수 있다:
1. R = (0,0,0,TBASE,0,0,0) = TBASE
2. R = (TDIFFA,0,0,R,0,0,0) = TBASE-TDIFFA-0.5
3. R = (TDIFFB,0,0,R,0,0,0) = TBASE+TDIFFA-0.5+TDIFFB-0.5
상기 예시적인 실시예에서, 클램프 블럭(672)은 다음의 클램핑 모드 중 어느 모드를 제공할 수 있다:
tel_alpha_env(모드) 클램프 설명
TEV_MODE_LINEAR TEV_CLAMP_HITEV_CLAMP_LO S=(R>11023)?1023:(R<-1024)?-1024:R)S=(R>255)?255:((R<0)?0:R)
TEV_MODE_GE0 TEV_CLAMP_HITEV_CLAMP_LO S=(R>=0)?255:0S=(R>=0)?0:255
TEV_CLAMP_HITEV_CLAMP_LO S=(R==0)?255:0S=(R==0)?0:255
TEV_CLAMP_HITEV_CLAMP_LO S=(R<=0)?255:0S=(R<=0)?0:255
알파함수 지원
예시적인 실시예의 재순환 쉐이더(602)는 다른 알파함수를 지원한다. 상기 예시적인 실시예에서, 알파비교 동작은 재순환 스테이지의 일부는 아니지만 재순환이 완료된 후 수행되는 쪽이 좋다. 도 11 참조. 예시적인 실시예에서, 알파함수는 다음의 동작 중 하나를 이용하여 기준 알파와 소스 알파를 비교한다:
·always
·never
·not equal
·equal
·less
·greater than or equal
·less than or equal
·greater than
2개 함수는 예시적인 실시예에서 다음을 이용하여 결합된다:
·AND
·OR
·XOR
·XNOR
만일 픽셀 쿼드(quad)내 이용가능 픽셀 모두가 알파 테스트에 실패하는 경우, 상기 쿼드는 제외되고 따라서 프레임 버퍼(702)는 갱신되지 않는다. 다음에 구성될 수 있는 일부 예시가 있다:
예시 1
Asrc > Aref0 AND Asrc < Aref1
예시 2
Asrc > Aref0 OR Asrc < Aref1
(예를 들어 비-재순환 알파 비교와 결합된) 재순환 쉐이더(602)의 알파 기능성은 쉐이드 트리에 대해 유사한 투명성 트리를 제공하기 위해 사용될 수 있다. 특히, 재순환 쉐이더(602)의 알파 기능성은 M 알파 입력에 대해 N 논리 알파동작을 제공하기 위해 사용될 수 있고, 여기서 N과 M은 임의의 정수가 될 수 있다. 예를 들어 만화 윤곽선그리기와 같이 사진과 동일하지 않은 효과를 제공하기 위해 알파 비교와 알파 논리동작의 결합이 이용될 수 있다. 예를 들어 본 명세서에서 참조로 구체화되어 있는 "Method and Apparatus For Providing Non-Photorealistic Cartoon Outlining Within A Graphics System"이라는 명칭의 Law 등의 공동 계류중인 공통 양도된 미국특허출원 제 호(대리인 일련번호 제723-973호) 및 2000년 8월 23일 제출된 대응하는 가특허출원 제60/226,915호 참조.
예시적인 Z 텍스쳐링
쉐이더(602)는 텍스쳐 매핑을 이용하여 스크린 z을 수정함으로써 깊이가 있는 스프라이트를 지원한다. 일단 가능해지면, 쉐이더(602)는 기준 z 및 2개 경사 대신 쿼드 당 픽셀 엔진(700)으로 4개 z값을 전송한다. 각각의 z값은 쿼드 기준 z에 z 텍셀(texel)을 추가하거나, 또는 기준 z을 z 텍셀로 교체함으로써 얻어진다. 상기한 공통 양도된 Z 텍스쳐링 특허출원을 참조.
도 13은 쉐이더(602)를 포함한 텍스쳐 환경 유닛(600)의 예시적인 블럭도를 나타낸다. 상기 예시적인 실시예에서 텍스쳐 환경 유닛(600)은 명령어 섹션(694) 및 쉐이더(602)에 추가로 포그(fog) 오퍼레이터(690) 및 포그 블렌더 오퍼레이터(692)를 포함한다. 블럭(690,692)의 동작에 관한 세부사항에 대해서는본 명세서에서 참조로 구체화되어 있는 "Method and Apparatus For Providing Improved Fog Effects In A Graphics System"이라는 명칭의 Law 등의 공동 계류중인 공통 양도된 미국특허출원 제 호(대리인 일련번호 제723-954호) 및 2000년 8월 23일 제출된 대응 가특허출원 제60/227,032호 참조.
도 14는 포그 동작의 좀더 상세한 블럭도를 나타낸다.
멀티텍스쳐링을 위한 예시적인 재순환 쉐이더의 사용
도 15는 재순환 쉐이더(602)가 멀티텍스쳐링을 위해 사용될 수 있는 방법을 나타낸다. 예시적인 실시예에서, 재순환 텍스쳐 유닛(500)은 소정 표면에 대응하는 텍스쳐 매핑 출력의 순서를 나타낼 수 있다. 예를 들어, 한 구성에서 동일한 최초 표면상으로 최대 8개의 서로 다른 텍스쳐들을 매핑하는 것이 가능하다. 재순환 텍스쳐 유닛(500)은 텍스쳐 매핑 출력의 대응 순서를 생성하는 직접(및 간접) 텍스쳐링 동작을 제공할 수 있다. 예시적인 실시예에서, 재순환 쉐이더(602)는 그것이 이용가능해짐에 따라서 각각의 매핑된 텍스쳐 출력을 수신하고, 변형 유닛(300)에 의해 수행된 조명 동작으로부터 유도된 최초 표면 컬러/알파 정보 및/또는 다른 이전에 생성된 텍스쳐 매핑과 상기 매핑된 텍스쳐 출력을 블렌드한다. 재순환 쉐이더(602)는 상기 텍스쳐 유닛이 추가 텍스쳐 출력을 그 순서대로 생성하는 동안 텍스쳐 유닛(500)에 의해 먼저 생성된 텍스쳐 출력을 블렌드하도록 파이프라인 방식으로 그 블렌드 동작을 수행한다.
예시적인 실시예에서, 재순환 쉐이더(602)는 재순환 텍스쳐 유닛(500)에 의해 제공된 추가 정보와 더 블렌드하기 위해 중간 블렌드결과를 보유한다. 재순환텍스쳐 유닛(500)이 텍스쳐 매핑 출력 순서대로 최종 텍스쳐 매핑 출력을 전개한 직후, 재순환 쉐이더(602)는 대응하는 최종 블렌드 동작을 수행하고, 깊이 버퍼링, 프레임 버퍼(702) 컨텐트와의 최종 컬러 블렌드, 및 디스플레이를 위해 포그 블럭(600b)에 의해 블렌드 결과를 출력할 수 있다.
도 16은 도 6에 도시된 재순환 쉐이더(602)를 이용하는 예시적인 멀티텍스쳐링 프로세스를 나타낸다. 도 16의 도해적 비제한 예시에서, 변형 유닛(300)은 텍스쳐 좌표 데이터를 생성한다(블럭(10020)). 시스템(50)은 그 후 생성된 텍스쳐 좌표 데이터와 특정 텍스쳐 맵을 연관시키고, 텍스쳐 유닛(500)은 텍스쳐 맵으로부터 대응하는 텍셀(텍스쳐 데이터)을 검색한다(블럭(1004)). 한편, 재순환 쉐이더(602)는 소정 블렌드/쉐이딩 동작을 수행하도록 구성되고, 검색된 텍스쳐 데이터는 블렌드를 위해 재순환 쉐이더(602)에 제공된다(블럭(1008)). 재순환 쉐이더(602)는 일부 다른 입력 및/또는 보유된 이전 결과와 상기 검색된 텍스쳐 데이터를 블렌드할 수 있다(블럭(1010)). 예를 들어, 재순환 쉐이더(602)는 꼭지점 단위로 다각형상에서 수행되는 Gouraud 쉐이딩 동작에 대응하는 조명 블럭(300e)에 의해 생성된 컬러 또는 불투명값과 검색된 텍스쳐 데이터를 블렌드하기도 한다. 일부 경우세어 블렌드 동작(1010)은 검색된 텍스쳐 데이터와 이전에 검색된 텍스쳐 데이터를 블렌드하도록 조작된다. 때때로 블렌드동작(1010)은 상기 검색된 텍스쳐 데이터상의 변형을 수행하거나, 또는 연속되는 블렌드 동작을 위해 재순환 쉐이더(602)내 저장을 위해 검색된 텍스쳐 데이터를 통과하도록 단순하게 작용하기도 한다.
재순환 쉐이더(602)는 중간 결과로서 블렌드 동작(1010)의 출력을 임시 저장한다(블럭(1012)). 그 후 전체 프로세스는 텍스쳐 데이터의 추가 세트를 검색 및 블렌드하기 위해 몇 배로 순환될 수 있다. 예시적인 실시예에서, 재순환 쉐이더(602)는 텍스쳐 유닛(500)이 추가 텍스쳐 매핑을 검색하기 위해 블럭(1004,1008)을 수행하는 동시에 블럭(1010,1012)을 수행할 수 있다.
도 17은 재순환 쉐이더(602)를 이용하는 예시적인 멀티텍스쳐 파이프라인을 나타낸다. 도 17은 재순환 쉐이더(602)가 재순환되는 각각의 시간에 이전 블렌드 동작에 의해 제공된 블렌드 결과의 일부 또는 전부와 새로운 데이터를 블렌드할 수 있는 추가적인 독립 제어되는 블렌드 스테이지를 제공한다.
적절한 예시적인 실시예의 시스템(50)이 실시간 렌더링 시스템이기 때문에, 재순환 텍스쳐 유닛(500)이 재순환될 수 있는 횟수는 메이지(mage) 프레임 사이의 시간(예를 들어, 1초의 1/30 또는 1/60)에 비례하여 각각의 재순환에 대해 취해진 시간양에 의해 제한된다. 한 예시적인 실시예에서, 재순환 텍스쳐 유닛(500)이 단일 렌더링 패스에서 수행할 수 있는 전체 재순환 횟수는 8이 되지만, 다른 구성에서는 다른 재순환 횟수를 제공할 수 있다. 상기 예시적인 실시예에서, 재순호나 쉐이더(602)는 텍스쳐 유닛(500)이 재순환할 수 있는 횟수의 거의 2배로 재순환할 수 있다. 재순환 쉐이더(602)에 의해 제공된 추가적인 재순환은 예를 들어 포그, z 텍스쳐링, 환경 매핑, 엠보싱, 상세화된 텍스쳐링, 및 다른 영상화 효과를 포함한 복수의 향상되고 흥미있는 이미지 효과를 수행하기 위해 사용될 수 잇다. 재순환 쉐이더(602)로의 텍스쳐 입력은 텍스쳐 유닛(500)이 텍스쳐를 이용가능하게 할수 없는 스테이지동안 널(null)로 적절하게 설정된다.
도 18은 멀티텍스쳐링 동작을 제공하기 위해 재순환 쉐이더(602)를 제어하기 위한 예시적인 제어단계를 나타낸다. 이러한 특정한 예시에서, 주 프로세서(110)는 복수의 다른 꼭지점(214) 조명이 비춰지거나 변형 유닛(300)에 의해 변형되도록 지정할 수 있다. 변형 유닛(300)은 래스터라이저(400)가 조명 계산에 기초하여 꼭지점을 래스터화할 수 있는 동안 텍스쳐 유닛(500)에 대한 애플리케이션을 위한 적절한 텍스쳐 좌표를 생성할 수 있다. 그렇게 생성된 상기 텍스쳐 좌표는 복수의 텍스쳐 맵(504)에 기초하여 일련의 텍스쳐 매핑 동작에서 사용될 수 있다. 이들 텍스쳐 매핑결과는 멀티텍스쳐 블렌드를 제공하기 위해 복수의 연속적인 재순환 쉐이더(602) 스테이지에 순차적으로 제공될 수 있다.
예시적인 레지스터 인터페이스
도 19는 레지스터 컨텐트의 상세한 예시적 정의를 제공한다. 다음은 도 19에 도시된 여러 레지스터의 좀더 상세한 설명을 추가로 나타낸다:
다음은 예시적인 애플리케이션 프로그래밍 인터페이스 호출이다:
GXSetTevOp
설명: 이것은 텍스쳐 환경 유닛의 최초 프로그래밍을 좀더 쉽게 하기 위해 설계된 편의 함수이다. 이 매크로는 익숙한 텍스쳐 결합함수를 실현하기 위해 예정된 변수를 이용하여 GXSetTevColorIn, GXSetTevColorOp, GXSetTevAlphaIn, 및 GXSetTevAlphaOp를 호출한다.
재순환 쉐이더 스테이지의 연속 세트를 실행가능하게 하기 위해, 상기 애플리케이션은 GXSetNumTevStages 함수를 호출해야 한다.
후술된 표에서, Cv는 상기 스테이지에서 출력 컬러이고, Cr은 이전 스테이지의 출력 컬러이며, Ct는 텍스쳐 컬러이다. Av는 스테이지에서 출력 알파이고, Ar은 이전 스테이지의 출력 알파이며, At는 텍스쳐 알파이다. 특수한 경우로서, 래스터된 컬러(GX_CC_RASC)는 Cr로서 이용되고, 래스터된 알파(GX_CA_RASA)는 이전 스테이지가 없기 때문에 제 1의 재순환 쉐이더 스테이지에서 Ar로서 이용된다.
모드 ColorOp AlphaOp
GX_MODULATE Cv=CrCt Av=ArAt
GX_DECAL Cv=(1-At)Cr+AtCt Av=Ar
GX_REPLACE Cv=Ct Av=At
GX_BLEND Cv=(1-Ct)Cr+Ct Av=AtAr
GX_PASSCLR Cv=Cr Av=Ar
변수: id=스테이지 id, 모드=예정된 컬러결합 모드
사용예:
void GXSetTevOp(GXTevStageID id, GXTevMode mode);
GXTevStageID
열거값
GX_TEVSTAGE0
GX_TEVSTAGE1
GX_TEVSTAGE2
GX_TEVSTAGE3
GX_TEVSTAGE4
GX_TEVSTAGE5
GX_TEVSTAGE6
GX_TEVSTAGE7
GX_TEVSTAGE8
GX_TEVSTAGE9
GX_TEVSTAGE10
GX_TEVSTAGE11
GX_TEVSTAGE12
GX_TEVSTAGE13
GX_TEVSTAGE14
GX_TEVSTAGE15
GX_MAX_TEVSTAGE
설명
텍스쳐 환경(재순환 쉐이더) 스테이지명
GXTevMode
열거값:
GX_DECAL
GX_MODULATE
GX_REPLACE
GX_PASSCLR
GX_BLEND
설명: 텍스쳐 환경 제어 설정.
GXSetNumTevStage
설명
이 함수는 연속적인 텍스쳐 환경(재순환 쉐이더) 스테이지 수를 가능하게 한다. (포깅(fogging) 및 블렌드 이전) 출력 픽셀 컬러는 마지막 스테이지로부터의결과이다. 마지막 재순환 쉐이더 스테이지는 레지스터 GX_TEVPREV에 기록해야 한다. GXSetTevColorOp 및 GXSetTevAlphaOp 참조. 적어도 하나의 재순환 쉐이더 스테이지가 가능해야 한다. 만일 Z-텍스쳐가 가능한 경우, 상기 Z 텍스쳐는 마지막 스테이지에서 조사된다. GXSetZTexture 참조.
조명 컬러, 텍스쳐 좌표, 및 텍스쳐 맵과 재순환 쉐이더 스테이지의 연관성은 GXSetTevOrder를 이용하여 설정된다. 이용가능한 텍스쳐 좌표의 수는 GXSetNumTexGens을 이용하여 설정된다. 이용가능한 컬러 채널의 수는 GXSetNumChans를 이용하여 설정된다.
GXInit은 디폴트로 nStage를 1로 설정할 것이다.
변수: nStage
활성 재순환 쉐이더 스테이지의 수: 최소값은 1, 최대값은 16.
사용예: void GXSetNumTevStages(u8 nStages)
GXSetTevColorIn
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 컬러 결합기 유닛의 입력 오퍼랜드를 설정한다. 입력 오퍼랜드(a,b,c)는 RGB 컬러이고, 각각의 성분은 부호없는 8비트이다(0<=a,b,c<=255). d 입력 오퍼랜드는 RGB 컬러이고, 각각의 성분은 부호있는10비트 입력이다(-1024<=d<=1023).
입력 오퍼랜드가 알파값(GX_CC_A0,GX_CC_A1,GX_CC_A2,GX_CC_APREV, GX_CC_TEXA,GX_CC_RASA)인 경우, 상기 알파값은 3개 컬러 채널(R=A,G=A,B=A)상에서 복제된다.
이러한 재순환 쉐이더 스테이지에 의해 구현된 함수는 함수 GXSetTevColorOp를 이용하여 설정된다.
이 스테이지의 출력은 디폴트로 레지스터 GX_TEVPREV(GXInit 참조)로 향하게 되지만, GXSetTevColorOp에 의해 명확하게 설정될 수 있다.
재순환 쉐이더 스테이지의 출력을 저장하기 위해 사용된 레지스터는 또한 입력 GX_CC_C0,GX_CC_C1,GX_CC_C2,GX_CC_CPREV으로서 사용될 수도 있다. GXSetTevColor 또는 GXSetTevColorS10를 이용하여 일정한 컬러값을 갖는 이들 레지스터를 프로그래밍할 수 있다.
각각의 레지스터는 성분(RGB) 당 부호없는 8비트 수 또는 부호있는 10비트 수 중의 하나를 저장할 수 있다. 만일 부호있는 10비트 수가 입력 a,b 또는 c을 위해 선택되는 경우, 상기 수는 8비트로 절단된다. 상기 수를 변환하기 위한 시도는 없고, 최상위비트는 간단하게 버려진다.
입력 오퍼랜드 GX_CC_RASC 및 GX_CC_RASA는 꼭지점 단위 조명 수학식의 결과가 된다. 입력 오퍼랜드 GX_CC_TEXC 및 GX_CC_TEXA는 이 스테이를 위한 텍스쳐 입력이 된다. 상기 텍스쳐 컬러 입력 GX_CC_TEXC는 오퍼랜드 GX_TC_TEXRRR, GX_TC_TEXGGG 또는 GX_TC_TEXBBB를 설정함으로써 입력전에 교체된 그 컬러 성분을가질 수 있다. 재순환 쉐이더 스테이지에 대해 교체 오퍼랜드 중의 하나를 선택할 수 있다. 예시적인 실시예에서, GX_TC_TEXRRR과 GX_TC_GGG 모두를 동일한 스테이지에서 사용하는 것은 불법이다.
GXSetTevOrder는 쉐이더 스테이지를 특정 컬러 및 텍스쳐와 관련시킨다.
변수
스테이지 재순환 쉐이더 스테이지명
a 입력 컬러 오퍼랜드, 성분에 있어서 부호없는 8비트
b 입력 컬러 오퍼랜드, 성분에 있어서 부호없는 8비트
c 입력 컬러 오퍼랜드, 성분에 있어서 부호없는 8비트
d 입력 컬러 오퍼랜드, 성분에 있어서 부호있는 10비트
사용예:
void GXSetTevColorIn(
GXTevStageID stage,
GXTevColorArg a,
GXTevColorArg b,
GXTevColorArg c,
GXTevColorArg d);
GXSetTevAlphaIn
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 알파 결합기 유닛의 한 스테이지에서 입력 오퍼랜드를 설정한다. 상기 입력 오퍼랜드(a,b,c)는 부호없는 8비트 입력이다(0<=a,b,c<=255). d 입력 오퍼랜드는 부호있는 10비트 입력이 된다(-1024<=d<=1023).
각각의 쉐이더 스테이지는 다음의 함수를 실행한다:
reg = (d(op)((1.0-c)*a+c*b)+bias)*scale;
op, bias, scale로 기재된 동작은 GXSetTevAlphaOp 함수를 이용하여 프로그래밍가능하다.
이 스테이지의 출력은 디폴트로 레지스터 GX_TEVPASS(GXInit 참조)로 향하게 되지만, 명확하게 GXSetTevAlphaOp에 의해 설정될 수 있다. 상기 결과는 GXSetTevClampMode에 의해 설정된 클램프 모드에 기초하여 0 내지 255 또는 -1024 내지 1023의 2개 범위로 클램핑될 수 있다. 입력(a,b, 또는 c)이 부호있는 10비트 수로부터 오는 경우(이전 재순환 쉐이더 스테이지의 결과 또는 입력 상수 중 하나), 8 최하위 비트만이 사용된다. 상기 수를 변환하려는 시도는 없고, 상위 비트는 간단하게 제거된다.
재순환 쉐이더 스테이지의 출력을 저장하기 위해 사용된 레지스터는 또한 입력 GX_CA_A0, GX_CA_A1, GX_CA_A2, GX_CA_APREV으로서 이용될 수 있다. GXSetTevColor 또는 GXSetTevColorS10를 이용하여 일정한 알파값으로 이들 레지스터를 프로그래밍할 수 있다.
입력 오퍼랜드(GX_CA_RASA)는 꼭지점단위 조명 수학식의 결과가 된다. 입력 오퍼랜드 GX_CA_TEXA는 이 스테이지에서 텍스쳐 알파 입력이 된다. GXSetTevOrder를 이용하여 이들 입력이 대응하는 컬러 및 텍스쳐를 선택할 수 있다.
변수
스테이지 스테이지명
a 입력 오퍼랜드, u8
b 입력 오퍼랜드, u8
c 입력 오퍼랜드, u8
d 입력 오퍼랜드, s10
사용예:
void GXSetTevAlphaIn(
GXTevStageID stage,
GXTevAlphaArg a,
GXTevAlphaArg b,
GXTevAlphaArg c,
GXTevAlphaArg d);
GXSetTevColorOp
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 유닛의 이 스테이지에서 컬러 결합기 함수를 위한 op, scale, bias 및 clamping 동작을 설정한다. 이 함수는 또한 컬러 결합기 함수의 결과를 포함할 출력 레지스터 out_reg를 지정한다. 상기 컬러 결합기 함수는:
out_reg = (d(op)((1.0-c)*a+c*b)+bias)*scale;
입력 파라미터 a,b,c,d는 GXSetTevColorIn 함수를 이용하여 선택된다. a,b,c 입력은 부호없는 8비트 입력이 된다(0<=a,b,c<=255). d 입력은 부호없는 10비트 입력이 된다(-1024<=d<=1023). 결과인 out_reg는 또한 클램프 이네이블 및 현재 클램핑 모드에 따라 부호있는 10비트 결과가 될 수 있다. GXSetTevClampMode 참조.
재순환 쉐이더 출력 레지스터는 모든 재순환 쉐이더 스테이지 사이에서 공유된다. 상기 재순환 쉐이더 출력 레지스터는 또한 일정한 컬러 입력으로서 이용될 수 있어서, 애플리케이션은 입출력 레지스터를 할당하는데 주의해서 특정한 수학식을 실행할 때 충돌이 일어나지 않도록 해야 한다. 상기 애플리케이션은 마지막 활성 재순환 쉐이더 스테이지에서 GX_TEVPREV로 출력해야 한다.
함수 GXSetTevOp는 예정된 수학식명에 기초하여 GXSetTevColorIn 및 GXSetTevColorOp의 파라미터를 설정하는 더 간단한 방법을 제공한다. GXSetTevOp 및 GXSetTevColorIn/GXSetTevColorOp를 블렌드 사용해서는 안된다.
GXSetTevOP는 출력 레지스터 사용에 관해 일부 가정을 한다, 즉 GX_TEVPREV는 항상 출력 레지스터가 되고, 이전 재순환 쉐이더 스테이지 결과를 다음 재순환 쉐이더 스테이지로 전달하기 위해 사용된다.
변수
stage 재순환 쉐이더 스테이지명
op 재순환 쉐이더 동작
add_biasscale 바이어스값스케일값
clamp GX_TRUE인 경우 결과 클램핑
out_reg 레지스터명 출력. 마지막 활성 재순환 쉐이더 스테이지는 GX_TEVPREV에 기록
사용예:
void GXSetTevColorOp(
GXTevStageID stage,
GXTevOp op,
GXTevBias bias,
GXTevScale scale,
GXBool clamp,
GXTevRegID out_reg);
GXSetTevAlphaOp
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 유닛의 상기 스테이지를 위한 알파 결합기 함수에서 op, scale, bias, 및 clamping 동작을 설정한다. 이 함수는 또한 알파 결합기 함수의 결과를 포함하게 될 레지스터 out_reg를 지정한다. 상기 알파 결합기 함수는:
out_reg = (d(op)((1.0-c)*a+c*b)+bias)*scale;
입력 파라미터 a,b,c,d는 GXSetTevAlphaIn을 이용하여 설정된다. a,b,c 입력은 부호없는 8비트 입력이다(0<=a,b,c<=255). d 입력은 부호있는 10비트 입력이다(-1024<=d<=1023). 결과 out_reg는 또한 클램프 이네이블 및 현재 클램핑 모드에 따라 부호있는 10비트 결과가 될 수 있다. GXSetTevClampMode 참조.
GXSetTevStages를 이용하여 연속적인 수의 재순환 쉐이더 스테이지를 가능하게 해야 한다. 마지막 활성 재순환 쉐이더 스테이지는 레지스터 GX_TEVPREV로 그출력을 기록한다.
변수
stage 재순환 쉐이더 스테이지명
op 재순환 쉐이더 동작
bias 바이어스값
scale 스케일값
clamp GX_TRUE인 경우 결과 클램핑
out_reg 레지스터명 출력
사용예:
void GXSetTevAlphaOp(
GXTevStageID stage,
GXTevOp op,
GXTevBias bias,
GXTevScale scale,
GXBool clamp,
GXTevRegID out_reg);
GXSetTevColor
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 유닛에서 일정한 컬러 레지스터 중의 하나를 설정하기 위해 사용된다. 이들 레지스터는 모든 재순환 쉐이더 스테이지에 이용가능하다. 이들 레지스터 중 적어도 하나는 멀티텍스쳐 구성에서 한 재순환 쉐이더 스테이지에서의 출력을 다음 스테이지로 통과시키기 위해 사용된다. 이 애플리케이션은 사용중에 충돌이 일어나지 않도록 이들 레지스터를 할당할 책임이 있다.
이 함수는 부호없는 8비트 컬러를 설정할 수 있다. 부호있는 10비트 컬러를 설정하기 위해 GXSetTexColorS10를 이용한다.
변수
id = 컬러 레지스터 id
color = 일정한 컬러값
사용예: void GXSetTevColor(GXTevRegID id, GXColor color);
GXSetTevColorS10
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 유닛에서 일정한 컬러 레지스터 중의 하나를 설정하기 위해 사용된다. 이들 레지스터는 모든 재순환 쉐이더 스테이지에 이용가능하다. 이들 레지스터 중 적어도 하나는 멀티텍스쳐 구성에서 한 재순환 쉐이더 스테이지의 출력을 다음 스테이지로 통과시키기 위해 사용된다. 상기 애플리케이션은 사용중에 충돌이 일어나지 않도록 이들 레지스터를 할당할 책임이 있다.
이 함수는 컬러성분이 부호있는 10비트 수가 되도록 할 수 있다. 8비트 부호없는 컬러(대개의 경우)를 설정하기 위해 GXSetTevColor를 이용한다.
변수
id = 컬러 레지스터 id
color = 일정한 컬러값. 각각의 컬러성분은 -1024 내지 +1023 범위를 가질 수 있다.
사용예: void GXSetTevColorS10(GXTevRegID id, GXColorS10 color);
GXSetTevClampMode
설명
이 함수는 텍스쳐 환경(재순환 쉐이더) 유닛에서 이 스테이지를 위한 클램프 모드를 설정한다. 이 모드는 알파와 컬러 결합기 모두를 위해 사용된다. 상기 모드는 아래 표에 도시된 바와 같이 GXSetTevcolorOp 및 GXSetTevAlphaOp에 의해 설정된 클램프 제어가 번역되는 방법에 영향을 미친다. R은 TEV 스테이지 결과 컬리이다.
GXInit은 GX_TC_LINEAR로 모드를 설정한다.
모드-알파와 컬러 TEV에서 공유됨 클램프-알파 및 컬러 TEV에서 독립적 설명
GX_TC_LINEAR GX_FALSEGX_TRUE -1024<=R<=1023이 되도록 클램프0<=R<=255이 되도록 클램프
GX_TC_GE GX_FALSEGX_TRUE 출력=(R>=0)?255:0출력=(R>=0)?0:255
GX_TC_EQ GX_FALSEGX_TRUE 출력=(R==0)?255:0출력=(R==0)?0:255
GX_TC_LE GX_FALSEGX_TRUE 출력=(R<=0)?255:0출력=(R<=0)?0:255
변수
stage = Tev 스테이지 ID
mode = 클램프 모드(수용값은 GX_TC_LINEAR, GX_TC_GE, GX_TC_LE, GX_TC_EQ)
사용예:
void GXSetTevClampMode(
GXTevStageID stage,
GXTevClampMode mode);
GXSetAlphaCompare
설명
이 함수는 마지막 활성 텍스쳐 환경(재순환 쉐이더) 스테이지로부터의 알파 출력을 이용하는 알파 비교함수에 대한 파라미터를 설정한다. 활성 재순환 쉐이더 스테이지의 수는 GXSetTevStages를 이용하여 지정된다.
출력 알파는 소스와 착신지(프레임 버퍼) 픽셀이 결합되는 방법을 제어하는 블렌드 수학식(GXSetBlendMode 참조)에서 사용될 수 있다.
상기 알파 비교동작은:
alpha_pass = (alpha_src(comp0)ref0)(op)(alpha_src(comp1)ref1)
여기서 alpha_src는 마지막 활성 재순환 쉐이더 스테이지로부터의 알파이다. 예를 들어, 다음의 수학식을 실행할 수 있다:
alpha_pass = (alpha_src > ref0) AND (alpha_src < ref1) 또는
alpha_pass = (alpha_src > ref0) OR (alpha_src < ref1)
Z 비교는 텍스쳐링 이전 또는 이후에 발생할 수 있다. GXSetZCompLoc 참조. Z 비교가 텍스쳐링전에 발생하는 경우, Z는 Z 테스트에만 기초하여 기록된다. 상기 컬러는 Z 테스트와 알파테스트가 모두 통과되는 경우에 기록된다.
Z 비교가 텍스쳐링 후에 발생되는 경우, 컬러 및 Z는 Z 테스트 및 알파테스트 모두가 통과되는 경우에 기록된다. (빌보드 트리와 같이) 정확하게 Z 버퍼링될 필요가 있는 절단 형상을 만들기 위해 텍스쳐를 이용하는 경우, 텍스쳐링후에 Z 버퍼로의 파이프라인을 구성해야 한다.
변수
comp0 = 비교 서브함수 0
ref0 = 서브함수 0을 위한 기준값, 8비트
op = 서브함수 0과 서브함수 1을 결합하기 위한 동작. 수용값은: GX_AOP_AND, GX_AOP_OR, GX_AOP_XOR, GX_AOP_XNOR.
comp1 = 비교 서브함수 1
ref1 = 서브함수 1을 위한 기준값, 8비트
사용예:
void GXSetAlphaCompare(
GXCompare comp0,
u8 ref0,
GXAlphaOp op,
GXCompare comp1,
u8 ref1);
GXSetTevOrder
설명
이 함수는 이 텍스쳐 환경(재순환 쉐이더) 스테이지에 대한 입력으로서 이용가능할 텍스쳐 및 래스터된 컬러를 지정한다. 텍스쳐 좌표(coord)는 GXSetTexCoordGen 함수를 이용하여 입력 애트리뷰트로부터 생성되고, GXLoadTexObj에 의해 먼저 로드된 텍스쳐 맵을 조사하기 위해 이용된다. 이 스테이지를 위해 래스터화될 컬러 또한 지정된다. 상기 컬러는 GXSetChanCtrl 함수에 의해 제어되는 꼭지점단위 조명 결과가 된다.
이 함수는 재순환 쉐이더 스테이지를 이네이블할 수 없다는 점에 유의해야 한다. 연속되는 수의 재순환 쉐이더 스테이지를 이네이블하기 위해, 스테이지 GX_TEVSTAGE0에서 시작하여 GXSetNumTevStages 함수를 이용한다.
각각의 재순환 쉐이더의 동작은 독립적이다. 상기 컬러 동작은 GXSetTevColorIn 및 GXSetTevColorOp에 의해 제어된다. 상기 알파 동작은 GXSetTevAlphaIn 및 GXSetTevAlphaOp에 의해 제어된다.
모든 활성 재순환 쉐이더 스테이지에서 이용가능한 텍스쳐 좌표의 수는 GXSetNumTexGens을 이용하여 설정된다. 모든 활성 재순환 쉐이더 스테이지에서 이용가능한 컬러 채널의 수는 GXSetNumChans을 이용하여 설정된다. 활성 재순환 쉐이더 스테이지는 생성되는 것 이상의 텍스쳐 좌표 또는 컬러를 인용해서는 안된다.
GXSetTevOrder를 이용하면, 텍스쳐들이 동일한 크기를 갖는 한 단일 텍스쳐 좌표를 많은 텍스쳐로 알릴 수 있다:
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD0,GX_TEXMAP0,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD0,GX_TEXMAP1,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD0,GX_TEXMAP2,GX_COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX_COLOR0A0);
임의의 재순환 쉐이더 스테이지에서 임의의 생성된 텍스쳐 좌표를 이용할 수도 있다.
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD3,GX_TEXMAP0,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP1,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX_COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX_COLOR0A0);
만일 재순환 쉐이더 스테이지에서 텍스쳐가 전혀 사용되지 않는 경우, coord 및 map을 널로 설정한다:
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD2,GX_TEXMAP0,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD_NULL,GX_TEXMAP_NULL,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX_COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX_COLOR0A0);
만일 재순환 쉐이더 스테이지에서 컬러가 전혀 사용되지 않는 경우, 컬러를 널로 설정한다:
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD3,GX_TEXMAP0,GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP1,GX_COLOR_NULL);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX_COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX_COLOR0A0);
GXSetTevOrder는 함수 호출에서 텍스쳐 맵의 크기에 따라 GXSetTexCoordGen에 의해 생성된 정규화된 텍스쳐 좌표를 스케일링할 것이다. 이러한 이유로, 텍스쳐 좌표는 만일 맵들이 동일한 크기를 갖는 경우에만 다수의 텍스쳐 맵으로 알려질 수 있다. 일부 경우, 특정 스케일을 갖는 텍스쳐 좌표를 생성하기를 원할 수도 있지만, 텍스쳐 룩업을 디스에이블한다(이것은 간접 범프 매핑을 위해 텍스쳐를 생성하는 경우 발생된다). 이것을 실현하기 위해서 GX_TEXMAP_DISABLE 플래그를 이용한다:
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD0,GX_TEXMAP3,GX_TEXMAP_DISABLE,GX_COLOR_NULL);
이것은 GX_TEXMAP3을 이용하여 GX_TEXCOOR0을 스케일링할 것이지만, GX_TEXMAP3의 룩업을 디스에이블한다.
GXInit은 디폴트 재순환 쉐이더 오더를 설명한다.
변수
stage = 재순환 쉐이더 스테이지 ID
coord = 텍스쳐 좌표 ID
map = 텍스쳐 맵 ID
color = 컬러 채널. 수용값은: GX_COLOR0A0,GX_COLOR1A1, GX_COLOR_NULL.
사용예:
void GXSetTevOrder(
GXTevStageID stage,
GXTevCoordID coord,
GXTexMapID map,
GXChannelID color
);
예시:
이 페이지는 텍스쳐 환경(TEV) 설정의 일부 샘플을 나타낸다.
하나의 래스터된 컬러
예를 들어 꼭지점 컬러를 갖는 다각형
예를 들어 꼭지점 조명
이 구성은 PASSCLR 동작을 이용하여 래스터된 컬러 채널을 직접적으로 통과시킨다. 텍스쳐는 사용되지 않는다.
// 하나의 래스터된 컬러
// 채널 COLOR0A0는 조명된 컬러를 갖는 것으로 가정된다.
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_PASSCLR);
하나의 텍스쳐
예를 들어 간단한 텍스쳐 매핑
이 구성은 텍스쳐 컬러를 직접 표시하기 위해 사용된다. 래스터된 컬러는 사용될 수 없다.
//하나의 텍스쳐
//GX_TEXMAP0으로 텍스쳐가 로딩되어야 한다.
//적절한 texcoord 생성이 GX_TEXCOORD0으로 설정되어야 한다.
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_NULL);
GXSetTevOp(GX_TEVSTAGE0,GX_REPLACE);
래스터된 컬러에 의해 변조된 하나의 텍스쳐
예를 들어 조명된 물질 텍스쳐
이 구성은 MODULATE 동작을 이용한다.
//래스터된 컬러에 의해 변조된 하나의 텍스쳐
//채널 COLOR0A0는 조명된 컬러를 갖는 것으로 가정된다.
//적절한 texcoord 생성은 GX_TEXCOORD0으로 설정되어야 한다.
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_MODULATE);
래스터된 컬러상에 중첩된 하나의 텍스쳐
예를 들어 확산 조명된 표면상의 하이라이트 맵
예를 들어 조명된 표면상의 투사된 섀도우 맵
이 구성은 DECAL 동작을 이용한다. 상기 텍스쳐는 블렌드를 위해 사용될 알파값을 포함해야 한다.
//래스터된 컬러에 의해 변조된 하나의 텍스쳐
//채널 COLOR0A0는 조명된 컬러를 갖는 것으로 가정된다.
//텍스쳐는 GX_TEXMAP0으로 로드되어야 한다.
//적절한 texcoord 생성은 GX_TEXCOORD0으로 설정되어야 한다.
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_DECAL);
일정한 컬러
이 구성한 조명유닛으로부터의 출력 또는 임의의 텍스쳐를 이용하지 않는다.
//TEV 레지스터로부터의 일정한 컬러
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR_NULL);
GXSetTevColorIn(//output=register0
GX_CC_ZERO,
GX_CC_ZERO,
GX_CC_ZERO,
GX_CC_C0);
GXSetTevColorOp(
GX_TEVSTAGE0,
TX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1
GX_DISABLE,
GX_TEVPREV);
GXSetTevColor(GX_TEVREG0, constColor);
래스터된 2개 컬러 가산
예를 들어 확산 조명된 컬러+반사 조명된 컬러
텍스쳐는 사용되지 않는다. 제 1 스테이지는 PASSCLR 동작을 이용하여 제 1 래스터된 컬러를 통과시킨다. 제 2 스테이지는 상세한 설정이 요구되는 경우 2개 컬러를 더한다.
//2개 래스터된 컬러 가산
//2개 컬러 채널 COLOR0/COLOR1이 사용될 것이다.
GXSetNumTevStages(2);
//Stage0은 래스터된 컬러를 간단하게 통과한다.
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_PASSCLR);
//Stage1은 제 2 컬러와 이전 스테이지에서의 출력을 가산한다.
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevColorIn(//output=RASC+CPREV
GX_TEVSTAGE1,
GX_CC_ZERO,
GX_CC_RASC,
GX_CC_ONE,
GX_CC_CPREV);
GXSetTevColorOp(
GX_TEVSTAGE1,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_ENABLE,
GX_TEVPREV);
GXSetTevClampMode(GX_TEVSTAGE1,GX_TC_LINEAR);
래스터된 컬러와 알파 가산
예를 들어 확산 조명 컬러 + 알파 채널에서 처리된 반사 조명 컬러
만일 상기 반사 컬러가 백색만 허용되는 경우, TEV 스테이지에서 각각의 RGB 성분으로 알려질 반사 조명된 컬러를 위해 알파 채널을 사용할 수 있다. 하나의 스테이지만 필요로 하기 때문에 2개 채널을 이용하는 것보다 더 우수한 충전율(fill-rate)을 얻을 수 있다. 이 방법은 알파가 다른 목적으로 유지되지 않는 경우 사용될 수 있다.
//래스터된 컬러와 알파 가산
//Color0/Alpha0은 독립적으로 처리될 수 있다.
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevColorIn(//output=RASC+RASA
GX_TEVSTAGE0,
GX_CC_ZERO,
GX_CC_RASA,
GX_CC_ONE,
GX_CC_RASC);
GXSetTevColorOp(
GX_TEVSTAGE0,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_ENABLE,
GX_TEVPREV);
GXSetTevClampMode(GX_TEVSTAGE0,GX_TC_LINEAR);
다른 예시적인 호환적 구성
상기한 시스템 성분(50)의 일부는 상기한 홈비디오게임 콘솔 구성과 다르게 구성될 수 있다. 예를 들어, 시스템(50)을 에뮬레이트하거나 또는 그와 호환성이 있는 다른 구성의 플랫폼상에서 시스템(50)을 위해 기록된 그래픽 애플리케이션 또는 다른 소프트웨어를 실행시킬 수 있다. 만일 다른 플랫폼이 성공적으로 시스템(50)의 하드웨어 및 소프트웨어 자원 모두 또는 일부를 에뮬레이트, 시뮬레이트 및/또는 제공할 수 있다면, 다른 플랫폼은 상기 소프트웨어를 성공적으로 실행시킬 것이다.
한 예로써, 에뮬레이터는 시스템(50)의 하드웨어 및/또는 소프트웨어 구성(플랫폼)과 다른 하드웨어 및/또는 소프트웨어 구성(플랫폼)을 제공할 수 있다. 상기 에뮬레이터 시스템은 애플리케이션 소프트웨어가 기록된 시스템의 하드웨어 및/또는 소프트웨어 성분의 일부 또는 전부를 에뮬레이트 또는 시뮬레이트하는 하드웨어 및/또는 소프트웨어 성분을 포함할 수 있다. 예를 들어, 에뮬레이터 시스템은 개인용 컴퓨터와 같은 범용 디지털 컴퓨터를 포함할 수 있고, 상기 컴퓨터는 시스템(50)의 하드웨어 및/또는 펌웨어를 시뮬레이트하는 소프트웨어 에뮬레이터 프로그램을 실행한다.
일부 범용 디지털 컴퓨터(예를 들어, IBM 또는 매킨토시 개인용 컴퓨터 및 컴퍼터블)는 이제 DirectX 또는 다른 표준 3D 그래픽 명령어 APIs에 맞는 3D 그래픽 파이프라인을 제공하는 3D 그래픽 카드가 장착된다. 표준 사운드 명령어 세트에 기초하여 고품질의 스테레오 사운드를 제공하는 스테레오 사운드카드가 장착될 수도 있다. 그러한 에뮬레이터 소프트웨어를 실행하는 멀티미디어-하드웨어 장착된 개인용 컴퓨터는 시스템(50)의 그래픽 및 사운드 성능을 비슷하게 하기 위한 충분한 성능을 가질 수 있다. 에뮬레이터 소프트웨어는 프로세싱, 3D 그래픽, 사운드, 주변기기 및 게임 프로그래머가 게임 소프트웨어에 기록하기 위한 홈비디오게임 콘솔 플랫폼의 다른 성능을 시뮬레이트하기 위해 개인용 컴퓨터 플랫폼상의 하드웨어 자원을 제어한다.
도 20a는 호스트 플랫폼(1201), 에뮬레이터 성분(1303), 및 기억매체(62)상에 제공된 2진 이미지 실행가능 게임 소프트웨어를 이용하는 예시적인 전체 에뮬레이션 프로세서를 나타낸다. 호스트(1201)는 예를 들어 개인용 컴퓨터, 비디오게임 콘솔, 또는 충분한 계산력을 갖는 임의의 다른 플랫폼과 같은 범용 또는 특수목적 디지털 컴퓨팅 디바이스가 될 수 있다. 에뮬레이터(1303)는 호스트 플랫폼(1201)상에서 실행하고 호스트 플랫폼(1201)에 의해 처리될 수 있는 형태로 기억매체(62)로부터의 명령어, 데이터 및 다른 정보의 실시간 변환을 제공하는 소프트웨어 및/또는 하드웨어가 될 수 있다.
한 예로써, IBM PowerPC 또는 다른 특정 프로세서를 이용하는 플랫폼상에서의 실행을 위해 소프트웨어가 기록되고, 호스트(1201)가 다른(예를 들어, 인텔) 프로세서를 이용하는 개인용 컴퓨터인 경우, 에뮬레이터(1303)는 기억매체(62)로부터 하나 또는 일련의 2진-이미지 프로그램 명령을 페치하고 이들 프로그램 명령을 하나 이상의 대응하는 인텔 2진-이미지 프로그램 명령으로 변환한다. 상기 에뮬레이터(1303)는 또한 그래픽 및 오디오 프로세서(114)에 의한 처리를 위한 그래픽 명령어 및 오디오 명령어를 페치 및/또는 생성하고, 호스트(1201)상에서 이용가능한 하드웨어 및/또는 소프트웨어 그래픽 및 오디오처리 자원에 의해 처리될 수 있는 포맷(들)로 이들 명령어를 변환한다. 한 예로써, 에뮬레이터(1303)는 (예를 들어 표준 DirexX, OpenGl 및/또는 사운드 APIs를 이용하여) 호스트(1202)의 특정 그래픽 및/또는 사운드 하드웨어에 의해 처리도리 수 있는 명령어로 이들 명령어를 변환할 수 있다.
상기한 비디오게임 시스템의 특징의 일부 또는 전부를 제공하기 위해 사용되는 에뮬레이터(1303)에는 에뮬레이터를 이용한 게임을 위한 여러 옵션 및 스크린모드의 선택을 간략하게 하거나 자동화하는 GUI(graphic user interface)가 제공될 수도 있다. 한 예시에서, 그러한 에뮬레이터(1303)는 원래 소프트웨어가 제공되기로 한 호스트 플랫폼과 비교하여 향상된 기능성을 더 포함할 수 있다.
도 20b는 에뮬레이터(1303)와 함께 사용하기에 적당한 에뮬레이션 호스트 시스템(1201)을 나타낸다. 시스템(1201)은 처리유닛(1203) 및 시스템 메모리(1205)를 포함한다. 시스템 버스(1207)는 시스템 메모리(1205)를 포함한 여러 시스템 구성요소들을 처리유닛(1203)과 연결한다. 시스템 버스(1207)는 다수의 버스구조 중 임의의 구조를 이용한 메모리 버스 또는 메모리 제어장치, 주변기기 버스 및 로컬버스를 포함한 여려 타입의 버스구조 중 어느 구조가 될 수 있다. 시스템 메모리(1207)는 ROM(1251) 및 RAM(1254)을 포함한다. 작동개시동안과 같이 개인용 컴퓨터 시스템(1201)내 소자들 사이에서 정보를 전달하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)(1256)은 ROM(1252)에 저장된다. 시스템(1201)은 여러 구동 및 관련 컴퓨터 판독가능 매체를 더 포함한다. 하드디스크 드라이브(1209)는 (일반적으로 고정된) 자기 하드디스크(1211)로부터 판독되고, 거기에 기록된다. (추가(가능한한 선택적) 자기디스크 드라이브(1213)는 제거가능한 "플로피" 또는 다른 자기디스크(1215)로부터 판독되고, 거기에 기록된다. 일부 구성에서 광디스크 드라이브(1217)는 CD ROM 및 다른 광매체와 같은 제거가능한 광디스크(1219)로부터 판독되고, 거기에 기록한다. 하드디스크 드라이브(1209) 및 광디스크 드라이브(1217)는 각각 하드디스크 드라이브 인터페이스(1221) 및 광 드라이브 인터페이스(1225)에 의해 시스템 버스(1207)와 연결된다. 상기 드라이브 및그 관련 컴퓨터 판독가능한 매체는 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈, 게임 프로그램 및 개인용 컴퓨터 시스템(1201)을 위한 다른 데이터의 비휘발성 기억장치를 제공한다. 다른 구성에서, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 타입의 컴퓨터 판독가능함 매체(예를 들어, 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, Bernoulli 카트리지, RAM, ROM 등) 또한 사용될 수 있다.
에뮬레이터(1303)를 포함한 복수의 프로그램 모듈은 하드디스크(1211), 제거가능한 자기디스크(1215), 광디스크(1219) 및/또는 시스템 메모리(1205)의 ROM(1252) 및/또는 RAM(1254)에 저장될 수 있다. 그러한 프로그램 모듈은 그래픽 및 사운드 APIs, 하나 이상의 애플리케이션 프로그램, 다른 프로그램 모듈, 프로그램 데이터 및 게임 데이터를 제공하는 운영시스템을 포함할 수 있다. 사용자는 키보드(1227), 지정(pointing) 디바이스(1229), 마이크, 조이스틱, 게임 제어장치, 통신위성 접시, 스캐너 등과 같은 입력 디바이스를 통해 개인용 컴퓨터 시스템(1201)에 명령어 및 정보를 입력할 수 있다. 이들 및 다른 입력디바이스는 시스템 버스(1207)와 연결되는 직렬포트 인터페이스(1231)를 통해 처리유닛(1203)과 연결될 수 있지만, 병렬포트, 게임포트 화이어(Fire) 와이어 버스 또는 USB(universal serial bus)와 같은 다른 인터페이스에 의해 연결될 수 없다. 모니터(1233) 또는 다른 타입의 표시장치는 또한 비디오 어댑터(1235)와 같은 인터페이스에 의해 시스템 버스(1207)와 연결된다.
시스템(1201)은 또한 모뎀(1154) 또는 인터넷과 같은 네트워크(1152) 상에서통신을 하기 위한 다른 네트워크 인터페이스수단을 포함할 수 있다. 내부 또는 외부에 있을 수 있는 모뎀(1154)은 직렬포트 인터페이스(1231)에 의해 시스템 버스(123)와 연결된다. 네트워크 인터페이스(1156)는 또한 시스템(1201)이 근거리 통신망(1158)에 의해 원격 계산디바이스(1150)(예를 들어 또다른 시스템(1201))와 통신하도록 하기 위해 제공될 수 있다(또는 그러한 통신은 원거리 통신망(1152) 또는 다이얼 업 또는 다른 통신수단과 같은 다른 통신 경로에 의할 수도 있다). 시스템(1201)은 일반적으로 프린터 및 다른 표준 주변기기 디바이스와 같은 다른 주변기기 출력디바이스를 포함할 것이다.
한 예시에서, 비디오 어댑터(1235)는 마이크로소프트사 DirectX 7.0 또는 다른 버전과 같은 표준 3D 그래픽 애플리케이션 프로그래머 인터페이스에 기초하여 발생된 3D 그래픽 명령어에 응하여 고속 3D 그래픽 렌더링을 제공하는 3D 그래픽 파이프라인 칩 세트를 포함할 수 있다. 한 세트의 스테리오 스피커(1237)는 또한 버스(1207)에 의해 제공된 사운드 명령어에 기초하여 고품질의 스테레오 사운드를 생성하는 하드웨어 및 내장형 소프트웨어 지원을 제공하는 종래의 "사운드 카드"와 같은 사운드 생성 인터페이스에 의해 시스템 버스(1207)와 연결된다. 이들 하드웨어 성능은 시스템(1201)이 기억매체(62)에 저장된 소프트웨어를 플레이하기 위한 충분한 그래픽 및 사운드 속도 성능을 제공하도록 한다.
인용된 모든 문서는 본 명세서에 참조로 구체화되어 있다.
현재 가장 실용적이고 적절한 실시예인 것으로 간주되는 것과 관련하여 본 발명을 설명했지만, 본 발명은 개시된 실시예에 제한되지 않고, 반대로 첨부된 특허청구범위의 범주내에 포함된 여러 수정 및 대응 구성을 포함하고자 하는 것이 이해될 것이다.
이상과 같이, 본 발명은 멀티텍스쳐링 뿐만 아니라 복수의 다른 융통성있는 블렌드효과를 위해 사용될 수 있는 보편화된 쉐이드 트리 블렌더를 제공할 수 있다.

Claims (48)

  1. 그래픽 파이프라인에서, 하드웨어 쉐이더는 선택된 입력을 블렌드하여 계산된 컬러 또는 불투명 출력을 제공하고, 상기 출력은 후속되는 블렌드 동작을 위한 상기 하드웨어 쉐이더에 대한 입력으로 사용되기 위해 피드백되는 것을 특징으로 하는 그래픽 파이프라인.
  2. 제 1 항에 있어서,
    상기 쉐이더의 출력은 n개의 블렌드 스테이지를 제공하기 위해 재순환될 수 있는 것을 특징으로 하는 그래픽 파이프라인.
  3. 제 1 항에 있어서,
    상기 쉐이더 출력의 재순환은 쉐이드 트리형 결합 동작을 허용하는 것을 특징으로 하는 그래픽 파이프라인.
  4. 제 1 항에 있어서,
    상기 쉐이더는 컬러 블렌드 및 알파 블렌드 동작 모두를 동일한 블렌드 동작 스테이지에서 제공하는 것을 특징으로 하는 그래픽 파이프라인.
  5. 제 1 항에 있어서,
    상기 파이프라인은 상기 쉐이더와 결합된 재순환 텍스쳐 유닛을 포함하고, 상기 쉐이더는 상기 재순환 텍스쳐 유닛이 상기 쉐이더에 의한 블렌드를 위해 추가 텍스쳐 출력을 제공하도록 추가적인 텍스쳐 매핑(texture mapping) 동작을 수행하는 동안 상기 재순환 텍스쳐 유닛에 의해 앞서 제공된 텍스쳐 출력을 블렌드하는 것을 특징으로 하는 그래픽 파이프라인.
  6. 제 1 항에 있어서,
    상기 쉐이더는 프로그래밍가능한 클램퍼를 포함하는 것을 특징으로 하는 그래픽 파이프라인.
  7. 제 1 항에 있어서,
    상기 쉐이더는 프로그래밍가능한 스케일러를 포함하는 것을 특징으로 하는 그래픽 파이프라인.
  8. 제 1 항에 있어서,
    상기 쉐이더는 비교기를 포함하는 것을 특징으로 하는 그래픽 파이프라인.
  9. 제 1 항에 있어서,
    상기 쉐이더는 프로그래밍가능한 컬러 스왑(swap)을 포함하는 것을 특징으로 하는 그래픽 파이프라인.
  10. 제 1 항에 있어서,
    상기 쉐이더의 출력은 복수의 후속되는 블렌드 동작을 위한 입력으로서 이용가능한 것을 특징으로 하는 그래픽 파이프라인.
  11. 제 1 항에 있어서,
    상기 쉐이더는 동일한 블렌드 동작 스테이지동안 컬러 블렌드 및 알파 블렌드 동작 모두를 수행하기 위한 분리된 블렌드회로를 포함하는 것을 특징으로 하는 그래픽 파이프라인.
  12. 제 1 항에 있어서,
    상기 쉐이더는 출력을 상기 쉐이더의 입력으로 제공하는 피드백 수단을 포함하는 것을 특징으로 하는 그래픽 파이프라인.
  13. 제 12 항에 있어서,
    상기 피드백 수단은 블렌드 동작으로부터의 출력을 보유하기 위한 하나 이상의 저장버퍼를 포함하고, 상기 버퍼 중 적어도 하나는 상기 쉐이더의 입력과 연결된 출력부를 갖는 것을 특징으로 하는 그래픽 파이프라인.
  14. 그래픽 시스템에서
    (a)결합된 텍스쳐링된 성분 출력을 제공하기 위해 성분결합 수단을 통해 텍스쳐 매핑 데이터를 통과시키는 단계;
    (b)성분결합 수단을 재구성하는 단계; 및
    (c)결합된 멀티텍스쳐링된 성분출력을 제공하기 위해 재구성되었지만 동일한 성분결합 수단을 통해 상기 결합된 텍스쳐링된 성분출력을 통과시키는 단계를 포함하는 것을 특징으로 하는 멀티텍스쳐링방법.
  15. 제 14 항에 있어서,
    상기 단계 (b)와 (c)는 복수회 반복되는 것을 특징으로 하는 멀티텍스쳐링방법.
  16. 제 14 항에 있어서,
    상기 성분결합 수단은 텍스쳐 컬러 결합기를 포함하는 것을 특징으로 하는 멀티텍스쳐링방법.
  17. 제 14 항에 있어서,
    상기 성분결합 수단은 알파 결합기를 포함하는 것을 특징으로 하는 멀티텍스쳐링방법.
  18. 멀티텍스쳐링된 다각형을 제공하는 방법에 있어서:
    (a) 제 1 텍스쳐 매핑 데이터를 생성하는 단계;
    (b) 제 1 텍스쳐 매핑 데이터에 대응하는 제 1 출력을 제공하기 위해 결합기 하드웨어를 통해 상기 제 1 텍스쳐 매핑 데이터를 통과시키는 단계;
    (c) 제 2 텍스쳐 매핑 데이터를 생성하는 단계; 및
    (d) 상기 제 1 및 제 2 텍스쳐 매핑 데이터에 대응하는 제 2 출력을 제공하기 위해 상기 결합기 하드웨어를 통해 상기 제 2 텍스쳐 매핑 데이터를 통과시키는 단계를 포함하는 것을 특징으로 하는 멀티텍스쳐링된 다각형 제공방법.
  19. 제 18 항에 있어서,
    단계 (b)는 블렌드 스테이지동안 수행되고, 단계 (d)는 상기 블렌드 스테이지 이후의 추가 블렌드 스테이지동안 수행되는 것을 특징으로 하는 멀티텍스쳐링된 다각형 제공방법.
  20. 제 18 항에 있어서,
    상기 결합기 하드웨어는 10개 이상의 연속적인 텍스쳐 매핑 데이터 블렌드 스테이지를 제공하는 것을 특징으로 하는 멀티텍스쳐링된 다각형 제공방법.
  21. 결합기 회로를 포함하는 텍스쳐 환경 유닛 및 적어도 하나의 텍스쳐 매핑 유닛을 포함하는 그래픽 렌더링 파이프라인에서, 그래픽 렌더링 방법은 이미지내에 표시된 표면에 다중 텍스쳐를 적용하는 다중 스테이지를 제공하기 위해 상기 결합기 회로를 반복적으로 재사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 제 21 항에 있어서,
    상기 반복적 재사용 단계는 제 1 블렌드 사이클/스테이지 동안 제 1 텍셀(texel) 컬러를 결합하기 위해 결합기 회로를 이용하는 단계 및 상기 제 1 사이클/스테이지와 다른 제 2 블렌드 사이클/스테이지를 이용하여 제 2 텍셀 컬러를 결합하기 위해 동일한 결합기 회로를 이용하는 단계를 포함하고, 상기 제 1 및 제 2 사이클/스테이지는 모두 단일 이미지 프레임을 생성하기 위한 주기내에 속하는 것을 특징으로 하는 방법.
  23. 제 21 항에 있어서,
    상기 제 1 및 제 2 사이클/스테이지는 연속적인 것을 특징으로 하는 방법.
  24. 제 21 항에 있어서,
    상기 결합기 회로는 별개의 컬러 결합기 회로 및 알파 결합기 회로를 포함하는 것을 특징으로 하는 방법.
  25. 제 21 항에 있어서,
    상기 결합기 회로는
    (D + (-1)sub* ((1-c)*A + C*B) + bias) << shift를 계산하고,
    여기서 A, B, C, 및 D는 4개 현재 컬러 레지스터, 래스터된 컬러, 텍스쳐, 알파 성분, 0 및 1에서 선택되는 것을 특징으로 하는 방법.
  26. 관련 메모리에 저장된 텍스쳐 데이터 및 다각형 꼭지점 데이터에 적어도 부분적으로 응하여 이미지를 렌더링 및 표시하는 프로세싱 파이프라인을 포함하는 그래픽 시스템에서, 텍스쳐 특성 및/또는 하나 이상의 다른 텍스쳐에 대응하는 텍스쳐 데이터를 상기 렌더링 및 표시된 이미지의 표면에 선택적으로 매핑하기 위한 멀티텍스쳐 프로세싱 서브시스템은:
    계산된 컬러를 생산하기 위해 텍스쳐, 래스터된 컬러 및/또는 알파 성분 데이터를 결합하기 위해서 상기 파이프라인내에 구성되고, 상기 계산된 컬러를 파이프라인으로 다시 도입할 수 있는 피드백 기구를 갖는 컬러/알파 성분 블렌드유닛을 포함하는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  27. 제 26 항에 있어서,
    상기 블렌드유닛은 적어도 하나의 배율기(multiplier) 및 하나의 가산기(adder)를 포함하고, 블렌드동작을 수행하기 위해 최대 4개 입력변수를 수용하도록 구성되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  28. 관련 메모리에 저장된 텍스쳐 데이터 및 다각형 꼭지점 데이터에 적어도 부분적으로 응하여 이미지를 렌더링 및 표시하는 프로세싱 파이프라인을 포함하는 그래픽 시스템에서, 텍스쳐 특성 및/또는 하나 이상의 다른 텍스쳐에 대응하는 텍스쳐 데이터를 상기 렌더링 및 표시된 이미지의 표면에 선택적으로 매핑하는 멀티텍스쳐 프로세싱 서브시스템은:
    텍스쳐 및/또는 컬러 또는 알파 데이터의 블렌드를 실현하기 위해 소정 프로세싱 스테이지동안 입력 텍스쳐, 컬러 및/또는 알파 데이터를 처리하기 위해 상기 파이프라인내에 구성된 텍스쳐 환경 유닛을 포함하고,
    상기 텍스쳐 환경 유닛은 선택된 임시적 프로세싱 스테이지동안 작동가능한 피드백 기구를 갖는 컬러/알파 블렌드유닛을 포함하며, 현재 프로세싱 스테이지의 출력은 다음 프로세싱 스테이지에 대한 입력으로서 이용가능하게 되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  29. 제 28 항에 있어서,
    상기 블렌드유닛은 현재 프로세싱 스테이지의 출력이 다음의 임시적 프로세싱 스테이지에 대한 입력으로서 이용가능하게 되도록 하기 위해 적어도 하나의 저장 레지스터와 연결되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  30. 제 28 항에 있어서,
    상기 텍스쳐 환경 유닛은 최대 16개 연속적인 임시 프로세싱 스테이지를 수용할 수 있는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  31. 제 28 항에 있어서,
    상기 피드백 기구는 복수의 저장 레지스터를 포함하는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  32. 제 28 항에 있어서,
    상기 블렌드유닛은 적어도 하나의 배율기 및 하나의 가산기를 포함하고, 블렌드동작을 수행하기 위해 최대 4개 입력변수를 받아들이도록 구성되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  33. 관련된 메모리에 저장된 텍스쳐 데이터 및 다각형 꼭지점 데이터에 적어도 부분적으로 응하여 이미지를 렌더링 및 표시하는 프로세싱 파이프라인을 포함하는 그래픽 시스템에서, 텍스쳐 특성 및/또는 하나 이상의 다른 텍스쳐에 대응하는 텍스쳐 데이터를 상기 렌더링 및 표시된 이미지의 표면에 선택적으로 매핑하기 위한 멀티텍스쳐 프로세싱 서브시스템은:
    소정의 임시 프로세싱 사이클/스테이지동안 입력 텍스쳐 및 래스터된 컬러 데이터에 대한 별개의 수학적 블렌드동작을 제공하기 위해 입력 텍스쳐 및 래스터된 컬러 데이터를 처리하기 위해 상기 파이프라인내에 구성된 텍스쳐 환경 유닛을 포함하고,
    상기 텍스쳐 환경 유닛은 선택된 임시 프로세싱 사이클/스테이지동안 조작되는 피드백 기구를 포함하며, 현재 임시 프로세싱 사이클/스테이지의 출력은 다음의 임시 프로세싱 사이클/스테이지에 대한 입력으로서 이용가능하게 되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  34. 제 33 항에 있어서,
    상기 입력 텍스쳐 및 래스터된 컬러 데이터는 RGB 및 알파 데이터를 포함하는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  35. 제 33 항에 있어서,
    텍스쳐 환경 유닛 임시 프로세싱 사이클/스테이지의 출력은 다음의 텍스쳐 환경 임시 프로세싱 스테이지에 대한 입력으로서 이용가능한 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  36. 제 33 항에 있어서,
    상기 텍스쳐 환경 유닛은 최대 16개 연속적인 임시 프로세싱 스테이지를 수용할 수 있는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  37. 제 33 항에 있어서,
    상기 텍스쳐 환경 유닛은 적어도 하나의 배율기 및 하나의 가산기를 갖는 블렌드유닛을 더 포함하는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  38. 제 33 항에 있어서,
    상기 블렌드유닛은 블렌드동작을 수행하기 위해 최대 4개 입력변수를 받아들이도록 구성되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  39. 관련 메모리에 저장된 텍스쳐 데이터 및 다각형 꼭지점 데이터에 적어도 부분적으로 응하여 이미지를 렌더링 및 표시하는 프로세싱 파이프라인, 텍스쳐 특성 및/또는 하나 이상의 다른 텍스쳐에 대응하는 텍스쳐 데이터를 상기 렌더링 및 표시된 이미지의 표면에 선택적으로 매핑시키기 위한 텍스쳐 프로세싱 서브시스템, 및 상기 입력 텍스쳐 및 래스터된 컬러 데이터에 대한 별개의 수학적 블렌드 동작을 제공하기 위해 입력 텍스쳐 및 래스터된 컬러 데이터를 처리하기 위한 텍스쳐 환경 유닛을 포함하는 그래픽 시스템에서, 다중 텍스쳐를 처리하기 위한 방법은:
    제 1 텍스쳐 환경 유닛 임시 프로세싱 사이클/스테이지동안 제 1 세트의 텍스쳐 및 래스터된 컬러 데이터에 대한 블렌드 동작을 수행하는 단계; 및
    다음의 텍스쳐 환경 유닛 임시 프로세싱 사이클/스테이지에 대한 입력으로서 상기 제 1 임시 프로세싱 사이클/스테이지의 출력을 제공하는 단계를 포함하는 것을 특징으로 하는 다중 텍스쳐 처리방법.
  40. 제 39 항에 있어서,
    최대 16개 연속적인 텍스쳐 환경 임시 프로세싱 스테이지로부터의 출력은 다음 텍스쳐 환경 유닛 임시 프로세싱 사이클/스테이지에 대한 입력으로서 제공될 수 있는 것을 특징으로 하는 다중 텍스쳐 처리방법.
  41. 제 39 항에 있어서,
    상기 입력 텍스쳐 및 래스터된 컬러 데이터는 RGB 및 알파 데이터를 포함하는 것을 특징으로 하는 다중 텍스쳐 처리방법.
  42. 제 28 항에 있어서,
    현재 프로세싱 스테이지의 출력은 복수의 다음 프로세싱 스테이지에 대한 입력으로서 이용가능하게 되는 것을 특징으로 하는 멀티텍스쳐 프로세싱 서브시스템.
  43. 텍스쳐 특성 및/또는 하나 이상의 다른 텍스쳐에 대응하는 텍스쳐 데이터를 선택적으로 샘플링하기 위한 멀티플렉서 프로세싱 서브시스템을 포함하는 그래픽 시스템에서, 하드웨어 쉐이더는 상기 멀티텍스쳐 프로세싱 서브시스템으로부터 제 1 텍스쳐 데이터 샘플 및 다음 텍스쳐 데이터 샘플을 수신하고, 상기 제 1 텍스쳐 데이터 샘플상에서 수행된 쉐이딩/블렌딩 동작으로부터의 출력 및 다음 텍스쳐 데이터 샘플을 이용하여 쉐이딩/블렌딩 동작을 수행하기 위해 상기 제 1 텍스쳐 데이터 샘플을 이용하여 수행된 쉐이딩/블렌딩 동작으로부터의 출력을 상기 쉐이더의 입력으로 재순환하는 쉐이딩/블렌딩 동작을 수행하는 것을 특징으로 하는 하드웨어쉐이더.
  44. 멀티텍스쳐 프로세싱 서브시스템의 텍스쳐 샘플 출력에 대한 블렌드/쉐이딩 동작을 수행하는 하드웨어 쉐이더로 다중 텍스쳐의 샘플을 순차적으로 제공하는 멀티텍스쳐 프로세싱 서브시스템을 포함하는 그래픽 파이프라인에서,
    상기 하드웨어 쉐이더는 다음의 텍스쳐 샘플 출력을 이용하여 상기 결과 출력의 다음 블렌드/쉐이딩 동작을 수행하기 위해 블렌딩/쉐이딩 동작의 결과 출력을 재순환하는 것을 특징으로 하는 그래픽 파이프라인.
  45. 다각형 꼭지점 데이터 및 텍스쳐 데이터에 적어도 부분적으로 응하여 이미지를 렌더링 및 표시하는 그래픽 프로세싱 파이프라인은:
    텍스쳐 검색 유닛으로부터 선택된 검색된 텍스쳐 룩업 데이터를 텍스쳐 어드레스 좌표/데이터 프로세싱 유닛으로 재순환하기 위해 단일 텍스쳐 어드레스 좌표/데이터 프로세싱 유닛, 단일 텍스쳐 검색 유닛, 및 텍스쳐 룩업 데이터 피드백 경로를 갖는 재순환 텍스쳐링 파이프라인 수단; 및
    상기 텍스쳐 검색 유닛의 출력을 수신하도록 연결된 하드웨어 쉐이더 및 선택된 블렌드된 컬러 또는 불투명 출력 데이터를 재순환하기 위해 상기 하드웨어 쉐이더의 출력으로부터 상기 쉐이더의 입력으로의 피드백 경로를 갖는 재순환 쉐이드 트리 알파/컬러 블렌더 수단을 포함하고, 상기 재순환 수단은 다음 블렌드 동작을 위한 쉐이더의 입력으로서 이용하기 위해 피드백되는 출력을 제공하기 위해 선택된쉐이더 입력을 블렌드하는 것을 특징으로 하는 그래픽 프로세싱 파이프라인.
  46. 제 45 항에 있어서,
    상기 단일 텍스쳐 어드레스 좌표/데이터 프로세싱 유닛은 논리적인 직접 및 간접 텍스쳐 좌표 데이터의 프로세싱을 간삽하는(interleave) 것을 특징으로 하는 그래픽 프로세싱 파이프라인.
  47. 그래픽 시스템에서, 멀티텍스쳐 프로세싱 서브시스템은:
    단일 텍스쳐 검색 유닛으로부터 텍스쳐 어드레스 좌표/데이터 프로세싱 유닛으로 검색된 간접 텍스쳐 룩업 데이터를 재순환하기 위해 단일 텍스쳐 어드레스 좌표/데이터 프로세싱 유닛, 단일 텍스쳐 검색 유닛, 및 텍스쳐 룩업 데이터 피드백 경로를 갖는 텍스쳐링 수단; 및
    상기 텍스쳐 검색 유닛의 출력을 수신하기 위해 연결된 재순환 하드웨어 쉐이더를 포함하고, 상기 쉐이더는 다음 블렌드 동작을 위해 상기 쉐이더에 대한 입력으로서 이용하기 위해 선택적으로 피드백되는 계산된 컬러 또는 불투명 출력을 제공하기 위해 선택되어 수신된 출력을 블렌드하는 것을 특징으로 하는 그래픽 시스템.
  48. 제 47 항에 있어서,
    상기 단일 텍스쳐 어드레스 좌표/데이터 프로세싱 유닛은 논리적 직접 및 간접 텍스쳐 좌표 데이터의 프로세싱을 간삽하는 것을 특징으로 하는 그래픽 시스템.
KR1020010050975A 2000-08-23 2001-08-23 그래픽 시스템용 재순환 쉐이드 트리 블렌더 KR20020015973A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US22688800P 2000-08-23 2000-08-23
US60/226,888 2000-08-23
US09/722,367 US7034828B1 (en) 2000-08-23 2000-11-28 Recirculating shade tree blender for a graphics system
US09/722,367 2000-11-28

Publications (1)

Publication Number Publication Date
KR20020015973A true KR20020015973A (ko) 2002-03-02

Family

ID=26920956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010050975A KR20020015973A (ko) 2000-08-23 2001-08-23 그래픽 시스템용 재순환 쉐이드 트리 블렌더

Country Status (8)

Country Link
US (2) US7034828B1 (ko)
EP (1) EP1182618A3 (ko)
JP (1) JP4731028B2 (ko)
KR (1) KR20020015973A (ko)
CN (1) CN1339764A (ko)
AU (1) AU5785101A (ko)
CA (1) CA2355353C (ko)
TW (1) TWI244050B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100791411B1 (ko) * 2006-12-07 2008-01-07 한국전자통신연구원 그래픽스 처리장치 및 방법
KR100887462B1 (ko) * 2002-12-03 2009-03-10 마이크로소프트 코포레이션 감마 정정의 결여를 보상하기 위한 알파 정정
KR100899488B1 (ko) * 2006-05-08 2009-05-27 엔비디아 코포레이션 초기 z-모드를 이용한 구성가능한 그래픽 렌더링파이프라인의 최적화

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548238B2 (en) * 1997-07-02 2009-06-16 Nvidia Corporation Computer graphics shader systems and methods
US9007393B2 (en) * 1997-07-02 2015-04-14 Mental Images Gmbh Accurate transparency and local volume rendering
US7749089B1 (en) 1999-02-26 2010-07-06 Creative Kingdoms, Llc Multi-media interactive play system
US7445550B2 (en) 2000-02-22 2008-11-04 Creative Kingdoms, Llc Magical wand and interactive play experience
US7878905B2 (en) 2000-02-22 2011-02-01 Creative Kingdoms, Llc Multi-layered interactive play experience
US6761637B2 (en) 2000-02-22 2004-07-13 Creative Kingdoms, Llc Method of game play using RFID tracking device
US6724394B1 (en) * 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7002591B1 (en) * 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7066781B2 (en) 2000-10-20 2006-06-27 Denise Chapman Weston Children's toy with wireless tag/transponder
JP4001015B2 (ja) 2001-01-23 2007-10-31 セイコーエプソン株式会社 画像入力装置及び画像入力方法
US7564460B2 (en) 2001-07-16 2009-07-21 Microsoft Corporation Systems and methods for providing intermediate targets in a graphics system
GB2383248B (en) * 2001-12-14 2005-12-07 Imagination Tech Ltd 3-dimensional computer graphics system
US6967566B2 (en) 2002-04-05 2005-11-22 Creative Kingdoms, Llc Live-action interactive adventure game
US20070066396A1 (en) 2002-04-05 2007-03-22 Denise Chapman Weston Retail methods for providing an interactive product to a consumer
US6825843B2 (en) * 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
US7674184B2 (en) 2002-08-01 2010-03-09 Creative Kingdoms, Llc Interactive water attraction and quest game
US7570273B1 (en) 2002-08-29 2009-08-04 Nvidia Corporation Accelerated rotation for displaying an image
US8259121B2 (en) * 2002-10-22 2012-09-04 Broadcom Corporation System and method for processing data using a network
US20040095348A1 (en) * 2002-11-19 2004-05-20 Bleiweiss Avi I. Shading language interface and method
US9446319B2 (en) 2003-03-25 2016-09-20 Mq Gaming, Llc Interactive gaming toy
US7646817B2 (en) * 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
US7671862B1 (en) * 2004-05-03 2010-03-02 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7570267B2 (en) 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8736620B2 (en) 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
US8711155B2 (en) 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US7079156B1 (en) 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
JP2005332195A (ja) * 2004-05-19 2005-12-02 Sony Computer Entertainment Inc テクスチャユニット、画像描画装置、テクセル転送方法
US20060012604A1 (en) * 2004-07-15 2006-01-19 Avinash Seetharamaiah Legacy processing for pixel shader hardware
US7324106B1 (en) * 2004-07-27 2008-01-29 Nvidia Corporation Translation of register-combiner state into shader microcode
US7400325B1 (en) 2004-08-06 2008-07-15 Nvidia Corporation Culling before setup in viewport and culling unit
US8189002B1 (en) * 2004-10-29 2012-05-29 PME IP Australia Pty, Ltd. Method and apparatus for visualizing three-dimensional and higher-dimensional image data sets
US7821520B1 (en) * 2004-12-10 2010-10-26 Nvidia Corporation Fragment processor having dual mode register file
US7623132B1 (en) * 2004-12-20 2009-11-24 Nvidia Corporation Programmable shader having register forwarding for reduced register-file bandwidth consumption
US8004515B1 (en) * 2005-03-15 2011-08-23 Nvidia Corporation Stereoscopic vertex shader override
EP1907964A4 (en) * 2005-07-01 2009-08-12 Mental Images Gmbh Computer Graphics Schader Systems and Methods
WO2007013492A1 (ja) * 2005-07-26 2007-02-01 Digital Media Professionals Inc. 多層反射シェーディング画像生成方法及びコンピュータ
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
US7927216B2 (en) 2005-09-15 2011-04-19 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
US8313379B2 (en) * 2005-08-22 2012-11-20 Nintendo Co., Ltd. Video game system with wireless modular handheld controller
US7942745B2 (en) * 2005-08-22 2011-05-17 Nintendo Co., Ltd. Game operating device
JP4262726B2 (ja) 2005-08-24 2009-05-13 任天堂株式会社 ゲームコントローラおよびゲームシステム
US8870655B2 (en) 2005-08-24 2014-10-28 Nintendo Co., Ltd. Wireless game controllers
US8308563B2 (en) * 2005-08-30 2012-11-13 Nintendo Co., Ltd. Game system and storage medium having game program stored thereon
US8157651B2 (en) 2005-09-12 2012-04-17 Nintendo Co., Ltd. Information processing program
JP4530419B2 (ja) * 2006-03-09 2010-08-25 任天堂株式会社 座標算出装置および座標算出プログラム
JP4151982B2 (ja) 2006-03-10 2008-09-17 任天堂株式会社 動き判別装置および動き判別プログラム
JP4684147B2 (ja) * 2006-03-28 2011-05-18 任天堂株式会社 傾き算出装置、傾き算出プログラム、ゲーム装置およびゲームプログラム
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US8207975B1 (en) * 2006-05-08 2012-06-26 Nvidia Corporation Graphics rendering pipeline that supports early-Z and late-Z virtual machines
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) * 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) * 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US7973797B2 (en) * 2006-10-19 2011-07-05 Qualcomm Incorporated Programmable blending in a graphics processing unit
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8232991B1 (en) 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
JP5127242B2 (ja) 2007-01-19 2013-01-23 任天堂株式会社 加速度データ処理プログラムおよびゲームプログラム
WO2008126392A1 (ja) * 2007-04-11 2008-10-23 Panasonic Corporation 画像生成装置及び画像生成方法
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US8392529B2 (en) 2007-08-27 2013-03-05 Pme Ip Australia Pty Ltd Fast file server methods and systems
US8073676B2 (en) * 2007-09-21 2011-12-06 Sony Computer Entertainment Inc. Method and apparatus for emulation enhancement
US9019287B2 (en) 2007-11-23 2015-04-28 Pme Ip Australia Pty Ltd Client-server visualization system with hybrid data processing
US9904969B1 (en) 2007-11-23 2018-02-27 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8319781B2 (en) 2007-11-23 2012-11-27 Pme Ip Australia Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8548215B2 (en) 2007-11-23 2013-10-01 Pme Ip Australia Pty Ltd Automatic image segmentation of a volume by comparing and correlating slice histograms with an anatomic atlas of average histograms
US10311541B2 (en) 2007-11-23 2019-06-04 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8276133B1 (en) 2007-12-11 2012-09-25 Nvidia Corporation System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function
US8296781B1 (en) * 2007-12-11 2012-10-23 Nvidia Corporation System, method, and computer program product for determining application parameters based on hardware specifications
US8280864B1 (en) 2007-12-17 2012-10-02 Nvidia Corporation System, method, and computer program product for retrieving presentation settings from a database
US20100053205A1 (en) * 2008-09-03 2010-03-04 Debra Brandwein Method, apparatus, and system for displaying graphics using html elements
US9256514B2 (en) 2009-02-19 2016-02-09 Nvidia Corporation Debugging and perfomance analysis of applications
US9250926B2 (en) * 2009-04-30 2016-02-02 Microsoft Technology Licensing, Llc Platform extensibility framework
US9460546B1 (en) 2011-03-30 2016-10-04 Nvidia Corporation Hierarchical structure for accelerating ray tracing operations in scene rendering
JP5103543B2 (ja) * 2011-05-16 2012-12-19 株式会社ディジタルメディアプロフェッショナル コンピュータ・グラフィックス回路及びこの回路を用いて、二次元表示システムに表示される三次元オブジェクトに適用される二次元擬似ランダム・テクスチャ・パターンを、一次元テクスチャ画像を用いて生成する三次元コンピュータ・グラフィックス装置
US9142043B1 (en) 2011-06-24 2015-09-22 Nvidia Corporation System and method for improved sample test efficiency in image rendering
US9153068B2 (en) 2011-06-24 2015-10-06 Nvidia Corporation Clipless time and lens bounds for improved sample test efficiency in image rendering
US8970584B1 (en) 2011-06-24 2015-03-03 Nvidia Corporation Bounding box-based techniques for improved sample test efficiency in image rendering
US9269183B1 (en) 2011-07-31 2016-02-23 Nvidia Corporation Combined clipless time and lens bounds for improved sample test efficiency in image rendering
US9098941B2 (en) 2012-01-23 2015-08-04 Ayasdi, Inc. Systems and methods for graphical layout
US8830254B2 (en) * 2012-01-24 2014-09-09 Ayasdi, Inc. Systems and methods for graph rendering
US9305394B2 (en) 2012-01-27 2016-04-05 Nvidia Corporation System and process for improved sampling for parallel light transport simulation
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9275377B2 (en) 2012-06-15 2016-03-01 Nvidia Corporation System, method, and computer program product for determining a monotonic set of presets
US9250931B2 (en) 2012-07-06 2016-02-02 Nvidia Corporation System, method, and computer program product for calculating settings for a device, utilizing one or more constraints
US9201670B2 (en) 2012-07-06 2015-12-01 Nvidia Corporation System, method, and computer program product for determining whether parameter configurations meet predetermined criteria
US10668386B2 (en) 2012-07-06 2020-06-02 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9286247B2 (en) 2012-07-06 2016-03-15 Nvidia Corporation System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality
US9092573B2 (en) 2012-07-06 2015-07-28 Nvidia Corporation System, method, and computer program product for testing device parameters
US10509658B2 (en) 2012-07-06 2019-12-17 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9171394B2 (en) 2012-07-19 2015-10-27 Nvidia Corporation Light transport consistent scene simplification within graphics display system
US9159158B2 (en) 2012-07-19 2015-10-13 Nvidia Corporation Surface classification for point-based rendering within graphics display system
US9251762B2 (en) 2012-12-19 2016-02-02 Microsoft Technology Licensing, Llc. Runtime transformation of images to match a user interface theme
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
KR101736468B1 (ko) * 2012-12-24 2017-05-29 한화테크윈 주식회사 영상 처리 장치 및 방법
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9509802B1 (en) 2013-03-15 2016-11-29 PME IP Pty Ltd Method and system FPOR transferring data to improve responsiveness when sending large data sets
US10540803B2 (en) 2013-03-15 2020-01-21 PME IP Pty Ltd Method and system for rule-based display of sets of images
US8976190B1 (en) 2013-03-15 2015-03-10 Pme Ip Australia Pty Ltd Method and system for rule based display of sets of images
US11244495B2 (en) 2013-03-15 2022-02-08 PME IP Pty Ltd Method and system for rule based display of sets of images using image content derived parameters
US11183292B2 (en) 2013-03-15 2021-11-23 PME IP Pty Ltd Method and system for rule-based anonymized display and data export
US10070839B2 (en) 2013-03-15 2018-09-11 PME IP Pty Ltd Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images
US9477575B2 (en) 2013-06-12 2016-10-25 Nvidia Corporation Method and system for implementing a multi-threaded API stream replay
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
GB2518902B (en) * 2013-10-07 2020-07-01 Advanced Risc Mach Ltd Early depth testing in graphics processing
US11599672B2 (en) 2015-07-31 2023-03-07 PME IP Pty Ltd Method and apparatus for anonymized display and data export
US9984478B2 (en) 2015-07-28 2018-05-29 PME IP Pty Ltd Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images
US10089708B2 (en) * 2016-04-28 2018-10-02 Qualcomm Incorporated Constant multiplication with texture unit of graphics processing unit
US10909679B2 (en) 2017-09-24 2021-02-02 PME IP Pty Ltd Method and system for rule based display of sets of images using image content derived parameters
US11256528B2 (en) * 2018-10-26 2022-02-22 Nvidia Corporation Individual application window streaming suitable for remote desktop applications
US10970911B2 (en) 2019-02-21 2021-04-06 Facebook Technologies, Llc Graphics processing chip with machine-learning based shader

Family Cites Families (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275413A (en) 1978-03-30 1981-06-23 Takashi Sakamoto Linear interpolator for color correction
US4357624A (en) 1979-05-15 1982-11-02 Combined Logic Company Interactive video production system
US4491836A (en) 1980-02-29 1985-01-01 Calma Company Graphics display system and method including two-dimensional cache
US4425559A (en) 1980-06-02 1984-01-10 Atari, Inc. Method and apparatus for generating line segments and polygonal areas on a raster-type display
US4388620A (en) 1981-01-05 1983-06-14 Atari, Inc. Method and apparatus for generating elliptical images on a raster-type video display
US4463380A (en) 1981-09-25 1984-07-31 Vought Corporation Image processing system
US4570233A (en) 1982-07-01 1986-02-11 The Singer Company Modular digital image generator
US4600919A (en) 1982-08-03 1986-07-15 New York Institute Of Technology Three dimensional animation
US4615013A (en) 1983-08-02 1986-09-30 The Singer Company Method and apparatus for texture generation
GB8322438D0 (en) 1983-08-19 1983-10-12 Marconi Avionics Display systems
US4586038A (en) 1983-12-12 1986-04-29 General Electric Company True-perspective texture/shading processor
US4808988A (en) 1984-04-13 1989-02-28 Megatek Corporation Digital vector generator for a graphic display system
US4601055A (en) 1984-04-10 1986-07-15 The United States Of America As Represented By The Secretary Of Commerce Image processor
US4725831A (en) 1984-04-27 1988-02-16 Xtar Corporation High-speed video graphics system and method for generating solid polygons on a raster display
US4829452A (en) 1984-07-05 1989-05-09 Xerox Corporation Small angle image rotation using block transfers
US4658247A (en) 1984-07-30 1987-04-14 Cornell Research Foundation, Inc. Pipelined, line buffered real-time color graphics display system
US4695943A (en) 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
EP0184547B1 (en) 1984-12-07 1991-11-21 Dainippon Screen Mfg. Co., Ltd. Processing method of image data and system therefor
US4625289A (en) 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
US4710876A (en) 1985-06-05 1987-12-01 General Electric Company System and method for the display of surface structures contained within the interior region of a solid body
US5239624A (en) 1985-06-19 1993-08-24 Pixar Pseudo-random point sampling techniques in computer graphics
US4897806A (en) 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
FR2586838B1 (fr) 1985-08-30 1989-07-28 Labo Electronique Physique Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions
US4974177A (en) 1985-10-04 1990-11-27 Daikin Industries Ltd. Mapping circuit of a CRT display device
US4692880A (en) 1985-11-15 1987-09-08 General Electric Company Memory efficient cell texturing for advanced video object generator
JPS62192878A (ja) 1986-02-20 1987-08-24 Nippon Gakki Seizo Kk 多角形の塗りつぶし方法
US4862392A (en) 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
JPS62231380A (ja) 1986-03-31 1987-10-09 Namuko:Kk 画像合成装置
US4785395A (en) 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
US4768148A (en) 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus
US4817175A (en) 1986-08-26 1989-03-28 Schlumberger Systems And Services, Inc. Video stream processing system
US4855934A (en) 1986-10-03 1989-08-08 Evans & Sutherland Computer Corporation System for texturing computer graphics images
US4918625A (en) 1986-12-19 1990-04-17 Cae-Link Corporation Method and apparatus for processing translucent objects
US4965750A (en) 1987-03-31 1990-10-23 Hitachi, Ltd. Graphic processor suitable for graphic data transfer and conversion processes
US4833601A (en) 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
US4935879A (en) 1987-08-05 1990-06-19 Daikin Industries, Ltd. Texture mapping apparatus and method
US4965751A (en) 1987-08-18 1990-10-23 Hewlett-Packard Company Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size
US5170468A (en) 1987-08-18 1992-12-08 Hewlett-Packard Company Graphics system with shadow ram update to the color map
US4866637A (en) 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US5144291A (en) 1987-11-02 1992-09-01 Matsushita Electric Industrial Co., Ltd. Means for eliminating hidden surface
US4888712A (en) 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system
US4901064A (en) 1987-11-04 1990-02-13 Schlumberger Technologies, Inc. Normal vector shading for 3-D graphics display system
US4945500A (en) 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US5361386A (en) 1987-12-04 1994-11-01 Evans & Sutherland Computer Corp. System for polygon interpolation using instantaneous values in a variable
CA1309198C (en) 1987-12-10 1992-10-20 Carlo J. Evangelisti Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
US4974176A (en) 1987-12-18 1990-11-27 General Electric Company Microtexture for close-in detail
GB2214037A (en) 1987-12-18 1989-08-23 Ibm Solid modelling system
US5136664A (en) 1988-02-23 1992-08-04 Bersack Bret B Pixel rendering
EP0336430B1 (en) 1988-04-08 1994-10-19 Dainippon Screen Mfg. Co., Ltd. Method of extracting contour of subject image from original
US4907174A (en) 1988-06-02 1990-03-06 Sun Microsystems, Inc. Z-buffer allocated for window identification
US5097427A (en) 1988-07-06 1992-03-17 Hewlett-Packard Company Texture mapping for computer graphics display controller system
US5315692A (en) 1988-07-22 1994-05-24 Hughes Training, Inc. Multiple object pipeline display system
US4996666A (en) 1988-08-12 1991-02-26 Duluk Jr Jerome F Content-addressable memory system capable of fully parallel magnitude comparisons
US5003496A (en) 1988-08-26 1991-03-26 Eastman Kodak Company Page memory control in a raster image processor
US4989138A (en) 1988-09-02 1991-01-29 Tektronix, Inc. Single bus graphics data processing pipeline with decentralized bus arbitration
JPH0727581B2 (ja) 1988-09-09 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 図形処理装置
US5016183A (en) 1988-09-13 1991-05-14 Computer Design, Inc. Textile design system and method
US5018076A (en) 1988-09-16 1991-05-21 Chips And Technologies, Inc. Method and circuitry for dual panel displays
JP2685548B2 (ja) 1988-11-28 1997-12-03 株式会社日立製作所 ディジタル画像データの回転方法およびその装置
GB8828342D0 (en) 1988-12-05 1989-01-05 Rediffusion Simulation Ltd Image generator
US5062057A (en) 1988-12-09 1991-10-29 E-Machines Incorporated Computer display controller with reconfigurable frame buffer memory
US5255353A (en) 1989-02-28 1993-10-19 Ricoh Company, Ltd. Three-dimensional shadow processor for an image forming apparatus
US5204944A (en) 1989-07-28 1993-04-20 The Trustees Of Columbia University In The City Of New York Separable image warping methods and systems using spatial lookup tables
DE69031202T2 (de) 1989-10-13 1998-02-19 Matsushita Electric Ind Co Ltd Verfahren und Gerät zur Farbkompensierung in Farbbildern
JPH0776991B2 (ja) 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置
US5056044A (en) 1989-12-21 1991-10-08 Hewlett-Packard Company Graphics frame buffer with programmable tile size
JP3005007B2 (ja) 1989-12-21 2000-01-31 キヤノン株式会社 画像符号化装置
US5224208A (en) 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US5179638A (en) 1990-04-26 1993-01-12 Honeywell Inc. Method and apparatus for generating a texture mapped perspective view
US5163126A (en) 1990-05-10 1992-11-10 International Business Machines Corporation Method for adaptively providing near phong grade shading for patterns in a graphics display system
AU7747591A (en) 1990-05-12 1991-12-10 Rediffusion Simulation Limited Image generator
EP0464907B1 (en) 1990-06-29 1996-10-09 Philips Electronics Uk Limited Generating an image
US5241658A (en) 1990-08-21 1993-08-31 Apple Computer, Inc. Apparatus for storing information in and deriving information from a frame buffer
JP2725915B2 (ja) 1990-11-15 1998-03-11 インターナショナル・ビジネス・マシーンズ・コーポレイション 三角形描画装置及び方法
US5268995A (en) 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5268996A (en) 1990-12-20 1993-12-07 General Electric Company Computer image generation method for determination of total pixel illumination due to plural light sources
US5307450A (en) 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision for improved texture mapping
FR2673791B1 (fr) 1991-03-08 1993-05-07 Thomson Video Equip Methode et dispositif pour, en image numerique, creer une bordure autour d'un sujet incruste sur un fond et generateur d'effets speciaux comportant un tel dispositif.
JPH07122908B2 (ja) 1991-03-12 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 3次元のソリッド物体を表す表示可能情報を生成する装置と方法
US5421028A (en) 1991-03-15 1995-05-30 Hewlett-Packard Company Processing commands and data in a common pipeline path in a high-speed computer graphics system
US5415549A (en) 1991-03-21 1995-05-16 Atari Games Corporation Method for coloring a polygon on a video display
WO1993004429A2 (en) 1991-08-13 1993-03-04 Board Of Regents Of The University Of Washington Method of generating multidimensional addresses in an imaging and graphics processing system
TW225595B (ko) 1991-09-03 1994-06-21 Gen Electric
US5404445A (en) 1991-10-31 1995-04-04 Toshiba America Information Systems, Inc. External interface for a high performance graphics adapter allowing for graphics compatibility
US5353424A (en) 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
US5345541A (en) 1991-12-20 1994-09-06 Apple Computer, Inc. Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device
US5377313A (en) 1992-01-29 1994-12-27 International Business Machines Corporation Computer graphics display method and system with shadow generation
JP2760731B2 (ja) 1992-04-30 1998-06-04 株式会社東芝 グラフィックス互換性を可能にする高性能グラフィックスアダプタ用外部インターフェース回路
US5469535A (en) 1992-05-04 1995-11-21 Midway Manufacturing Company Three-dimensional, texture mapping display system
US5473736A (en) 1992-06-08 1995-12-05 Chroma Graphics Method and apparatus for ordering and remapping colors in images of real two- and three-dimensional objects
US5432900A (en) 1992-06-19 1995-07-11 Intel Corporation Integrated graphics and video computer display system
JPH0628485A (ja) 1992-07-09 1994-02-04 Toshiba Corp テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法
US5475803A (en) 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
US5432895A (en) 1992-10-01 1995-07-11 University Corporation For Atmospheric Research Virtual reality imaging system
US5388206A (en) 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
US5392393A (en) 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
US5408650A (en) 1993-06-29 1995-04-18 Digital Equipment Corporation Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program
US5490240A (en) 1993-07-09 1996-02-06 Silicon Graphics, Inc. System and method of generating interactive computer graphic images incorporating three dimensional textures
US5487146A (en) 1994-03-08 1996-01-23 Texas Instruments Incorporated Plural memory access address generation employing guide table entries forming linked list
US5461712A (en) 1994-04-18 1995-10-24 International Business Machines Corporation Quadrant-based two-dimensional memory manager
JP2673101B2 (ja) * 1994-08-29 1997-11-05 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・グラフィクス装置
US5651106A (en) * 1995-06-08 1997-07-22 Hewlett-Packard Company Method and apparatus for vertex sorting in a computer graphics system
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US5854632A (en) * 1996-10-15 1998-12-29 Real 3D Apparatus and method for simulating specular reflection in a computer graphics/imaging system
JPH10269377A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 表示制御システムおよび3次元グラフィクスデータの表示制御方法
US6496190B1 (en) * 1997-07-02 2002-12-17 Mental Images Gmbh & Co Kg. System and method for generating and using systems of cooperating and encapsulated shaders and shader DAGs for use in a computer graphics system
JP2000155845A (ja) * 1998-05-29 2000-06-06 Mitsubishi Electronics America Inc 記憶装置、デ―タフォ―マッタ、デ―タにアクセスする方法、デ―タの領域をクリアする方法、デ―タを圧縮する方法、デ―タをフォ―マット化する方法、グラフィックスシステムおよびグラフィックスシステムを動作させる方法
EP1114400A4 (en) * 1998-07-16 2006-06-14 Univ New York State Res Found PROCESS AND ADVICE ON REAL-TIME VOLUME PROCESSING AND UNIVERSAL 3D PRESENTATION
US6236413B1 (en) * 1998-08-14 2001-05-22 Silicon Graphics, Inc. Method and system for a RISC graphics pipeline optimized for high clock speeds by using recirculation
US6333744B1 (en) * 1999-03-22 2001-12-25 Nvidia Corporation Graphics pipeline including combiner stages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100887462B1 (ko) * 2002-12-03 2009-03-10 마이크로소프트 코포레이션 감마 정정의 결여를 보상하기 위한 알파 정정
KR100899488B1 (ko) * 2006-05-08 2009-05-27 엔비디아 코포레이션 초기 z-모드를 이용한 구성가능한 그래픽 렌더링파이프라인의 최적화
KR100791411B1 (ko) * 2006-12-07 2008-01-07 한국전자통신연구원 그래픽스 처리장치 및 방법

Also Published As

Publication number Publication date
AU5785101A (en) 2002-02-28
EP1182618A3 (en) 2003-11-12
US7176919B2 (en) 2007-02-13
CN1339764A (zh) 2002-03-13
US7034828B1 (en) 2006-04-25
EP1182618A2 (en) 2002-02-27
US20060125825A1 (en) 2006-06-15
JP2002063590A (ja) 2002-02-28
JP4731028B2 (ja) 2011-07-20
TWI244050B (en) 2005-11-21
CA2355353A1 (en) 2002-02-23
CA2355353C (en) 2010-05-04

Similar Documents

Publication Publication Date Title
JP4731028B2 (ja) グラフィクスシステム用再循環シェードツリーブレンダ
JP4890638B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
US6664962B1 (en) Shadow mapping in a low cost graphics system
US6618048B1 (en) 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6825851B1 (en) Method and apparatus for environment-mapped bump-mapping in a graphics system
US7307640B2 (en) Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6664958B1 (en) Z-texturing
EP1189173B1 (en) Achromatic lighting in a graphics system and method
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) Method and apparatus for texture tiling in a graphics system
US6580430B1 (en) Method and apparatus for providing improved fog effects in a graphics system
US7522170B2 (en) Graphics system interface
US20020057275A1 (en) Graphics system interface
JP4975159B2 (ja) グラフィックシステム、グラフィックス画像を生成する方法およびプログラムにおける無色光のライティング
JP4740490B2 (ja) グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング
JP4698894B2 (ja) グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid