1 minute read

Primitives ์ •์˜ ๋ฐ ํŠน์ง•

Primitives๋Š” 3D ๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐํ•˜ํ•™์  ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋ณต์žกํ•œ ํ˜•์ƒ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฐํ•ฉ๋˜๋Š” ์ž‘์€ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ 3D primitive ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. Point
    • ์ •์˜: ๊ณต๊ฐ„์—์„œ์˜ ๋‹จ์ผ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ํŠน์ง•: ๋‹จ์ˆœํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  2. Line
    • ์ •์˜: ๋‘ ์ ์„ ์—ฐ๊ฒฐํ•œ ์„ ๋ถ„์ž…๋‹ˆ๋‹ค.
    • ํŠน์ง•: ์™€์ด์–ดํ”„๋ ˆ์ž„ ๋ชจ๋ธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. Triangle
    • ์ •์˜: ์„ธ ์ ์„ ์—ฐ๊ฒฐํ•œ ๋ฉด์ž…๋‹ˆ๋‹ค.
    • ํŠน์ง•: ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ชจ๋“  3D ๋ชจ๋ธ์€ ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ถ„ํ• ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. Quad
    • ์ •์˜: ๋„ค ์ ์„ ์—ฐ๊ฒฐํ•œ ๋ฉด์ž…๋‹ˆ๋‹ค.
    • ํŠน์ง•: ๋‹ค๋ฃจ๊ธฐ ์‰ฌ์šฐ๋‚˜, ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  5. Polygon
    • ์ •์˜: ๋‹ค์ˆ˜์˜ ์ ์„ ์—ฐ๊ฒฐํ•œ ๋ฉด์ž…๋‹ˆ๋‹ค.
    • ํŠน์ง•: ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‚˜, ์ตœ์ข…์ ์œผ๋กœ ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค.

    image

  6. Diamond
    • ์ •์˜: ๋‘ ๊ฐœ์˜ ์‚ผ๊ฐํ˜•์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‹ค์ด์•„๋ชฌ๋“œ ํ˜•ํƒœ๋ฅผ ์ด๋ฃจ๋Š” primitive์ž…๋‹ˆ๋‹ค.
    • ํŠน์ง•: ํŠน์ˆ˜ํ•œ ๊ทธ๋ž˜ํ”ฝ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋ Œ๋”๋ง ๊ธฐ๋ฒ•์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ํ‘œ๋ฉด์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋” ์ •๋ฐ€ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • OpenGL์—์„œ๋Š” Diamond Primitive๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. SuGaR์—์„œ๋Š” triangle 2๊ฐœ๋กœ diamond primitive๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Primitives์˜ ์‚ฌ์šฉ ๋ฐ ๋ Œ๋”๋ง

๋ Œ๋”๋ง(Rendering)

๋ Œ๋”๋ง์€ 3D ์žฅ๋ฉด์„ 2D ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

  1. ๋ชจ๋ธ๋ง(Modeling): Primitives๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ 3D ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ณ€ํ™˜(Transformation): ๋ชจ๋ธ ์ขŒํ‘œ๋ฅผ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ทฐ์ž‰(Viewing): ์นด๋ฉ”๋ผ ์ขŒํ‘œ๋ฅผ ์ •๊ทœํ™”๋œ ์žฅ์น˜ ์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. ํˆฌ์˜(Projection): 3D ์ขŒํ‘œ๋ฅผ 2D ํ™”๋ฉด ์ขŒํ‘œ๋กœ ํˆฌ์˜ํ•ฉ๋‹ˆ๋‹ค.

๋ž˜์Šคํ„ฐํ™”(Rasterization)

๋ž˜์Šคํ„ฐํ™”๋Š” ํˆฌ์˜๋œ 2D ์ขŒํ‘œ๋ฅผ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ๊ฐ ํ”ฝ์…€์˜ ์ƒ‰์ƒ๊ณผ ๊นŠ์ด๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์‰์ด๋”ฉ(Shading)

์‰์ด๋”ฉ์€ ๊ฐ ํ”ฝ์…€์˜ ์ตœ์ข… ์ƒ‰์ƒ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. Flat Shading: ๊ฐ primitive์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. Gouraud Shading: primitive์˜ ๊ฐ ์ •์ ์—์„œ ์ƒ‰์ƒ์„ ๊ณ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ์„ ํ˜• ๋ณด๊ฐ„ํ•˜์—ฌ ๋‚ด๋ถ€ ํ”ฝ์…€์˜ ์ƒ‰์ƒ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. Phong Shading: primitive์˜ ๊ฐ ํ”ฝ์…€์—์„œ ์ƒ‰์ƒ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋” ์ •๋ฐ€ํ•œ ์กฐ๋ช… ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ Primitive์˜ ํŠน์ง• ์ •๋ฆฌ

  • Point: ๋‹จ์ˆœํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  • Line: ์™€์ด์–ดํ”„๋ ˆ์ž„ ๋ชจ๋ธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Triangle: ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ชจ๋“  3D ๋ชจ๋ธ์€ ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ถ„ํ• ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Quad: ๋‹ค๋ฃจ๊ธฐ ์‰ฌ์šฐ๋‚˜, ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • Polygon: ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‚˜, ์ตœ์ข…์ ์œผ๋กœ ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค.
  • Diamond: ๋‘ ๊ฐœ์˜ ์‚ผ๊ฐํ˜•์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‹ค์ด์•„๋ชฌ๋“œ ํ˜•ํƒœ๋ฅผ ์ด๋ฃน๋‹ˆ๋‹ค. ์ฃผ๋กœ ํŠน์ˆ˜ํ•œ ๊ทธ๋ž˜ํ”ฝ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋ Œ๋”๋ง ๊ธฐ๋ฒ•์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ํ‘œ๋ฉด์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋” ์ •๋ฐ€ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Leave a comment