E D R , A S I H C RSS

3DGraphics Foundation Summary


1.  œ 1 žฅ ๊ทธž˜”ฝ ๊ธฐˆ ก 

1.1. ˆ˜•™  ๊ธฐˆ ก 

1.1.1. ขŒ‘œ๊ณ„

  • ˜คฅธ† ขŒ‘œ๊ณ„ : šฐฆฌ๊ฐ€ ˆ˜•™ฑ…—„œ งŽ ˜ ๊ทธ ขŒ‘œ๊ณ„‹ค. œ„•„ž˜๊ฐ€ Z, •ž’ค๊ฐ€ X, ขŒšฐ๊ฐ€ Y, ๊ทธž˜”ฝŠค—„  ž˜ •ˆ“‹ค.
  • ™† ขŒ‘œ๊ณ„ : ๊ณต๊ฐ„๊ฐœ… ••˜๊ธฐ ‰ฝ๊ธฐ •Œฌธ— ๊ทธž˜”ฝŠค—„œ งŽ ‚ฌšฉ•œ‹ค. •ž’ค๊ฐ€ Z, ขŒšฐ๊ฐ€ X, œ„•„ž˜๊ฐ€ Y
  • ๊ตฌ ขŒ‘œ๊ณ„ : ฃผกœ ‹œ „ ‘œ˜„• –„ ž˜ “ฐธ‹ค. › —„œ€„ฐ˜ ๊ฑฐฆฌ ฯ, z•๊ณผ˜ ๊ฐ ฮธ, x•๊ณผ˜ ๊ฐ ฯ† กœ ๊ตฌ„ฑœ‹ค. ๊ฑธ ๊ทธฆผ— ”ฐผ ’€–,
    • x = ฯsinฮธcosฯ†
    • y = ฯsinฮธsinฯ†
    • z = ฯcosฮธ

1.1.2. ฒก„ฐ

  • ญ.. ณ„กœ ณผ๊ฑฐ —†‹ค. ‹ค ๊ณ “ฑ•™๊ต •Œ –ˆ˜ ๊ฑฐ‹ค. ƒ†Œ•œ๊ฑฐงŒ ‡๊ฐœ  –..
  • ฒก„ฐ ‘œ˜„„.. ›ฌธžกœ ••ผ๊ฒ ‹ค. ™”‚‘œ ๊ทธผ‹ˆ๊นŒ —ผ ๊ท€ฐฎ‹ค.
  • ™ € โ“Xโ“‘  ‡๊ฒŒ ‘œ˜„•œ‹ค. ฐฉ–ฅ€ ฒก„ฐ โ“—„œ ฒก„ฐโ“‘œผกœ 180„‹ค ž‘€ ๊ฐœผกœ Œ•Œ ‚˜‚ฌ๊ฐ€ ง„–‰•˜Š” ฐฉ–ฅ‹ค. ๊ฒŒ ญ” ๊ฐœ†Œฆฌƒ--;
  • ฒก„ฐ˜ ฌ๊ธฐ : |โ“Xโ“‘| = |โ“||โ“‘|sinฮธ
  • ™ ˜ „ฑงˆ : ‘ ฒก„ฐ™€ ™‹œ— ˆ˜งธ ฒก„ฐ

1.1.3. –‰ ฌ

  • 3X3˜ –‰ ฌ‹

~cpp 
     | a1 b1 c1 |      | b2 c2 |      | b1 c1 |      | b1 c1 |
 D = | a2 b2 c2 | = a1 |       | - a2 |       | + a3 |       |
     | a3 b3 c3 |      | b3 c3 |      | b3 c3 |      | b2 c2 |

  • ฒก„ฐ˜ ™ „ –‰ ฌกœ ‘œ‹œ•˜๊ธฐ(i,j,kŠ” ๊ฐ๊ฐ x,y,zฐฉ–ฅ˜ ‹จœ„ฒก„ฐ)

~cpp 
         | i   j   k  |
 โ“Xโ“‘ = | Xa  Ya  Za | 
         | Xb  Yb  Zb |

  • ๊ผญ€  ฐฉ–ฅ Œณ„? ๊ฑ –”ฐ “ฐŠ” ๊ฑฐ€..

1.2. ™ฐจ ขŒ‘œ๊ณ„™€ 3ฐจ› €™˜ –‰ ฌ

  • ™ฐจ ขŒ‘œ๊ณ„? ๊ทธƒ•Œ๊ธฐ ‰ฝ๊ฒŒ ง•˜ž, ‰–‰™„ ผฐ˜ ธ ผฐจ€™˜œผกœ ‚˜ƒ€‚๊ธฐ๊ฐ€ ถˆ๊ฐ€Šฅ•„œ, •˜‚˜˜ „ฑถ„„ ถ”๊ฐ€•„œ ๊ทธ๊ฑธกœ ‚˜ƒ€‚Š” ๊ฑฐ‹ค.
  • 3ฐจ› ขŒ‘œฅผ ‚˜ƒ€‚ผ•ŒŠ” x,y,z ๊ทธฆฌ๊ณ  wผŠ” ๊ฐ’„ ถ”๊ฐ€กœ จ€‹ค. ๊ทธƒฅ 1กœ จฃผ œ‹ค.

1.2.1. ž„˜˜ •„ ค‘‹ฌœผกœ šŒ „™ •˜๊ธฐ(—‰ ๊ฒƒ€ ˆ˜น˜•„ ‹œ—˜ฌธ œ?)

  • šŒ „• › „ €‚˜๊ฒŒ ‰–‰™ ‹œ‚จ‹ค.
  • šŒ „• xz‰๊ณผ งŒ‚˜„ก x•„ ค‘‹ฌœผกœ šŒ „™ ‹œ‚จ‹ค.
  • šŒ „• z•๊ณผ ผน˜•˜๊ฒŒ y•„ ค‘‹ฌœผกœ šŒ „™ ‹œ‚จ‹ค.
  • ›•˜Š” งŒผ z•„ ค‘‹ฌœผกœ Œ ค€‹ค.
  • œ„˜ œ„˜ ๊ฒƒ˜ —ญ€™˜
  • œ„˜ œ„˜ œ„˜ ๊ฒƒ˜ —ญ€™˜
  • œ„˜ œ„˜ œ„˜ œ„˜ ๊ฒƒ˜ —ญ€™˜
  • š” –‰ ฌ“ค„ ‹ค ๊ณฑ•˜

~cpp 
 T(-x1, -y1, -z1) Rx(ฯ†) Ry(-ฮธ) Rz(ฮฑ) Ry(ฮธ) Rx(-ฯ†) T(x1, y1, z1)
  ˆผ ณตžก• ธ‹ค. ๊ทผฐ ง ‘ †œผกœ ”ฐผ • ณ„ฃจ •ˆ ณตžก•˜‹ค.

1.3. œˆ„šฐ™€ ทฐฌŠธ

  • ทฐฌŠธ : ™”ƒ— ‚˜ƒ€‚ผ €ถ„„ ๊ฐ€‚
  • œˆ„šฐ œ„—„œ x๊ฐ’˜ ตœ†Œ๊ฐ’„ x(min), ตœŒ€๊ฐ’„ x(max), y๊ฐ’˜ ตœ†Œ๊ฐ’„ y(min), ตœŒ€๊ฐ’„ y(max) ผ •˜ž.
  • ทฐฌŠธ˜ ‚ฌ๊ฐ˜•˜ ตœ†Œ,ตœŒ€๊ฐ’„ X(min), X(max), Y(min), Y(max) ผ •˜ž.
  • ™•Œ€/ฆ๊ฐ€Ÿ‰ ๊ตฌ•˜Š” ๊ณต‹
    • delx = (X(max) - X(min)) / (x(max) - x(min))
    • dely = (Y(max) - Y(min)) / (y(max) - y(min))
    • x(c) = (x(max) + x(min)) / 2
    • y(c) = (y(max) + y(min)) / 2
    • X(c) = (X(max) + X(min)) / 2
    • Y(c) = (Y(max) + Y(min)) / 2
    • c1 = X(c) - x(c) * delx
    • c2 = Y(c) - y(c) * dely

    • X = delx * x + c1
    • Y = dely * y + c2

1.4. Polygon Mesh ฐ„ฐ ๊ตฌกฐ


1.4.1. กฐ๊ฑ

  • “  € ธ ‘•••œ‹ค.
  • Šน ••œ ‹ค๊ฐ˜•„ mesh ‚—„œ ฐพ„ˆ˜ žˆ–••œ‹ค.
  • •˜‚˜˜ ‹ค๊ฐ˜•„ ฃจŠ” “  „œฆฌŠ”  •™••˜๊ฒŒ ‘œ˜„˜–••œ‹ค.
  • •˜‚˜˜ „œฆฌฅผ ๊ณตœ •˜Š” ‹ค๊ฐ˜•“ค„ ง ‘ ฐพ„ˆ˜ žˆ–••œ‹ค.
  • mesh  „ฅผ ฐ”๊พธ๊ฑฐ‚˜ ””Šค”Œ ˆ• ˆ˜ žˆ–••œ‹ค.

1.4.2. Explicit Polygons Mesh

  • ๊ผญ€ „ vertex table—  €žฅ›„ ‹ค๊ฐ˜•„ ๊ผญ€ ˜ —ฐ†œ ˆœ„œกœ ‚˜ƒ€‚Š” ฐฉ•
  • ฆฌŠคŠธ™€ ฐฐ—„ “ธ ˆ˜ žˆŠ”ฐ, ฆฌŠคŠธ๊ฐ€ €” Žธ•˜‹ค.
  • งŒ•— P1 ‹ค๊ฐ˜•„ ฃจŠ” Vertex“ค„ ฐ˜‹œ๊ณ„ ฐฉ–ฅ ˆœœผกœ v1,v3,v4,v6ผ •˜ v1->v3->v4->v6  ‡๊ฒŒ ๊ฐ€‚ค๊ฒŒ ฆฌŠคŠธฅผ ๊ตฌ˜„•˜ œ‹ค.
  • ‹จ 
    • “  „œฆฌ๊ฐ€ ‘ฒˆ”ฉ ๊ทธ ค€๊ฒŒ œ‹ค.
    • ––ค „œฆฌฅผ ๊ณตœ •˜๊ณ  žˆŠ” ‹ค๊ฐ˜•„ ฐพ๊ธฐ๊ฐ€ – ต‹ค.
    • •Œฌธ— †„๊ฐ€ กธผ Аฆฌ‹ค.

1.4.3. Explicit Edges Mesh

  • ๊ฑ ž˜ •๊ฐ€ •ˆ๊ฐ€Š”๊ตฐ. ‚˜ค‘—

2. 3ฐจ› ๊ทธž˜”ฝ

2.1. 3ฐจ› ๊ทธž˜”ฝž€?

  • ––ค ฌผฅผ ง„ ๊ณผ ๊ณก„ ˜ ง‘•กœ ‘œ˜„•œ ‹คŒ ˆฌ˜„ †ต• …Œ‘ฆฌฅผ ‘œ‹œ•˜Š” 'Wire frame ธ'
  • ––ค ฌผฅผ ๊ทธ๊ฒƒ„ ‘˜Ÿฌ‹ธ๊ณ  žˆŠ” œผกœ ‚˜ƒ€‚ธ ‹คŒ €„ , € œ๊ฑฐ •Œ๊ณ ฆฌฆ˜‚˜ Shading •Œ๊ณ ฆฌฆ˜„ ๊ฐ€ฏธ•˜—ฌ ‹ค ˜„‹ค๊ฐ žˆ๊ฒŒ ๊ทธ ฌผฅผ ‘œ˜„•˜Š” 'Surfaced ธ'
  • ˆ˜•™ ธ ๊ณ กœ ––ค ฌผฅผ ‘œ˜„•˜Š” 'Solid ธ'
  • ๊ฐ€žฅ ฐ ฌธ œ  : ๊นŠ๊ฐ ‘œ˜„

2.1.1. ˆฌ˜

  • 3ฐจ›„ 2ฐจ›œผกœ ‘œ˜„•˜Š” ๊ฐ€žฅ ๊ธฐˆ ธ ฐฉ•
  • ‰–‰ˆฌ˜ (Parallel projection, orthogonal projection) : ฌผ˜ “   „ ™”ƒ— ˆฌ˜. ๊นŠ๊ฐ...€ ณ„ฃจ‹ค.
  • ›๊ทผˆฌ˜ (Perspective projection) : šฐฆฌ ˆˆ— Š” Œ€กœ(›๊ทผ๊ฐ ‚ ค„œ) ๊นŠ๊ฐ ‚ฆฌŠ”ฐ ข‹‹ค.

2.1.2. €„ /€  œ๊ฑฐ

  • ง๊ทธŒ€กœ •ˆŠ” €ถ„ —†• ๊ธฐ

2.1.3. ˜ ƒ‰

  • ‘› ธ ‚ฌšฉ(Ray-Tracing• งŽ ‚ฌšฉ)

2.1.4. ๊ทธฆผž

  •  ๊‘› : ๊ณ„‚ฐ•˜๊ธ ‰ฝ€งŒ ˜„‹ค๊ฐ –จ–ง
  • ถ„‚ฐ๊‘› : ๊ณ„‚ฐ•˜๊ธ – ต€งŒ ˜„‹ค๊ฐ ข‹Œ

2.2. ‹œ๊ฐ€™˜๊ณผ ›๊ทผˆฌ˜

  • ‹คขŒ‘œ๊ณ„(Xw,Yw,Zw) -> ‹œ๊ฐขŒ‘œ๊ณ„(Xe,Ye,Ze) -> Šคฌฆฐ ขŒ‘œ๊ณ„(X,Y)

2.2.1. ‹œ๊ฐ€™˜

  • ‹œ๊ฐขŒ‘œŠ” •ž—„œ ง–ˆ“ฏ ๊ตฌขŒ‘œ๊ณ„ฅผ “‹ค.
  • Xe, Ye, Ze, 1 = Xw, Yw, Zw, 1 V : VŠ” ‹คขŒ‘œ๊ณ„ฅผ ‹œ๊ฐขŒ‘œ๊ณ„กœ ฐ”๊พธ๊ธฐ œ„•œ –‰ ฌ
  • –‰ ฌ V ๊ตฌ•˜๊ธฐ
    • ‹คขŒ‘œ๊ณ„˜ ค‘‹ฌ Oฅผ ‹œ  Eกœ ‰–‰™‹œ‚จ‹ค. T( -Xe, -Ye, -Ze )
    • y•„ ‹œ„ ฒก„ฐ˜ xy‰„ฑถ„˜ ฐฉ–ฅ๊ณผ ผน˜‹œผœ••œ‹ค. Z•„ ค‘‹ฌœผกœ (ŒŒ/2-ฮธ) šŒ „ (ฮธŠ” x•๊ณผ˜ ๊ฐ)
    • z• ‹œ„ ฒก„ฐ˜ ฐฉ–ฅ ˜–••˜€กœ x•„ ค‘‹ฌœผกœ (ฯ†-ŒŒ) šŒ „ (ฯ†Š” z•๊ณผ˜ ๊ฐ)
    • x•˜ ฑก–ฅ„ ฐ”๊พผ‹ค.
    • ๊ฒฐก (€๊ธˆ ‹ˆ๊น šฐฆฌ๊ฐ€ ผฐ˜ œผกœ “ฐŠ” –‰ ฌž‘ € ‹ค‹ค. –‰๊ณผ — ฐ”๊žˆ‹ค.)

~cpp 
 V = T( -Xe, -Ye, -Ze) Rz(ŒŒ/2-ฮธ) Rx(ฯ†-ŒŒ) Myz
     | -sinฮธ  -cosฯ†cosฮธ  -sinฯ†cosฮธ  0 |
     | cosฮธ   -cosฯ†sinฮธ  -sinฯ†sinฮธ  0 |
   = | 0       sinฯ†      -cosฯ†      0 |
     | 0       0                      1 |

2.2.2. ›๊ทผˆฌ˜

  • ๊ทธฆผ ••• ˆ˜ žˆŠ”ฐ.. ๊ทธƒ‹งŒ จ..
  • X = d*x/z + c1, Y = d*y/z + c2 (dŠ” ‹œ ๊ณผ Šคฌฆฐ ‚ฌ˜ ๊ฑฐฆฌ, Šคฌฆฐ˜ ๊ฐ€กœ 2c1, „ธกœ 2c2)

3. ˜ผ•ฉ(Blend)

  • —ท๊ฐˆ ธ˜ €ถ„๊ณ  ธ„ฐ„ท—„œ ฐพ•„„ ณ„กœ ž„ธžˆ •ˆ‚˜™”๊ธธž˜  —ˆŒ.
  • ›ณธ(source) : ƒˆกœ ๊ทธ ค€Š” ”ฝ…€
  • Œ€ƒ(destination) : ”„ ˆž„ ฒ„ผ— ฏธ ๊ทธ ค ธ žˆŠ” ”ฝ…€
  • ‚ฌšฉ•˜Š” •ˆ˜ : glEnable(GL_BLEND), glBlendFunc(›ณธ ”ฝ…€— Œ€•œ ธ”žœ”ฉ ๊ณ„ˆ˜ฅผ ๊ณ„‚ฐ•˜Š” ฐฉ‹, Œ€ƒ ”ฝ…€— Œ€•œ ธ”žœ”ฉ ๊ณ„ˆ˜ฅผ ๊ณ„‚ฐ•˜Š” ฐฉ‹)
›ณธ(Œ€ƒ) ˜ผ••ˆ˜“ค
  • ›ณธ ”ฝ…€— Œ€•œ ๊ณ„‚ฐ ฐฉ‹
ฐฉ‹ „ค…
GL_ZERO ›ณธ ƒ‰ƒ„ 0,0,0,0 œผกœ•œ‹ค
GL_ONE ›ณธ ƒ‰ƒ„ ๊ทธŒ€กœ ‚ฌšฉ•œ‹ค
GL_DST_COLOR ›ณธ ƒ‰ƒ๊ณผ Œ€ƒ ƒ‰ƒ„ ๊ณฑ•œ‹ค
GL_ONE_MINUS_DST_COLOR ›ณธ ƒ‰ƒ๊ณผ ((1,1,1,1)-Œ€ƒ ƒ‰ƒ)„ ๊ณฑ•œ‹ค
GL_SRC_ALPHA ›ณธ ƒ‰ƒ— ›ณธ •ŒŒŒ ๊ฐ’„ ๊ณฑ•œ‹ค
GL_ONE_MINUS_SRC_ALPHA ›ณธ ƒ‰ƒ— (1-›ณธ •ŒŒŒ๊ฐ’)„ ๊ณฑ•œ‹ค
GL_DST_ALPHA ›ณธ ƒ‰ƒ— Œ€ƒ •ŒŒŒ ๊ฐ’„ ๊ณฑ•œ‹ค
GL_ONE_MINUS_DST_ALPHA ›ณธ ƒ‰ƒ— ((1,1,1,1)-Œ€ƒ ƒ‰ƒ •ŒŒŒ๊ฐ’)„ ๊ณฑ•œ‹ค
GL_SRC_ALPHA_SATURATE ›ณธ ƒ‰ƒ— ›ณธ•ŒŒŒ ๊ฐ’๊ณผ (1-Œ€ƒ •ŒŒŒ๊ฐ’)ค‘ ž‘€ ๊ฒƒ„ ๊ณฑ•œ‹ค
  • Œ€ƒ ”ฝ…€— Œ€•œ ๊ณ„‚ฐ ฐฉ‹
ฐฉ‹ „ค…
GL_ZERO Œ€ƒ ƒ‰ƒ„ 0,0,0,0 œผกœ•œ‹ค
GL_ONE Œ€ƒ ƒ‰ƒ„ ๊ทธŒ€กœ ‚ฌšฉ•œ‹ค
GL_SRC_COLOR Œ€ƒ ƒ‰ƒ๊ณผ ›ณธ ƒ‰ƒ„ ๊ณฑ•œ‹ค
GL_ONE_MINUS_SRC_COLOR Œ€ƒ ƒ‰ƒ๊ณผ ((1,1,1,1)-›ณธ ƒ‰ƒ)„ ๊ณฑ•œ‹ค
GL_SRC_ALPHA Œ€ƒ ƒ‰ƒ— ›ณธ •ŒŒŒ ๊ฐ’„ ๊ณฑ•œ‹ค
GL_ONE_MINUS_SRC_ALPHA Œ€ƒ ƒ‰ƒ— (1-›ณธ •ŒŒŒ๊ฐ’)„ ๊ณฑ•œ‹ค
GL_DST_ALPHA Œ€ƒ ƒ‰ƒ— Œ€ƒ •ŒŒŒ ๊ฐ’„ ๊ณฑ•œ‹ค
GL_ONE_MINUS_DST_ALPHA Œ€ƒ ƒ‰ƒ— ((1,1,1,1)-Œ€ƒ ƒ‰ƒ •ŒŒŒ๊ฐ’)„ ๊ณฑ•œ‹ค
GL_SRC_ALPHA_SATURATE Œ€ƒ ƒ‰ƒ— ›ณธ•ŒŒŒ ๊ฐ’๊ณผ (1-Œ€ƒ •ŒŒŒ๊ฐ’)ค‘ ž‘€ ๊ฒƒ„ ๊ณฑ•œ‹ค

4. TextureMapping

  • …Šคณ งต•‘•˜Š” ๊ณผ •

~cpp 
Define the LoadBMPfile(char *filename) function
declare GLuint tex[n]
declare AUX_RGBImageRec *texRec[n]
assign LoadBMPFile("filename.bmp") to each texRec[i]
glGenTextures(count,&tex[0])
glBindTexture(GL_TEXTURE_2D,tex[i])
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,3,texRec[i]->sizeX
		,texRec[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE,texRec[i]->data);

if(texRec[i])
	if(texRec[i]->data) 
		free(texRec[i]->data);
	free(texRec[i]);
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
Example of using the texturemapping
  glBindTexture(GL_TEXTURE_2D, tex[0]);
  DrawQuad(1,1,1,normal);




5. Thread

  • ๊ทธฆฌŠค ฌธž “ฐŠ”• ใ…Ž ˆ„๊ณ  •œž‚ค
  • ›ฌธž ใ…‡ ˆ„๊ณ  •œž‚ค
  • ใ…Š ˆ„๊ณ  •œž‚ค น˜ ถ„ˆ˜ “ธˆ˜ žˆ‹ค.
  • ใ„น ˆ„๊ณ  •œž‚ค น˜ ‹จœ„„ ‚˜˜จ‹ค.
3DGraphicsFoundation
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:14
Processing time 0.0414 sec