그래픽스 파이프라인

Graphics pipeline

컴퓨터 그래픽스에서 컴퓨터 그래픽 파이프라인, 렌더링 파이프라인 또는 단순 그래픽 파이프라인은 그래픽 시스템이 3D 장면을 2D [1]화면으로 렌더링하기 위해 수행해야 하는 단계를 설명하는 개념 모델입니다.예를 들어 비디오 게임이나 다른 3D 컴퓨터 애니메이션에서 3D 모델이 만들어지면 그래픽 파이프라인이 해당 3D 모델을 컴퓨터가 [2]표시하는 것으로 바꾸는 과정입니다.이 조작에 필요한 순서는 사용하는 소프트웨어 및 하드웨어와 필요한 디스플레이 특성에 따라 다르기 때문에 모든 경우에 적합한 범용 그래픽스 파이프라인이 있는 것은 아닙니다.그러나 Direct3DOpenGL과 같은 그래픽 애플리케이션 프로그래밍 인터페이스(API)는 유사한 단계를 통합하고 특정 하드웨어 액셀러레이터의 그래픽 파이프라인을 제어하기 위해 만들어졌습니다.이러한 API는 기본 하드웨어를 추상화하여 프로그래머가 그래픽스 하드웨어 액셀러레이터(AMD/Intel/NVIDIA 등)를 조작하기 위한 코드를 쓰는 것을 방지합니다.

그래픽 파이프라인 모델은 일반적으로 실시간 렌더링에 사용됩니다.대부분의 파이프라인 단계는 특별한 최적화를 가능하게 하는 하드웨어로 구현되는 경우가 많습니다."파이프라인"이라는 용어는 프로세서의 파이프라인과 유사한 의미로 사용됩니다. 즉, 파이프라인의 각 단계는 필요한 것을 가지고 있는 한 병렬로 실행됩니다.

개념.

3D 파이프라인은 일반적으로 3D 폴리곤[citation needed] 렌더링이라고 불리는 가장 일반적인 컴퓨터 3D 렌더링 형태를 나타내며, 레이트레이싱레이캐스팅과는 다릅니다.레이캐스팅에서는 카메라가 있는 지점에서 광선이 발생하며, 그 광선이 표면에 닿으면 그 광선이 닿은 표면의 점의 색과 을 산출한다.3D 폴리곤 렌더링에서는 그 반대가 발생합니다. 즉, 카메라의 시야에 있는 면적이 계산되어 카메라의 시야에 있는 모든 표면에서 광선이 생성되어 [3]카메라까지 추적됩니다.

구조.

그래픽스 파이프라인은 애플리케이션, 지오메트리 및 래스터라이제이션의 [4]3가지 주요 부분으로 나눌 수 있습니다.

Graphics pipeline 2 en.svg

어플

애플리케이션 스텝은 메인 프로세서(CPU) 상의 소프트웨어에 의해 실행됩니다.애플리케이션 스텝 중에 예를 들어 입력 장치에 의한 사용자 조작이나 애니메이션 중에 필요에 따라 씬을 변경한다.기본 요소(일반적으로 삼각형, 선 및 점)가 모두 포함된 새 씬(scene)은 파이프라인의 다음 단계로 전달됩니다.

애플리케이션 단계에서 일반적으로 수행되는 작업의 예로는 Quadtree 또는 Octree와 같은 공간 분할 방식을 사용한 충돌 감지, 애니메이션, 모핑 및 가속 기술 이 있습니다.또한 이들은 특정 시간에 필요한 메인 메모리의 양을 줄이기 위해 사용됩니다.현대 컴퓨터 게임의 세계는 한 번에 메모리에 들어갈 수 있는 것보다 훨씬 크다.

기하학.

폴리곤꼭지점(정점 파이프라인)을 사용하는 작업의 대부분을 담당하는 지오메트리 단계( 지오메트리 파이프라인 포함)는 다음 다섯 가지 작업으로 나눌 수 있습니다.이러한 태스크를 실제 병렬 파이프라인 단계로 구성하는 방법에 대한 특정 구현에 따라 달라집니다.

Geometry pipeline en.svg

정의들

정점(복수: 정점)은 세계의 한 점입니다.지표면을 결합하는 데 많은 점이 사용됩니다.특별한 경우 점 구름은 직접 그려지지만 이는 여전히 예외입니다.

삼각형은 컴퓨터 그래픽의 가장 일반적인 기하학적 원시이다.그것은 세 개의 꼭지점과 법선 벡터에 의해 정의됩니다. 법선 벡터는 삼각형의 정면을 나타내는 역할을 하며 표면에 수직인 벡터입니다.삼각형은 색상 또는 텍스처(그 위에 "접착된" 이미지)로 제공될 수 있습니다.삼각형은 세 점이 항상 단일 평면에 존재하므로 직사각형보다 선호됩니다.

세계 좌표계

세계 좌표계는 가상 세계가 만들어지는 좌표계입니다.이는 다음 수학이 쉽게 적용되기 위한 몇 가지 조건을 충족해야 한다.

  • 모든 축이 균등하게 축척되는 직사각형 데카르트 좌표계여야 합니다.

좌표계의 단위를 정의하는 방법은 개발자에게 맡겨집니다.따라서 시스템의 단위 벡터가 실제로 1미터에 대응하는지 또는 Ongström에 대응하는지 여부는 용도에 따라 달라집니다.

예:만약 우리가 비행 시뮬레이터를 개발한다면, 원점이 지구 중앙에 있고 단위가 1미터로 설정되도록 세계 좌표계를 선택할 수 있다.또한 현실에 대한 참조를 쉽게 하기 위해 X축은 0 자오선에서 적도와 교차하고 Z축은 극을 통과해야 한다고 정의합니다.오른손잡이 시스템에서 Y축은 90°-동쪽 자오선(인도양 일부 지역)을 통과합니다.이제 우리는 지구의 모든 점을 3차원 데카르트 좌표로 설명하는 좌표계를 갖게 되었습니다.이 좌표계에서 우리는 이제 세계, 산, 계곡, 바다의 원리를 모델링하고 있습니다.
주의: 컴퓨터 지오메트리와는 별도로 위도와 경도, 해수면 위의 고도에 대해 지리 좌표가 사용됩니다.지구가 정확한 구체가 아니라는 사실을 고려하지 않는다면 대략적인 변환은 간단하다.
{pmatrix=지구의 지표면[6.378.137m]), lat=위도, 긴=위도, 해수면 높이.
다음 예시는 모두 오른손잡이 시스템에 적용됩니다.왼손잡이 시스템의 경우 기호를 교환해야 할 수 있습니다.

장면에 포함된 물체(하우스, 나무, 자동차)는 단순한 모델링을 위해 자체 객체 좌표계(모델 좌표계 또는 로컬 좌표계라고도 함)로 설계되는 경우가 많습니다.이러한 객체를 전체 씬(scene)의 월드 좌표계 또는 전역 좌표계의 좌표에 할당하기 위해 객체 좌표가 변환, 회전 또는 축척을 통해 변환됩니다.이것은 대응하는 변환 행렬을 곱함으로써 이루어집니다.또, 1개의 오브젝트에서 다른 변환된 복수의 카피를 형성할 수 있습니다(예를 들면, 트리의 포레스트).이 기술을 인스턴스화라고 합니다.

세계에 항공기 모델을 배치하기 위해 먼저 4가지 매트릭스를 결정합니다.우리는 3차원 공간에서 일하기 때문에 계산을 위해 4차원 균질 매트릭스가 필요하다.

첫째, 3개의 회전 매트릭스, 즉 3개의 항공기 축(수직 축, 가로 축, 세로 축) 각각에 대해 1개가 필요하다.

X 축 주변(일반적으로 객체 좌표계에서 세로 축으로 정의됨)

Y축 주변(일반적으로 객체 좌표계에서 가로축으로 정의됨)

Z축 주변(일반적으로 객체 좌표계에서 수직 축으로 정의됨)

또한 항공기를 원하는 지점으로 이동시키는 변환 매트릭스x , , ( 0 0 0 1 1 )({ , , z}=0&0&0&0을 사용한다.

비고: 상기 매트릭스는 기사 회전 매트릭스 내의 매트릭스에 대해 전치됩니다.자세한 설명은 아래를 참조하십시오.

이제 우리는 각 점을 이 네 개의 행렬로 연속적으로 곱함으로써 세계 좌표에서 항공기의 꼭지점 위치를 계산할 수 있다.행렬과 벡터의 곱셈은 매우 비용이 많이 들기 때문에(시간이 많이 소요되므로), 보통 다른 경로를 사용하여 먼저 4개의 행렬을 곱합니다.두 행렬의 곱셈은 훨씬 더 비싸지만 전체 개체에 대해 한 번만 실행해야 합니다.곱셈 (( v x )y ) ) ) ( ( ( ( * _ {x ) ) * ( ( (( x z ) { ( * ( ( ( ( (_ { x ) *_ { y ) ) * { } } 。그 후 결과 행렬을 정점에 적용할 수 있습니다.그러나 실제로는 정점과의 곱셈은 여전히 적용되지 않지만 카메라 매트릭스(아래 참조)가 먼저 결정됩니다.

그러나 위에서 본 예제의 경우, 북극에서 벗어난 상향의 일반적인 의미는 양의 Z축의 정의와 일치하지 않기 때문에 번역은 다소 다르게 결정되어야 하며, 따라서 모델도 지구의 중심을 중심으로 회전해야 합니다: e x ,(0 , , + ) .* 번째 단계는 모델의 원점을 지구 표면 위로 정확한 높이로 밀어낸 다음 위도와 경도에 따라 회전합니다

행렬 곱셈은 가환적이지 않기 때문에 행렬이 적용되는 순서가 중요합니다.이는 예를 들어 다음과 같이 세 번의 회전에도 적용됩니다.점(1, 0, 0)은 X축에 있으며 먼저 X축을 중심으로 90° 회전한 다음 Y축을 중심으로 회전하면 Z축에 도달합니다(X축 주위의 회전은 축에 있는 점에 영향을 주지 않음).한편, 먼저 Y축을 중심으로 회전한 후 X축을 중심으로 회전하면 결과점은 Y축에 위치하게 됩니다.시퀀스 자체는 항상 같은 한 임의입니다.회전으로 인해 나침반 방향이 "코"의 방향과 일치하기 때문에 x, y, z(롤, 피치, 머리글) 순서는 가장 직관적입니다.

열 벡터와 행 벡터 중 어느 쪽을 사용하는지에 따라 이러한 행렬을 정의하는 두 가지 규칙도 있습니다.여기에서는 그래픽 라이브러리에 따라 기본 설정이 다릅니다.OpenGL은 열 벡터인 DirectX 행 벡터를 선호합니다.이 결정은 어느 쪽에서 점 벡터에 변환 행렬을 곱할지 결정합니다.열 벡터의 경우 오른쪽에서 곱셈이 수행됩니다(: t n \ } 여기서out v와in v는 4x1 열 벡터입니다.행렬의 연결도 오른쪽에서 왼쪽으로 이루어집니다(: M x {\ M 먼저 회전한 다음 이동할 때 수행됩니다.

행 벡터의 경우, 이것은 정확히 반대로 동작합니다.이제 곱셈은 1x4 행 벡터를 사용하여 왼쪽부터 t nM { { v { } = v _ { * M } 으로 이루어지며, = x T { M} * 입니다.위에 표시된 행렬은 두 번째 경우에 유효하지만 열 벡터에 대한 행렬은 전치됩니다.규칙( M ) T v {\}=M^{T[5] 적용됩니다.이것은 벡터를 사용한 곱셈의 경우 행렬을 바꿈으로써 곱셈 순서를 바꿀 수 있음을 의미합니다.

이 매트릭스 체인의 흥미로운 점은 새로운 좌표계가 각각의 변환에 의해 정의된다는 것입니다.이것은 필요에 따라서 확장할 수 있습니다.예를 들어, 항공기의 프로펠러는 별도의 모델이 될 수 있으며, 이 모델은 항공기 노즈로 변환되어 배치된다.이 번역에서는 모델 좌표계에서 프로펠러 좌표계로의 이동만 설명하면 됩니다.항공기 전체를 그리기 위해 먼저 항공기의 변환행렬을 결정하고 포인트를 변환한 후 프로펠러 모델행렬을 항공기의 매트릭스에 곱한 후 프로펠러 포인트를 변환한다.

이런 식으로 계산된 행렬을 세계 행렬이라고도 합니다.렌더링하기 전에 월드의 각 개체에 대해 결정해야 합니다.어플리케이션은 여기에 변경을 도입할 수 있다.예를 들어 각 프레임 이후의 속도에 따라 항공기의 위치를 변경할 수 있다.

카메라 변환

왼쪽: 사용자가 정의한 가상 뷰어(카메라)의 위치와 방향.오른쪽: 카메라 변환 후 객체 위치 지정.옅은 회색 영역은 볼 수 있는 볼륨입니다.

씬(scene)은 오브젝트 외에 씬(scene)이 렌더링되는 상대적인 뷰의 위치와 방향을 나타내는 가상 카메라 또는 뷰어도 정의합니다.카메라가 Z축을 따라 원점에 오도록 장면이 변환됩니다.결과 좌표계를 카메라 좌표계라고 하고 변환을 카메라 변환 또는변환이라고 합니다.

뷰 매트릭스는 일반적으로 카메라 위치, 대상 지점(카메라가 보는 위치) 및 "상향 벡터"("시청자의 관점에서 위로")에서 결정됩니다.처음 3개의 보조 벡터가 필요합니다.
Zaxis = normal(cameraPosition - cameraTarget)
Xaxis = normal(cross(cameraUpVector, Zaxis))
Yaxis = cross(Zaxis, Xaxis )
정규화(v) = 벡터 v의 정규화일 때
cross(v1, v2) = v1과 v2의 교차 곱.
으로 ( xi . y x . z i . i . yi . y 0 . i s. a s . z a s . 0 - ( i s, p )의 행렬입니다.
dot(v1, v2) = v1 및 v2의 dot 곱이 있어야 합니다.

투영

3D 투영 단계는 뷰 볼륨을 구석점 좌표가 (-1, -1, 0) 및 (1, 1, 1)인 큐브로 변환합니다. 경우에 따라 다른 대상 볼륨도 사용됩니다.이 단계는 볼륨을 다른 볼륨으로 변환하더라도 투영이라고 합니다. 결과 Z 좌표가 영상에 저장되지 않고 이후 래스터링 단계에서 Z 버퍼링에만 사용되기 때문입니다.투시도에서는 중심투영법을 사용한다.표시되는 객체의 수를 제한하기 위해 두 개의 추가 클리핑 평면이 사용됩니다.따라서 시각적 볼륨은 잘린 피라미드(frustum)입니다.예를 들어 평행 또는 직교 투영법은 객체 공간의 모든 평행도가 영상 공간에서도 평행하고 뷰어와의 거리에 관계없이 표면과 볼륨의 크기가 동일하다는 장점이 있기 때문에 기술 표현에 사용됩니다.예를 들어 지도는 직교 투영법(일명 오르토포토)을 사용하지만, 경치의 비스듬한 이미지는 이러한 방식으로 사용할 수 없습니다.-기술적으로는 렌더링할 수 있지만, 너무 왜곡되어 보여서 우리는 사용할 수 없습니다.투시 매핑 매트릭스를 계산하는 공식은 다음과 같습니다.

h = 요람(fieldOfView / 2.0)(카메라 각도 표시), w = h / spectRatio(대상 이미지의 비율 표시), 근접 = 최소 가시 거리, 원거리 = 가장 긴 가시 거리.

여기서 가장 작은 거리 및 가장 큰 거리를 지정해야 하는 이유는 한편으로는 씬(scene)의 축척에 도달하기 위해 이 거리를 분할하고(투시 영상에서 더 먼 개체는 가까운 개체보다 작음), 다른 한편으로는 Z 값을 0.1 범위로 스케일링하여 Z 버퍼를 채우는 데 사용됩니다.이 버퍼는 분해능이 16비트밖에 없기 때문에 근접값과 원거리값을 신중하게 선택해야 합니다.근접값과 원값의 차이가 너무 크면 Z 버퍼의 분해능이 낮기 때문에 이른바 Z-fighting이 발생합니다.또한 이 점이 투영의 초점이기 때문에 근접 값이 0일 수 없다는 공식에서도 알 수 있습니다.현시점에서는, 화상이 표시되지 않습니다.

완전성을 위해 평행 투영 공식(직교 투영)은 다음과 같습니다.

w = 대상 입방체의 폭(세계 좌표계 단위로 표시)H = w / spectRatio(대상 이미지의 비율), 근접 = 볼 수 있는 가장 작은 거리, 멀리 = 볼 수 있는 가장 긴 거리.

효율의 이유로 카메라와 투영 매트릭스는 보통 변환 매트릭스로 결합되어 카메라 좌표계가 생략된다.결과 매트릭스는 일반적으로 단일 이미지에 대해 동일하지만 월드 매트릭스는 각 개체에 대해 다르게 보입니다.따라서 실제로는 표시 중에 월드 매트릭스만 조정하도록 뷰와 투영이 사전 계산됩니다.그러나 정점 혼합과 같은 더 복잡한 변환이 가능합니다.형상을 수정하는 자유롭게 프로그래밍 가능한 지오메트리 셰이더도 실행할 수 있습니다.

실제 렌더링 스텝에서는 월드 매트릭스 * 카메라 매트릭스 * 투영 매트릭스를 계산하여 각 점에 최종적으로 적용한다.따라서 모든 객체의 지점은 화면 좌표계로 직접 전송됩니다(적어도 가시 범위에 대한 축의 값 범위는 여전히 -1.1입니다, "윈도-뷰포트-변환" 섹션 참조).

조명.

종종 장면에는 객체의 조명을 보다 사실적으로 보이게 하기 위해 서로 다른 위치에 배치된 광원이 포함되어 있습니다.이 경우 광원 및 대응하는 삼각형과 관련된 재료 특성에 기초하여 텍스처의 게인 계수가 각 정점에 대해 계산된다.후기의 래스터라이제이션 스텝에서는 삼각형의 정점값이 그 표면에 보간된다.일반 조명(주변 조명)이 모든 표면에 적용됩니다.이는 씬(scene)의 확산이며 따라서 방향에 구애받지 않는 밝기입니다.태양은 무한히 멀리 떨어져 있다고 가정할 수 있는 지향성 광원이다.태양에 의해 표면에 영향을 받는 조명은 태양으로부터의 방향 벡터와 표면의 법선 벡터의 스칼라 곱을 형성함으로써 결정된다.값이 음수이면 표면이 태양을 향하고 있는 것입니다.

클리핑

큐브에 대한 프리미티브 클리핑.주황색 삼각형이 잘리는 동안 파란색 삼각형이 폐기되어 두 개의 새 정점이 생성됩니다.
좌절.

시각적 볼륨 내에 있는 원시 요소만 실제로 래스터링(그림 그리기)하면 됩니다.이 시각적 볼륨은 꼭대기가 잘려나간 피라미드 형태의 형태인 좌골의 내부로 정의된다.시각적 볼륨 밖에 있는 원시 요소는 폐기됩니다.이것은 좌절 도태라고 불립니다.고려해야 할 프리미티브의 수를 줄이는 백페이스 컬링 등의 추가 도태 방법은 이론적으로 그래픽스 파이프라인의 어느 단계에서나 실행할 수 있다.큐브 내부에 부분적으로만 있는 프리미티브는 큐브에 대해 클리핑해야 합니다.이전 투영 단계의 장점은 항상 동일한 큐브에 대해 클리핑이 수행된다는 것입니다.시각적 볼륨 내에 있는 (잘린) 원시 요소만 최종 단계로 전달됩니다.

Window-Viewport 변환

창 뷰포트 변환

화면의 임의의 대상 영역(뷰포트)에 이미지를 출력하려면 다른 변환인 Window-Viewport 변환을 적용해야 합니다.이것은 시프트에 이은 스케일링입니다.결과 좌표는 출력 장치의 장치 좌표입니다.뷰포트에는 창의 높이와 너비(픽셀 단위), 창의 왼쪽 상단 모서리(일반적으로 0, 0), Z의 최소값과 최대값(일반적으로 0 및 1)의 6가지 값이 포함됩니다.

형식 ( z ) ( p .+ ( + . ) v . t / 2. .+ (0 - . ) p . / 2.0 . ( p m ( v - m - )∗ v v v m. m ( m v v v . . . . . . . . . . . . . . . ..
vp=Viewport, v=프로젝트 후 포인트 사용

최신 하드웨어에서는 대부분의 지오메트리 계산 단계가 정점 셰이더에서 수행됩니다.이는 원칙적으로 자유롭게 프로그래밍할 수 있지만 일반적으로 적어도 점의 변환과 조명 계산을 수행합니다.DirectX 프로그래밍 인터페이스의 경우 버전 10부터 커스텀 정점 셰이더를 사용해야 하지만 이전 버전에는 표준 셰이더가 있습니다.

래스터라이제이션

래스터라이제이션스텝은 모든 프리미티브가 래스터라이제이션되는 fragment 셰이더 파이프라인의 마지막 스텝입니다.래스터라이제이션 스텝에서는 연속된 프리미티브로부터 이산 fragment를 작성한다.

그래픽스 파이프라인의 이 단계에서는 그리드 포인트를 fragment라고 부르기도 합니다.이것은, 보다 큰 구별을 위해서입니다.각 fragment는 프레임 버퍼 내의 1픽셀에 대응하며, 이는 화면의 1픽셀에 대응한다.색칠(및 조명)할 수 있습니다.또, 폴리곤이 겹치는 경우는, 옵저버 프래그먼트에 가까운 가시적인 것을 결정할 필요가 있다.Z 버퍼는 보통 소위 은닉 표면 판정에 사용됩니다.조각의 색상은 가시적인 프리미티브의 조명, 텍스처 및 기타 재료 특성에 따라 달라지며 종종 삼각형 정점 특성을 사용하여 보간됩니다.가능한 경우 오브젝트의 각 fragment에 대해 래스터링 스텝에서 fragment 셰이더(픽셀 셰이더라고도 불립니다)가 실행됩니다.단편이 보이면 투명도 또는 멀티샘플링을 사용하면 영상의 기존 색상 값과 혼합할 수 있습니다.이 순서에서는, 1개 또는 복수의 fragment가 픽셀이 됩니다.

사용자가 원시 요소의 점진적인 래스터라이즈를 볼 수 없도록 이중 버퍼링이 수행됩니다.래스터라이즈는 특수한 메모리 영역에서 실행됩니다.이미지가 완전히 래스터라이징되면 이미지 메모리의 가시 영역에 복사됩니다.

사용된 모든 행렬은 비음각 행렬이므로 반전할 수 없습니다.두 비언어 행렬을 곱하면 또 다른 비언어 행렬이 생성되므로 전체 변환 행렬도 반전할 수 있습니다.화면 좌표에서 월드 좌표를 재계산하려면 역수가 필요합니다. 예를 들어 마우스 포인터 위치에서 클릭된 개체를 판별하려면 이 역수가 필요합니다.그러나 화면과 마우스는 2차원이기 때문에 3차원은 알 수 없습니다.따라서 커서 위치에 광선을 투사하고 이 광선과 다각형 사이의 세계 내 교차점을 구한다.

셰이더

There are 11 phases, each enumerated here. Vertex shader and 3D code are the input into animation and transformation. The second phase is the hull shader, tesselation, and the domain shader. The third phase is the geometry shader. The fourth phase is the perspective transformation. The fifth phase is the clipping and backface culling. The 6th phase is triangle rasterization, which outputs texture coordinates. The seventh phase, texture cache, starts separately and takes textures as an input. The seventh phase and the texture coordinates go to the 8th phase, texture filtering. From the 6th phase and the output of the 8th phase, texels, goes to the 9th phase, early Z and pixel shading, which also takes a pixel shader as input. The 10th phase is Z-test, alpha blending, and anti-aliasing. Then the 11th phase is post-processing, which outputs back to back buffer.

클래식 그래픽 카드는 여전히 그래픽 파이프라인에 비교적 가깝습니다.GPU에 대한 요구가 증가함에 따라 유연성이 향상되기 위해 제한이 점차 없어졌습니다.최신 그래픽 카드는 자유롭게 프로그램 가능한 셰이더 제어 파이프라인을 사용하여 개별 처리 단계에 직접 액세스할 수 있습니다.메인 프로세서를 경감하기 위해 추가 처리 단계가 파이프라인과 GPU로 이동되었습니다.

가장 중요한 셰이더 단위는 정점 셰이더, 지오메트리 셰이더 및 픽셀 셰이더입니다.

Unified Shader는 모든 유닛을 최대한 활용하기 위해 도입되었습니다.이렇게 하면 셰이더 유닛의 큰 풀을 1개 얻을 수 있습니다.필요에 따라 풀은 다른 셰이더 그룹으로 나뉩니다.따라서 셰이더 유형을 엄격하게 구분하는 것은 더 이상 유용하지 않습니다.

GPU 상의 그래픽 표시에서 벗어난 계산을 수행하기 위해 이른바 컴퓨팅 셰이더를 사용할 수도 있습니다.이러한 계산은 매우 병렬로 실행되지만 한계가 있다는 것입니다.이러한 범용 계산은 그래픽 처리 장치의 범용 컴퓨팅(GPGPU)이라고도 합니다.

「 」를 참조해 주세요.

원천

  • Tomas Akenine-Möller, Eric Haines: 실시간 렌더링.AK 피터스, 네이틱, 매사추세츠 2002년 ISBN1-56881-182-9.
  • 마이클 벤더, 맨프레드 브릴: 컴퓨터그래픽: ein anwendungsorientiertes Lehrbuch.Hanser, München 2006, ISBN 3-446-40434-1.
  • Fischer, Martin (2011-07-04). Pixel-Fabrik. Wie Grafikchips Spielewelten auf den Schirm zaubern. c't Magazin für Computer Technik. Heise Zeitschriften Verlag. p. 180. ISSN 0724-8679.

레퍼런스

  1. ^ "Graphics Pipeline". Microsoft. May 30, 2018. Retrieved 15 June 2015.
  2. ^ "Lecture: Graphics pipeline and animation". Archived from the original on 7 December 2017. Retrieved 15 June 2015.
  3. ^ Lawrence, Jason (October 22, 2012). "3D Polygon Rendering Pipeline" (PDF). web.archive.org. Archived (PDF) from the original on December 29, 2016. Retrieved 2019-09-19.
  4. ^ Tomas Akenine-Möller, Eric Haines: 실시간 렌더링, S. 11 (PDF)
  5. ^ K. 니프, D.Stofper;Lineare 대수; v/d/f Hochschulverlag der ETH 취리히; 취리히 1998, ISBN 3-7281-2649-7.

외부 링크