본문 바로가기

ComputerGraphics [고려대학교_한정현]

07강 - 래스터라이져

[랜더링 Pipe Line 복습]

Object Space 에서 정의된 Triangle Mesh를 이루는 Vertex Shader 들이 있었다.

이를 변환해서 Clip Space Position 을 출력해서 다음단계인 Rasterizer 에게 넘겨줍니다.

Rasterizer는 이 Clip Space Position들을 조립해서 삼각형으로 다시 만듭니다.

삼각형이 스크린에 나타날 것이고 ( 나타난다 : 스크린의 픽셀들을 몇개들을 점유하면서 색을 보여준다는 뜻)

픽셀 위치마다 Fragment 라는 것을 정의한다.  (Fragment Shader 프로그램이 하는일)

나머지 단계에서 컬러값들을 생성한다.  (Output Merger) 

 

[앞으로 Reterizer의 5단계의 중요한 것들을 배울것이다] 

Clipping -> Perspective division -> Back-face culling -> Viewport transform -> Scan conversion

 

[1단계. Clipping]

Clip Space로 왔다는 것은 Clip 하겠다는 것이다.

삼각형 중에 안보이는 것을 자르겠다는 것.

 Camera Space에서 안보이는 것을 버리고 (t1),

 완벽히 보이고 (t2),

 조금만 보인다 (t3) -> 가위질(clipping) 해야한다.

[t3삼각형 Clipping 하는 예제]

v2, v3를 자르고 ->  v2' v3'를 새로 생성해서 새로운 삼각형을 만든다.

[2단계. Perspective Division]

Projection Transform : Camera Space에서 Clip Space로 옮기는 변환이었다.

4개의 파라미터가 주어지면 Projection 변은 이런 행렬을 쓰면 된다.

원래는 0,0,0,1 을 사용해야 하는데, 왜 0,0,-1,0 을 사용하나요?