본문 바로가기

파이프라인

Direct3D 10 Rendering Pipeline Diriect3D 10(D3D10)의 렌더링 파이프라인은 Direct3D 9.0(D3D9)과 매우 다르다. D3D9과 구별되는 외형상의 가장 커다란 특징이라면, 디스플레이 어댑터, 출력기기(모니터)와 같은 하드웨어 인프라를 다루는 부분을 DXGI(DirectX Graphics Infrastructure)로 완전히 독립시켰다는 것이다. DXGI 이전에는 Direct3D가 이런 하부 구조까지 책임지고 있었기 때문에, 코드를 마이그레이션 하는 경우 실제 이식 작업과 상관없는 이런 부분까지 손 대야 하는 불편함이 있었다. DXGI는 어댑터, 백버퍼(스왑체인), 출력 기기에 대한 정보를 Direct3D와 별도로 관리한다. 또, D3D9에서는 출력으로 지정된 윈도우 핸들을 실행 도중 바꿀 수 있었는데, DXGI는 .. 더보기
파이프라인(Pipeline) 파이프라인이란 하나의 프로세스를 서로 다른 기능을 가진 여러 개의 서브 프로세스(subprocess)로 나누어 각 서브 프로세스가 동시에 서로 다른 데이터를 취급하도록 하는 기법이다. 각 세그먼트(segment)에서 수행된 연산 결과는 다음 세그먼트로 연속적으로 넘어가게 되어 데이터가 마지막 세그먼트를 통과하면 최종적인 연산 결과를 얻게 된다. 이런 식으로 하나의 진행에서 연산을 중복시키는 것은 각 세그먼트마다 레지스터를 두는 것으로 가능하다. 이 레지스터들은 각 세그먼트마다의 연산 결과를 보관함으로써 여러 개의 데이터에 대한 연산의 중간 결과를 보관하는 역할을 한다. 가장 간단한 파이프라인의 구조는 각 세그먼트마다 그에 해당하는 연산을 수행하는 조합 회로를 두며, 그 출력에 레지스터를 연결하는 것이다... 더보기
병렬 처리(Parallel Processing) 병렬 처리(parallel processing)는 컴퓨터 시스템의 계산 속도 향상을 목적으로 하여 동시 데이터 처리 기능을 제공하는 광범위한 개념의 기술을 의미한다. 예를 들어 ALU에서 어떤 명령어가 실행되고 있을 때 다음 명령어를 메모리에서 읽어오거나, ALU에서 어떤 명령어가 실행되고 있을 때 다음 명령어를 메모리에서 읽어오거나, ALU를 두 개 이상 두고서 동시에 두 개 이상의 명령어를 실행하는 시스템이 있다. 더 나아가 한 시스템에 병행적으로 동작하는 두 개 이상의 프로세서를 둘 수도 있다. 병렬 처리의 목적은 이와 같이 컴퓨터의 처리 속도를 향상시키고, 이와 함께 처리율(throughput)도 증가시키는 것이다. 병렬 처리를 구현하기 위해서는 추가의 하드웨어가 필요하고, 따라서 시스템의 비용이.. 더보기
Rendering Pipeline 그래픽스에서의 렌더링 파이프라인은 크게 응용 단계(application stage), 기하 단계(geometry stage), 래스터화 단계(rasterization stage)로 구성된다. 개략적으로, 응용 단계는 기하 단계에서 처리할 3D 기하 정보를 생성하는 단계이며, 기하 단계는 이 기하 정보들을 가상의 공간에서 선형 변환하는 단계이다. 래스터화 단계는, 이 가상 공간에서의 데이터를 실제로 눈에 보이는 2D 평면으로 투영(projection)하는 단계이다. 즉, 응용 단계에서 기하 정보를 생성한다는 것은 기하 정보 생성 그 외에도 충돌 검출, 애니메이션, 포스 피드백과 같은 요소들을 반영하여 다음 기하 단계에서 처리할 모든 정보를 생성하는 것을 뜻하는 것이다. 기하 단계는 아키텍처에 따라서 소프트.. 더보기