티스토리 뷰
고려대학교 정보대학 컴퓨터학과 2019년 1학기 <컴퓨터그래픽스> 7강 래스터라이저(1)
강의영상 플레이리스트 [Link]
강의자료 [Link]
Books · media lab
Introduction to Computer Graphics with OpenGL ES Review and Recommendations 이 책의 영문 제목 “Introduction to Computer Graphics”를 “A Painless Introduction to Computer Graphics”라는 닉네임으로 바꿔서 부르고 싶다. 수학을
media.korea.ac.kr
컴퓨터그래픽스 래스터라이저(1)
Keywords
- Rasterizer
- Clipping
- Perspective Division
- Back-face Culling
Rasterizer
vertex shader를 거쳐서 나오는 clip space 좌표 정보를 assemble!
"삼각형을 모아서 그 안에 fragments를 만든다"

Clipping
clip space에서 정의된 view frustum 경계에 일부만 걸쳐 있는 오브젝트를 잘라준다.
-> 경계면을 기준으로 "새로운 삼각형을 만들어서 넘겨준다"
-> 복잡한 연산이지만 GPU 하드웨어 단에서 수행해주게 됨 (소프트웨어 수준에서 크게 신경x)

Perspective Division
projection transform 행렬식의 4행 주목!
homogeneous coordinates /((0,0,0,1)\)이 아니라
projection transform matrix * camera space coordinates
homogeneous clip space -> Cartesian space 변환을 위해

*
*
* 멀리 떨어져 있을수록 큰 값으로 나누게 되므로 더 작아진다 --> 원근법 구현(멀리 있으면 작고, 가까이 있으면 크다)
-> -1~+1 범위 안에서 좌표값이 결정되게 되므로, 이 결과를 NDC(normalized device coordinates)라고 부른다.
Perspective Division -> 원근법을 구현하는 나눗셈
Perspective projection, 원근투영 처리의 핵심

Back-face Culling
back face -> 카메라를 등지고 있는, camera front face의 정반대에 위치한 폴리곤 영역.
culling -> 골라내서 버리는 작업을 지칭함.
Back-face vs. Front-face의 구분
삼각형 폴리곤의 normal을
*
*
*
projection transform을 거치면(view frustum -> 정육면체), z축에 평행한 "universal projection line"을 정의할 수 있다.

z축을 날리고, 2차원 평면에서 (x,y) 좌표를 본다 -> 꼭지점 나열순서 CCW면 front-face, CW면 back-face니까 culling
* 행렬식을 통해서 수식으로 위 과정을 판단할 수 있다!

[예외상황?]
1. 반투명 오브젝트일 경우 back-face도 살려놔야 한다.
2. 오브젝트의 front-face만을 제거하고 싶을 경우 (ex. 단면 잘라서 보여주기)
-> 하드웨어가 수행하는 작업이지만, 위 상황에 대응할 수 있도록 api를 제공한다.


'3D Computer Graphics > Learnings' 카테고리의 다른 글
컴퓨터그래픽스_이미지텍스처링 (0) | 2022.05.02 |
---|---|
컴퓨터그래픽스_래스터라이저(2) (0) | 2022.04.30 |
컴퓨터그래픽스_OpenGL ES와 셰이더 (0) | 2022.04.26 |
컴퓨터그래픽스_정점 처리(2) (0) | 2022.04.26 |
컴퓨터그래픽스_정점 처리(1) (0) | 2022.04.25 |
- Total
- Today
- Yesterday
- 컴퓨터그래픽스 강의
- PoseNet
- 메타버스
- tensorflow.js
- 원유로필터
- vertex shader
- 컴퓨터그래픽스
- 컴퓨터그래픽스 좌표계와 변환
- 고려대학교 한정현
- 3d affine transform
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |