컴퓨터 그래픽 III: 래스터화

변환 후에는 직교 투영이든 원근 투영이든 큐브로 변환됩니다. 다음 단계는 이를 래스터화라고 하는 것입니다.

1. 카메라 가시 표면, 너비 및 높이를 통해 종횡비를 얻을 수 있습니다.

2.FOV(시야), 수직 시야각 fovY 및 종횡비에 따라 수평 시야각 fovX를 얻을 수 있습니다.

1. 오른쪽은 시신경 척추의 가까운 평면입니다. 점 (1, t, n)과 z축 사이의 각도는 fovY/2입니다.

2. t는 z의 값, b는 -t, Near 평면의 높이는 2t, r은 x의 값, l은 -r, Near 평면의 너비는 2r입니다.

3. 그러면 오른쪽의 두 방정식을 얻을 수 있습니다.

1. 왼쪽 하단이 원점이고, 각 픽셀은 정수(x, y)로 표시됩니다. 그림의 파란색 픽셀은 입니다. (2, 1)

2. 픽셀의 너비와 높이는 1이고, 픽셀의 중심은 (x 0.5, y 0.5)입니다.

3. 범위 화면의 크기는 (0, 0)부터 (너비, 높이)까지입니다.

1. z를 무시하면 본질적으로 번역 및 추가입니다. 한 번 확대

2. MVP는 중심을 원점에 두려면 먼저 왼쪽 하단 모서리가 원점에 오도록 변환한 다음 x와 y를 화면 크기에 맞춰 늘려야 합니다.

2개이든 상관없습니다. 3차원 또는 3차원 그래픽은 특정 수의 삼각형으로 분해될 수 있습니다.

1. 요점은 점이 삼각형 내에 있는지 확인하는 것입니다.

2. 내부에 함수를 정의합니다. (tri, x, y)를 사용하여 삼각형 안에 있는지 출력한 다음 전체 화면의 픽셀을 순회합니다.

1. p2p0 x p2q의 세 가지 결과가 일치하는 경우 벡터의 외적을 사용합니다. , p0p1 x p0q 및 p1p2 x p1q가 동일한 부호를 가지면 삼각형 내부에 있고 그렇지 않으면 삼각형 외부에 있습니다.

가장자리의 점은 상황에 따라 계산되거나 계산되지 않을 수 있습니다.

1. 삼각형을 둘러싸는 직사각형을 경계 상자라고 합니다.

2. p1, p2, p3에서 maxX 및 maxY를 가져와 최적화된 경계 상자를 얻으므로 효율성이 향상됩니다. 그 외에도 많은 최적화 솔루션이 있습니다

삼각형 래스터화 후에는 픽셀 크기로 인해 앨리어싱이 발생합니다

앨리어싱이 발생하는 이유는 샘플링 속도의 문제입니다. 샘플링 속도는 사진, 비디오 및 오디오에서 흔히 발생합니다. 낮은 샘플링 속도는 품질을 저하시키고 처리 속도를 높일 수 있지만 아티팩트가 생성되며 앨리어싱도 그 중 하나입니다.

디스플레이는 한 줄씩 새로 고쳐집니다. 예를 들어 새로 고칠 때 첫 번째 프레임은 홀수 줄을 새로 고치지만 효율성을 높이기 위해 두 번째 프레임은 짝수 줄을 새로 고치지만 어느 정도 앨리어싱이나 결함이 발생합니다.

위 그림은 샘플링 중에 품질을 낮추기 위해 홀수 라인을 제거하는 것을 모아레라고 합니다. 또는 짝수 행의 픽셀에 의해 생성됩니다.

신호 변화가 너무 빨라서 샘플링 속도가 매우 느립니다. 아티팩트 발생

먼저 장면 또는 신호를 흐리게(필터링) 처리한 다음 샘플링을 하면 앨리어싱이 어느 정도 역전될 수 있습니다.

먼저 샘플링한 다음 흐리게 하면 효과를 얻을 수 없습니다.

그림 2에서:

동일한 샘플링 주파수의 경우 신호 주파수가 빠를수록 모양이 더 틀어집니다. 위의 신호 기능은 샘플링을 기반으로 대략적으로 복원될 수 있습니다. , 그러나 아래 신호 기능은 전혀 복원할 수 없습니다.

그림 3:

파란색 기능에서 샘플링하고 샘플링 후 복원하면 복원된 기능은 분명히 검정색만 될 수 있습니다. 동일한 샘플링 주파수를 사용하는 것으로도 이해할 수 있습니다. 두 주파수의 샘플링 신호는 결과가 완전히 동일합니다.

푸리에 변환은 시간 영역을 시간 영역으로 변환할 수 있습니다. 주파수 영역:

1. 왼쪽

오른쪽의 이미지를 시간 영역, 오른쪽의 그림을 주파수 영역이라고 합니다. 왼쪽 그림을 푸리에 변환하여 생성한 것입니다.

2. 이미지의 정보 오른쪽은 다양한 위치의 밝기로 표시되며 주변은 고주파, 중앙은 저주파입니다.

3. 수평 및 숫자 교차 하이라이트는 사진이 반복되는 신호가 아니며 시간 정보가 없으므로 처리 중에 사진이 차례로 타일링됩니다. Zhang, 이미지 경계가 전환되면 고주파에서 저주파로 급격한 변화가 발생하고 교차 하이라이트가 나타납니다.

낮은 부분 제거 -주파수 정보:

1. 오른쪽 중앙의 저주파 정보를 지우고 역푸리에 변환을 수행하여 오른쪽에서 왼쪽으로 그림을 다시 생성하는 것을 고역 필터링이라고 합니다. , 고주파 정보만 통과할 수 있음을 알 수 있다

2. 고주파 정보에 따라 색상이나 질감 등의 디테일이 급격하게 변하는 가장자리, 즉 경계만 남는 것을 알 수 있다 .

고주파수 정보 제거:

1 .저역 통과 필터링, 이미지의 경계가 더 이상 표시되지 않고 색상 블록으로 표시되는 저주파 정보만 남음

다른 주파수 영역을 선택적으로 제거:

1. 다른 효과 생성, 그림 1은 가장 낮은 주파수 색상 블록과 고주파수 에지를 제거하고, 그림 2는 다수의 저주파 색상을 제거합니다. 이 제어를 통해 다양한 수준의 세부 정보를 얻을 수 있습니다.

컨볼루션 컨볼루션:

1. 첫 번째는 1차원 신호입니다. 이해

2. 그런 다음 왼쪽에서 오른쪽으로 이동하는 필터가 있습니다. 매번 한 단위씩 이동할 때마다 이동 후 필터 중심에 해당하는 신호 값을 계산하고 가중 평균을 계산한 다음 씁니다. 샘플을 수집하고 최종적으로 샘플링 결과를 얻습니다.

3. 컨볼루션은 퍼지 작업입니다.

1. 필터를 사용하여 신호(이미지)를 컨볼루션합니다(이미지가 다른 이미지가 됨)

p>

2. 이전 단계는 이미지를 푸리에 변환을 통해 주파수 영역을 생성한 다음 필터를 푸리에 변환하고 두 값을 곱한 다음 마지막으로 역푸리에 변환을 수행하는 것과 같습니다. 그러면 다음과 같은 또 다른 그림을 얻게 됩니다. 1과 동일

저역 통과 필터:

1. 각 픽셀 주위의 8개 픽셀에 1을 곱하고 더한 다음 9로 나눕니다.

2. 상자가 클수록 이미지가 흐려집니다. 가장 작은 상자인 경우 필터링 없이 이미지가 그대로 유지됩니다.

3. 위 그림의 두 상자는 시간 영역입니다. 이미지, 즉 흑백 블록과 오른쪽의 주파수 영역 사진

MSAA 앤티앨리어싱:

픽셀을 4개 또는 16개 포인트로 세분화하고 삼각형으로 덮힌 점 수의 백분율. 그 중 3개는 75개, 하나는 25개입니다.

FXAA: 이미지 생성을 위해 샘플링한 후 이미지 처리를 통해 앨리어싱이 대체되는데 이는 매우 효율적입니다

p>

TAA: MSAA 샘플을 시간에 맞춰 배포하고 이전 프레임의 처리를 재사용

DLSS: 딥 러닝 슈퍼샘플링(초해상도)을 200x200에 넣으려면 추가 픽셀이 필요합니다. 그래서 기능은 그림을 확대하는 것입니다

나중에 그린 것이 먼저 그려진 것을 덮어씁니다. 컴퓨터 렌더링은 화가의 알고리즘을 따릅니다. 이는 거리 또는 폐색 관계를 깊이 관계라고 합니다.

p>

상호 폐색 상황에서는 페인터 알고리즘이 이 장면을 해결할 수 없습니다.

깊이 캐시 알고리즘:

1. 앞서 언급했듯이 세 삼각형 사이의 깊이 관계는 서로 블록을 결정할 수 없으므로 각도를 변경하여 각 픽셀의 깊이를 결정합니다. 렌더링된 이미지를 생성하는 동안 각 픽셀의 깊이 정보에 대한 그림도 생성합니다.

1. 왼쪽이 렌더링된 사진입니다.

2. 오른쪽이 깊이 맵입니다. 포인트가 카메라에 가까울수록 색상이 어두워집니다.

3. 먼저 바닥의 깊이 맵은 검은색에 가깝고 흰색에 가깝습니다. 이제 그림에 속이 빈 큐브를 추가합니다. 원래 픽셀 포인트 a로 표시된 바닥은 깊이 x를 갖습니다.

이제 점 a도 큐브 위에 있습니다. 큐브는 x와 y를 기반으로 바닥과 큐브 사이의 폐색 관계를 결정할 수 있습니다.

1. 먼저 장면을 a로 분해합니다. 특정 개수의 삼각형

2. 모든 삼각형 래스터화

3. 처음에는 모든 픽셀 깊이 버퍼 값이 무한합니다. 즉, 가장 먼 삼각형이 모든 픽셀을 횡단합니다. 이미지의 모든 픽셀을 비교하여 깊이가 픽셀에 저장된 깊이보다 작으면 원본 픽셀을 덮어쓰고 깊이를 이 픽셀에 다시 써야 함을 의미합니다.

4. 이 알고리즘은 순서와는 관계가 없으며 단지 최소값만 기록하고 큰 값은 어떠한 방식으로도 처리하지 않으므로 복잡도는 O(n)에 불과합니다.

1. R은 무한을 의미합니다.

2.5 R보다 작으면 다시 작성하세요.

3. 두 번째 삼각형을 추가하고 R과 5를 비교합니다. R과 5보다 크면 원래 삼각형에 의해 차단되고, 5보다 작으면 원래 삼각형에 의해 차단됩니다.

4. 두 개의 삼각형을 함께 삽입하여 부분적으로 덮습니다. 서로