[OpenGL] 6. Clipping & Rasterization

scarleter99ยท2023๋…„ 4์›” 20์ผ
0

OpenGL

๋ชฉ๋ก ๋ณด๊ธฐ
6/10

๐Ÿ“Œ 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๋“ค์˜ ๊นŠ์ด๊ฐ€ ์„ž์—ฌ์žˆ์–ด๋„ ์ƒ๊ด€์—†๋‹ค.
    • ์ƒ‰๊ณผ ๊นŠ์ด ๋ชจ๋‘ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Š๋ฆฌ๋‹ค.
    • ๋งค ์ˆœ๊ฐ„ ์นด๋ฉ”๋ผ์˜ ์œ„์น˜๊ฐ€ ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ ์ ํ•ฉํ•˜๋‹ค.
      • 3D ์•ก์…˜ ๊ฒŒ์ž„

Painterโ€™s Algorithm

  • Polygon๋“ค์˜ ์ˆœ์„œ๋ฅผ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์นด๋ฉ”๋ผ์™€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋” ๊ฐ€๊น๊ฑฐ๋‚˜ ๋จผ Polygon๋ถ€ํ„ฐ ์ƒ‰์„ ๊ฒฐ์ •ํ•œ๋‹ค.
  • Cyclic Ovelap์ด๋‚˜ Penetration์ด ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • ์ƒ‰๋งŒ ๊ณ„์‚ฐํ•ด๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๋‹ค.
  • ์นด๋ฉ”๋ผ์˜ ์œ„์น˜๊ฐ€ ๊ณ ์ •๋œ ๊ฒฝ์šฐ ์ ํ•ฉํ•˜๋‹ค.
    • ex) ์Šค๋งˆํŠธํฐ ๋ฐฐ๊ฒฝ๊ณผ ์•„์ด์ฝ˜

Back-Face Removal

  • ํ›„๋ฉด ๋ Œ๋”๋ง ์ œ์™ธ ๊ธฐ๋ฒ•์ด๋‹ค.
  • ์ •์ ๋“ค์˜ ๋ฐฉํ–ฅ์ด ์‹œ๊ณ„ ๋ฐฉํ–ฅ์ผ ๊ฒฝ์šฐ ์ œ์™ธ์‹œํ‚จ๋‹ค.
    • ๋ชจ๋“  Polygon์˜ ์ •์ ์€ ์‹œ๊ณ„ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ ์ˆœ์œผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€