[OpenGL] 6. Clipping & Rasterization
๐ Clipping & Rasterization
- Clipping
- ํ๋ฉด ๋ฐ ์์๋ค์ ๋ ๋๋ง์์ ์ ์ธ์ํจ๋ค.
- Rasterization
- ๊ฐ Primitive๋ค์ ์ด์ฉํด Fragment ์งํฉ์ ์์ฑํ๋ค.
Clipping

- Line-Segment Clipping & Polygon Clipping
- ํ๋ฉด์์ ๋น ์ ธ๋์จ ์์ญ์ Top -> Bottom -> Right -> Left ์์ผ๋ก Clippingํ๋ค.
- Bounding Boxes and Volumes
- Plygon์ ์ฌ๊ฐํ ํํ์ ๋ฐ์ค๋ก ๊ฐ์ธ ๋ฐ์ค๊ฐ ํ๋ฉด ๋ด๋ถ์ ๊ฑธ์น ๋๋ง Clipping์ ํ๋ค.
Rasterization
Bilinear Interpolation

- ๋์ฐจ๋ก์ ๊ฑธ์น Interpolation์ผ๋ก Fragment์ ์์ ๊ฒฐ์ ํ๋ค.
- ๋จผ์ , scanline๊ณผ ์ ํ๋ ๋ Fragment์ ์์ ๊ฒฐ์ ํ๋ค.
- ์ดํ, ๋ ์ ์ฌ์ด์ ๋ชจ๋ Fragment์ ์์ ๊ฒฐ์ ํ๋ค.
Z-Buffer Algorithm

- Color Buffer์ Depth Buffer๋ฅผ ์ด์ฉํ๋ค.
- ๊ฐ ํฝ์
๋ง๋ค Depth Buffer์ ํด๋น ์์น๋ฅผ ํ์ธํ๋ค.
- ์นด๋ฉ๋ผ์์ ๊ฑฐ๋ฆฌ๊ฐ ๋ ๊ฐ๊น์ฐ๋ฉด Color Buffer์ Depth Buffer ๋ชจ๋ ๊ฐฑ์ ํ๋ค.
- ํน์ง
- Polygon๋ค์ ์์๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.
- Polygon๋ค์ ๊น์ด๊ฐ ์์ฌ์์ด๋ ์๊ด์๋ค.
- ์๊ณผ ๊น์ด ๋ชจ๋ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋ค.
- ๋งค ์๊ฐ ์นด๋ฉ๋ผ์ ์์น๊ฐ ๋ณํ๋ ๊ฒฝ์ฐ ์ ํฉํ๋ค.
Painterโs Algorithm

- Polygon๋ค์ ์์๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํ๋ค.
- ์นด๋ฉ๋ผ์์ ๊ฑฐ๋ฆฌ๊ฐ ๋ ๊ฐ๊น๊ฑฐ๋ ๋จผ Polygon๋ถํฐ ์์ ๊ฒฐ์ ํ๋ค.
- Cyclic Ovelap์ด๋ Penetration์ด ๋ฐ์ํ๋ฉด ์ฌ์ฉํ ์ ์๋ค.
- ์๋ง ๊ณ์ฐํด๋ ๋๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๋ค.
- ์นด๋ฉ๋ผ์ ์์น๊ฐ ๊ณ ์ ๋ ๊ฒฝ์ฐ ์ ํฉํ๋ค.
- ex) ์ค๋งํธํฐ ๋ฐฐ๊ฒฝ๊ณผ ์์ด์ฝ
Back-Face Removal

- ํ๋ฉด ๋ ๋๋ง ์ ์ธ ๊ธฐ๋ฒ์ด๋ค.
- ์ ์ ๋ค์ ๋ฐฉํฅ์ด ์๊ณ ๋ฐฉํฅ์ผ ๊ฒฝ์ฐ ์ ์ธ์ํจ๋ค.
- ๋ชจ๋ Polygon์ ์ ์ ์ ์๊ณ ๋ฐ๋ ๋ฐฉํฅ ์์ผ๋ก ์ ์ฅ๋์ด์๋ค.