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.0377 sec