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