마이크로소프트 탤리스먼

Microsoft Talisman

Talisman타일 렌더링을 적용하여 화면에 2D "하위 이미지"를 빠르게 합성하여 새로운 3D 그래픽 아키텍처를 구축하는 마이크로소프트 프로젝트였습니다.이론적으로, 이러한 접근방식은 3D 게임에 필요한 메모리 대역폭의 양을 극적으로 감소시키고, 그에 따라 저비용 그래픽 가속기로 이어질 것이다.이 프로젝트는 최초의 고성능 3D 가속기가 도입되는 과정에서 이뤄졌으며, 이는 성능과 가격 모두에서 탈리스만을 순식간에 능가했다.어떠한 탈리스만 기반의 시스템도 상업적으로 출시되지 않았고, 이 프로젝트는 결국 1990년대 후반에 취소되었다.

설명

재래식 3D

디스플레이를 위한 3D 영상을 만드는 것은 일련의 단계로 구성된다.먼저 디스플레이 될 물체는 개별 모델에서 메모리로 로딩된다.그런 다음 디스플레이 시스템은 수학적 함수를 적용하여 모델을 공통 좌표계인 세계관으로 변환한다.이러한 세계관을 통해, 카메라라는 특정 관점에서 본 원래의 모델과 근접한 일련의 다각형(일반적으로 삼각형)이 만들어진다.다음으로 합성 시스템은 삼각형을 렌더링하고 외부에 텍스처를 적용하여 이미지를 생성한다.텍스쳐는 사실감을 내기 위해 삼각형 위에 그려지는 작은 이미지들이다.그런 다음 결과 영상은 다양한 특수 효과와 결합되어 디스플레이 버퍼로 이동한다.이 기본 개념 레이아웃은 디스플레이 파이프라인이라고 알려져 있다.

일반적으로 표시장치는 한 프레임에서 다른 프레임으로 거의 변경되지 않는다. 일반적으로 프레임에서 프레임으로 전환되는 경우 표시장치의 물체는 약간 움직일 수 있지만 모양과 질감은 전혀 변하지 않을 것이다.지오메트리를 변경하는 은 CPU에 비교적 가벼운 작업으로, 메모리에서 질감을 상당히 비싸게 로드한 다음 렌더링된 프레임을 프레임 버퍼에 전송하는 작업 중에서 가장 비싼 작업이다.

예를 들어, 24비트 색상으로 그 시대의 렌더링 설정을 고려해 보십시오. 3D 컴포지션을 기본 3D로 구성하여 안티앨리어싱하지 않음: 640 x 480 해상도에서는 메모리 대역폭 1900Mbit/s가 필요하며, 1024 x 768 해상도에서는 4,900Mbit/s가 필요함.기본적인 안티앨리어싱도 대략 그 수치를 두 배로 늘릴 것으로 예상된다.[1]참고로, SGI의 당시 RealityEngine2 기계는 약 10,000 Mbit/s의 당시 높은 메모리 대역폭을 특징으로 삼았으며, 이것이 이 기계들이 3D 그래픽에 널리 사용된 이유였다.AGP 2X를 사용하는 시대의 일반적인 PC는 508 Mbit/s만 제공할 수 있다.

이 문제에 대한 첫 번째 공격은 텍스처 저장과 매핑을 처리하는 그래픽 가속기의 도입이었다.이들 카드는 오리지널 부두 그래픽과 마찬가지로 CPU가 모든 프레임의 지오메트리를 다시 계산한 다음, 결과적인 일련의 좌표를 카드에 전송하도록 했다.그런 다음 카드는 나머지 작업을 처리했다. 지오메트리에 텍스처를 적용하고, 프레임을 렌더링하고, 필터링 또는 안티앨리어싱을 적용하고, 결과를 로컬 프레임 버퍼에 출력한다.그러한 시스템에서의 대역폭 요구는 극적으로 감소되었다; 10,000개의 삼각형이 있는 장면에서는 삼각형 사이에 얼마나 많은 기하학적 포인트를 공유할 수 있는지에 따라 500에서 1000 kbit/s가 필요할 수 있다.

타일 렌더링

장면 복잡성이 증가함에 따라 본질적으로 고정된 물체 집합에 대한 기하학을 다시 생성해야 하는 필요성이 그 자체의 병목 현상이 되기 시작했다.그래픽 카드도 폴리곤을 저장하고 조작한다면 훨씬 더 큰 성능 향상이 있을 수 있다.이러한 시스템에서는 전체 디스플레이 파이프라인을 카드에서 실행할 수 있어 CPU와의 상호작용을 최소화할 필요가 있다.이렇게 하려면 그래픽 카드가 훨씬 "더"해야 할 것이다. 텍스처 적용에 수반되는 매우 간단한 조작과는 반대로, 카드는 이제 3D 모델링에 사용되는 기능을 계산할 수 있는 완전한 프로세서를 갖추어야 할 것이다.당시 수많은 기업이 이 길을 개척하고 있었는데, 이른바 '변환·조명' 카드나 T&L이 있었지만, 시스템의 복잡성과 비용은 상당해 보였다.

이 기간 동안 연구된 한 가지 해결책은 타일 렌더링의 개념이었다.이는 소형 2D 영상인 '타일'을 조작해 카메라 위치의 작은 변화를 시뮬레이션할 수 있다는 관측에 따른 것이다.예를 들어 장면으로 들어가는 카메라의 움직임은 각 타일을 가져다가 약간 더 크게 만들어 시뮬레이션할 수 있다.마찬가지로 장면의 다른 움직임도 적절한 아핀 변환을 적용하여 시뮬레이션할 수 있다.그러나 이 과정은 근사치일 뿐 동작이 증가하면 시각적 충실도가 떨어진다.그러한 시스템은 평균적으로 2~3개의 프레임마다 지오메트리를 다시 계산할 필요성을 줄일 수 있다.

이 접근방식의 문제는 모든 타일을 매번 다시 렌더링할 필요는 없으며, 카메라와 가까운 물체가 들어 있는 타일만 다시 렌더링해야 한다는 것이다.전체 지오메트리가 카드에 전송되면 이 작업은 온 카드 처리가 가능하지만, 이를 위해서는 T&L 시스템과 유사한 복잡성을 지닌 카드가 필요하다.지오메트리가 CPU의 제어 하에 유지된다면, 이상적으로는 카드가 CPU에 구형 타일의 객체만 다시 렌더링하도록 요청할 수 있어야 한다.많은 경우에 CPU의 렌더링 파이프라인을 변경해야 한다.어떤 경우에도 카드나 드라이버는 코드에 일반적으로 숨겨져 있는 물건의 순서와 위치에 대해 알아야 한다.

탈리스만

Talisman은 타일 렌더링 문제를 해결하려는 소프트웨어와 하드웨어의 완전한 제품군이었다.이 시스템은 어떤 타일이 오래되었는지 알아내기 위해 타일과 그 안에 있는 물건들에 대한 정보를 공유했다.타일이 오래되면 CPU에 해당 타일의 객체를 다시 렌더링하고 결과를 드라이버로 다시 전송한 다음 카드에 전송하도록 요청하였다.카드에 특정 타일을 렌더링한 후에는 카드에 압축된 형태로 저장해 향후 프레임에서 다시 사용할 수 있도록 했다.마이크로소프트는 각 타일을 평균 약 4개의 프레임에 재사용할 수 있어 CPU의 부하를 약 4배 줄일 수 있다고 계산했다.

Talisman에서는 이미지 버퍼를 CPU가 제공하는 3D 개체와 질감을 사용하여 개별적으로 렌더링한 32 x 32 픽셀 "청크"로 분해했다. 청크에 대한 포인터는 디스플레이의 32개 스캔 라인마다 z 순서가 지정된 (앞에서 뒤로) 목록에 저장되었다.한 가지 우려는 소프트웨어 렌더링을 사용하여 때때로 다양한 비디오 게임에서 볼 수 있는 문제인 청크를 "함께 결합"할 수 없다는 것이다.이를 피하기 위해 탈리스만은 또한 매핑의 틈새를 커버할 수 있는 "오버플로" 영역을 저장한 모든 청크에 대해 별도의 "에지 버퍼"를 저장했다.

렌더링 파이프라인

기존의 3D 시스템에서는 기하학이 주기적으로 생성되어 구성을 위해 카드에 보내져 프레임 버퍼로 구성된 다음, 결국 디스플레이를 위해 비디오 하드웨어에 의해 픽업된다.탈리스만 시스템은 본질적으로 이 과정을 역전시켰다; 화면은 32줄 높이의 스트립으로 나뉘었고, 비디오 하드웨어가 이 스트립들 중 하나를 그리는 동안, 하드웨어는 탈리스만 쪽에 전화를 걸어 다음 스트립에 대한 세부사항을 준비하라고 말하곤 했다.

시스템은 현재 카메라 위치가 지정된 스트립에 보이는 청크를 검색하여 응답할 것이다.일반적인 경우 많은 청크가 다른 청크로 인해 가려지고 합성 중에 무시되어 시간을 절약할 수 있다.'가시성 순서'에서 효율적으로 검색할 수 있는 청크들의 z 정렬이 이유인 것이다.청크를 변형하지 않고 수정할 수 있는 경우 적절한 애핀 변환을 호출하여 청크를 내부로 업데이트했다.마지막 전체 업데이트 이후 카메라가 너무 많이 움직였기 때문에, CPU는 해당 청크에 새로운 형상을 제공하도록 요청받았고, 그 다음 카드가 렌더링되어 저장소에 다시 배치되었다.

탈리스만은 모니터의 스캔 라인이 화면 아래로 내려갈 때 요구 시 청크를 스크린에 직접 렌더링하는 프레임 버퍼와 유사성이 없었다.이는 아타리 2600과 유사한 시스템을 사용하여 화면에 2D 영상을 렌더링하는 흥미로운 아날로그로, 이른바 '빔을 레이싱'하는 방식이다.두 경우 모두, 이것은 필요한 메모리의 양을 줄였고, 디스플레이 시스템과 비디오 하드웨어 사이에 사용되는 메모리 대역폭을 줄였다.두 경우 모두 비디오 시스템과 비디오 시스템을 실행하는 프로그램 간의 통합이 극적으로 강화되어야 했다.탈리스만의 경우, 프로그램들은 탈리스만 소프트웨어 드라이버가 이해한 특정한 형식으로 그들의 사물을 저장하도록 요구되어 인터럽트 시 메모리에서 빠르게 그것을 픽업할 수 있게 되었다.

역사

소개

탈리스만의 노력은 마이크로소프트가 한동안 실험해 온 개념을 상용화하려는 시도였다.특히 채플힐에 있는 노스캐롤라이나 대학휴렛팩커드 연구소에서 개발한 픽셀플로 시스템은 탈리스만의 직계 모체로 볼 수 있다.[2]

탈리스만이 1996년 SIGRAPH 회의에서 처음으로 널리 공개되었을 때, 그들은 그래픽 서브시스템을 구현하는 데 드는 비용을 획기적으로 줄일 것을 약속했다.[3]그들은 다른 회사의 디스플레이 시스템에 포함시키기 위해 탈리스만의 개념을 팔기 위해 벤더들과 협력할 계획이었다.즉, Talisman은 하나의 시스템에 홀로 서 있는 전체 3D 시스템이 아니라 더 큰 미디어 칩의 일부가 되기를 희망했다.그들의 기본 시스템은 40 Mpixel/s 폴리곤 렌더링 속도 및 320 Mpixel/s 이미지 레이어 합성 속도로 32 비트/픽셀의 1024 x 768 디스플레이에서 20-30,000개의 폴리곤을 지원할 것이다.

에스칼란테

당시 마이크로소프트는 에스컬란테라고 알려진 참조 구현을 개발하기 위해 여러 공급업체와 협력하고 있었다.삼성3DO는 탈리스만 기능과 추가 미디어 기능을 결합한 싱글칩 DSP 같은 '미디어 시그널 프로세서'(MSP)를 설계하기 위해 협력하고 있었다.Cirrus Logic은 MSP에 의해 메모리에 저장된 데이터를 검색하고, 효과를 적용하고, 디스플레이를 위해 전송하는 VLSI 칩을 제공할 것이다.Polygon Object Processor(POP)로 알려진 이 칩은 비디오 회로에 연결된 또 다른 Cirrus Logic 칩인 "ILC"에 의해 주기적으로 폴링되었다.또한 에스컬란테는 두 개의 600 MHz 8비트 채널에 4 MB의 RDRAM을 탑재하여 1.2 GB/s의 처리량을 제공하고자 하였다.[4]이후 필립스는 대부분의 Talisman을 하나의 CPU로 구현한 TriMedia 프로세서와 유사한 계획을 가진 Trident Microsystems의 새로운 버전을 계획하고 싸움에 뛰어들었다.

게임에서 1인칭 슈터 장르가 주목을 받기 시작한 것은 탈리스만 프로젝트 중반이었다.이는 최소한의 변화만으로도 기존 게임과 함께 사용할 수 있는 액셀러레이터에 대한 시장 수요를 창출했다.에스컬란테 참조 설계가 생산 준비가 되었을 때, 시장 세력은 이미 탈리스만 카드가 도저히 경쟁할 수 없을 정도로 성능이 향상된 일련의 새로운 카드 설계로 귀결되었다.초고속을 허용하도록 배치된 RAM이 많은 카드는 대역폭 문제를 해결했는데, 교묘한 구현을 통해 문제를 해결하려 하지 않고 단순히 문제를 강요하는 것이다.

또한 Talisman 개념은 디스플레이 시스템과 그것을 사용하는 소프트웨어 사이의 긴밀한 통합이 필요했다.당시 시장에 출시되는 새로운 3D 카드와는 달리, 탈리스만 시스템은 CPU에 청크를 업데이트하기 위해 이미지의 일부를 다시 렌더링하도록 요청할 수 있어야 할 것이다.이것은 게임이 이러한 요청에 응답하기 위해 특정한 조직을 기억하도록 요구하였다.이 작업에서 개발자들을 돕기 위해, 다이렉트3D는 탈리스만이 필요로 하는 것에 더 가깝게 변경되었다.그러나, 이미 쓰여진 어떤 게임이나, 탈리스만에게 얽매이고 싶지 않은 게임들에 대해서는, 이것은 D3D 시스템을 더 느리고 상당히 덜 흥미롭게 만들었다.

실종

이러한 변화의 결과로, 탈리스만은 결코 상업적인 제품이 되지 않았다.시러스 로직과 삼성은 둘 다 1997년에 이 시스템을 포기했고, 마이크로소프트는 1997년에 에스컬란테를 출시할 계획을 포기했고, 외부 관측통들에게는 이 프로젝트가 모두 중단된 것처럼 보였다.[5]

그러나 후지쓰가 S3 그래픽스ATI 테크놀로지의 유사 프로젝트 루머와 함께 1998년에 사용할 수 있는 단일 칩 구현을 추진하고 있다고 주장하자 얼마 지나지 않아 재탄생했다.[6]이 시스템들 중 어느 것도 선적되지 않았고 탈리스만은 조용히 살해되었다.이는 제3자 그래픽 액셀러레이터 벤더는 물론, 다이렉트X로 시장에서 이들을 지원했던 마이크로소프트 내 인사들이 크게 기뻐했다.

레거시

그럼에도 불구하고 탈리스만 제도에서 개척된 몇 가지 아이디어는 그 후 대부분의 가속기에서 보편화되었다.특히 텍스처 압축은 현재 널리 사용되고 있다.보다 최근의 카드에서는 디스플레이를 정렬하면서 메모리 요구를 줄이기 위해 z버퍼에도 압축이 사용되었다.디스플레이를 정렬하기 위해 "청크"를 사용하는 아이디어는 타일 기반 렌더링이라고 하는 소수의 카드에서도 사용되었지만 2014년 NVidia의 맥스웰 기반 GPU가 출시되면서 훨씬 후에야 데스크탑 공간에서 경쟁력이 생겼다.휴대 전화와 같은 모바일 기기용으로 특별히 설계된 많은 그래픽 프로세서는 타일 기반 접근법을 사용한다.오직 "필요할 때"에만 기하학을 업데이트해 달라는 탈리스만의 한가지 핵심 아이디어만이 그 이후로 시도되지 않았다.

참조

  1. ^ 앨런 볼먼 "탈리스먼이 뭔데?"마이크로소프트 Research, 마이크로소프트 Research, SIGGRAPH 1996 Wayback Machine에 2006-09-13 보관
  2. ^ 결합 문제:Microsoft Talisman "Repackages" Chapel Hill 개념
  3. ^ 제이 토보리와 제임스 카지야 "탈리스만:PC용 상용 실시간 3D 그래픽", SIGGRAPH 1996
  4. ^ 프랜시스 베일, 인텔 MMX vs. Microsoft Talisman: Abbott and Costello Do Multimedia, 21위; VXM Network, 1997년
  5. ^ Francis Vale, Talisman, Part II: Microsoft Stills Get the 3D Picture, 21번째; VXM Network, 1997
  6. ^ 1998년 9월 16일 전자 구매자 뉴스, Mark Hachman, F"Ujitsu To Bring Microsoft's Talisman To Life" , 전자 구매자 뉴스

외부 링크

  • 치킨 크로싱(Chicken Crossing)은 SIGGRAPH '96에서 제시된 탈리스만 컨셉트를 이용해 실시간으로 렌더링되는 단편영화다.