그래픽스

Rendering Pipeline

CMS419 2021. 11. 15. 14:25

3D Polygon Rendering

3D Polygon을 랜더링을 하기 위해서, 화살표를 따라서, 쭉 읽어서 읽히는 쪽을 2D로 보야준다.

3D -> 2D로 바꾼것이다.

3D Rendering Pipeline

Transformation은 하나의 좌표계(coordinate system)가 다른 한 point로 이동하는 것이다.

이중에서 Viewing Transformation과 Projection Transformation을 합쳐서, Viewing Transofrmations이라고 한다. 이 부분이 중요하다.

Viewing Transformation

카메라 좌표가 실세계로 mapping되는 것이다.

  • 눈 -> origin
  • Right vecter -> X
  • Up -> Y
  • Back -> Z

Camera Coordinates

좌표계는 주로 오른손 좌표를 사용한다.

viewing transformation을 찾는 방법

세계에서 카메라로 object를 움직인 T를 찾아야 한다.

방법은 T의 역순을 찾으면 찾을 수 있다.

카메라 좌표계를 실세계로 map한다.

T의 역순을 얻을 수 있는 쉬운 방법이다.

Projection

높은 차원에서 낮은 차원으로 가는 것이다.

3D -> 2D이다.

Parallel Projection

눈을 COP(Center Of Projection)라고 한다

DOP (평행 투사)

Orthogonal Projections 직교

Oblique Projections 비스듬한

수직이 아닌 DOP를 보는 방법이다.

  • Cavalier projection
    • 프로젝터와 조망면 사이의 각도가 45도일 때
    • 세 개의 주 축 모두에 대한 전방 단축 비율이 동일하다.
  • Cabinet projection
    • 투영면에 수직인 가장자리의 단축비(각도 63.43도)

Parallel Projection View Volume

Parallel Projection Matrix(해렬)

직교하는 cos, sin 값이 0이 된다.

Perspective Projection (원근)

점들을 COP에서 나오는 projectors를 따라 view plane에 매핑

얼마나 많은 소실점이 있는 가?

Perspective Projection View Volume

유사한 삼각형이 있는 3D 좌표에서 2D 좌표 계산

Perspective Projection Matrix

4 X 4 행렬 표현

Perspective vs. Parallel

  • Perspective
    • 정확한 측정에 적합합니다.
    • 평행선은 평행하게 유지된다
    • 각도가 (일반적으로) 보존되지 않다
    • 덜 사실적인 모습
  • Parallel
    • 크기는 거리에 따라 반비례합니다
    • 사실적으로 보입니다.
    • 거리와 각도가 (일반적으로) 보존되지 않음
    • 평행선이 평행하게 유지되지 않음(일반적으로는)

Taxonomy 분류법

3D Rendering Pipeline

Clippiing

Window 안의 그림만을 그리는 것이다. Window 밖의 부분은 짜른다.

  • 다각형

등 다양하게 Clipping을 할 수 있다.

Cohen Sutherland Line Clipping

완전이 안

부분적으로 있는 것인가

완전히 밖인

3개의 경우를 가지고, 선을 짤를 수 있다.

'0000'을 가지고 9가지의 영역을 나눈다.

두 end점의 위치의 영역의 값을 AND 연산을 한다.

1)두 점 모두 0000인 경우 -> Inside
2)두 점 AND 연산  0이 아닌 경우 -> Outside
3)두 점 AND 연산  0인 경우 -> partially Inside

다각형 Clipping

선과 비슷하게 나눌 수 있다.

앞에서 나온 선을 나누는 방법을 이용한다.

순서대로 각 점에 대해 내부 테스트를 수행하고,

  • 둘 다 안에 있다. -> 모두 표현
  • 부분 만 안에 있다. -> 경계선과 두 점을 잇는 선을 점을 기준으로 밖의 부분을 짜른다.
  • 둘 다 밖에 있다. -> 표현하지 않는다.

Viewport Transformation

Screen에서 Viewport(pixel)로 변환한다.화면에 보여줄 준비를 하는 것이다.