XNA for C#
DirectX 9 for C#
DirectX 9 for C++
DirectX 9 for VB
Forum
   
My XNA Book
      
       Go to section on this site

Additional info


Latest Forum posts

 Tutorial 3 for Windows Phone 7
  Posted by: Anonymous
  When: 19/05/2013 at 11:27:50

 No download link for 2d series: shooter
  Posted by: zaboleq
  When: 07/05/2013 at 15:46:28

 Collision Class?
  Posted by: Anonymous
  When: 05/05/2013 at 19:03:59

 stack overflow
  Posted by: cityguy
  When: 07/04/2013 at 01:58:38

 Meshes looks strange.
  Posted by: ab_saratov
  When: 01/04/2013 at 04:31:08

 Lamppost Not loaded
  Posted by: Anonymous
  When: 22/03/2013 at 06:43:52

 Collision Class?
  Posted by: Da_Boom
  When: 21/03/2013 at 01:23:09

 Math boggles me
  Posted by: cityguy
  When: 17/03/2013 at 03:44:48

 Collision Class?
  Posted by: Da_Boom
  When: 16/03/2013 at 03:44:42

 Tree update
  Posted by: Anonymous
  When: 15/03/2013 at 21:11:22


Ads

»ï°¢Çü ±×¸®±â

À̹ø tutorial¿¡¼­´Â 3D¿¡ À־ tutorial ÁßÀÇ tutorialÀÎ »ï°¢Çü, Áï triangleÀ» ±×·Á º¸°Ú½À´Ï´Ù.

´Ù¸¸ »ï°¢ÇüÀ» ±×¸®±â À§Çؼ­´Â »çÀü Áö½ÄÀÌ ¾à°£ ÇÊ¿äÇÕ´Ï´Ù.

¸ðµç 3D °´Ã¼´Â »ï°¢ÇüÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. »ç°¢Çüµµ ½ÇÀº 2°³ÀÇ »ï°¢ÇüÀ¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç À°¸éü, ½ÉÁö¾î ±¸Ã¼µµ °á±¹ »ï°¢ÇüÀÇ ¸ðÀ½ÀÔ´Ï´Ù.

±×¸®°í »ï°¢ÇüÀº 3°³ÀÇ Á¡À¸·Î ±¸¼ºµË´Ï´Ù. ¿ì¸®µéÀº ÀÌ Á¡À» vertex¶ó°í ºÎ¸¨´Ï´Ù. ¶Ç vertex´Â x, y, zÀÇ 3°³ÀÇ ÁÂÇ¥·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù.

±×·¯³ª ´Ü¼øÈ÷ 3°³ÀÇ ÁÂÇ¥¸¸ÀÌ ÁÖ¾îÁø´Ù°í ÇØ¼­ vertex°¡ ¸¸µé¾îÁöÁö´Â ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î »öÀÌ ¾ø´Â Á¡ÀÌ Á¸ÀçÇÒ¼ö ÀÖÀ»±î¿ä? (°ËÀº»öµµ ÇϳªÀÇ »öÀÔ´Ï´Ù.) µû¶ó¼­ vertex¿¡´Â ¿©·¯°¡Áö Á¤º¸°¡ µé¾î ÀÖ½À´Ï´Ù.

XNA¿¡¼­´Â Ä£ÀýÇϰԵµ ¸î°¡Áö vertex structure°¡ ÀÌ¹Ì Á¤ÀǵǾî Á¦°øµÇ¹Ç·Î ¿ì¸®´Â À̰ÍÀ» »ç¿ëÇϱ⸸ ÇÏ¸é µË´Ï´Ù. ¿ì¸®´Â VertexPositionColorÀ» »ç¿ëÇØº¾½Ã´Ù.

»ï°¢ÇüÀ» ±×¸®±â À§Çؼ­´Â ÀÍÈ÷ ¾Ë°í ÀÖ´Â°Í Ã³·³ 3°³ÀÇ vertex°¡ ÇÊ¿äÇϹǷΠarray·Î ¸¸µé¾î¾ßÇÒ Çʿ䰡 Àְڳ׿ä.

±×·¸´Ù¸é »õ·Î Windows Game ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇϰí ÄÚµå·Î µé¾î°¡ º¾½Ã´Ù. ¹°·Ð tutorial 02ÀÇ Äڵ忡¼­ Ãâ¹ßÇÒ °Í À̹ǷΠGame1.cs¸¦ º¹»çÇØµµ ÁÁ°í tutorial 02¸¦ ±×´ë·Î »ç¿ëÇØµµ ÁÁ½À´Ï´Ù. effects.fx ÆÄÀϵµ ±×´ë·Î »ç¿ëÇÒ °Í À̹ǷΠ¹Ýµå½Ã ÇÁ·ÎÁ§Æ® Æú´õ¿¡ º¹»çÇØ µÓ½Ã´Ù.

3°³ÀÇ VertexPositionColor array¸¦ ¸¸µé±â À§ÇØ Àü¿ª º¯¼ö·Î ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÕ´Ï´Ù.

 VertexPositionColor[] vertices;

±×¸®°í vertex¸¦ ¼³Á¤Çϱâ À§ÇØ °£´ÜÇÑ ÇÔ¼ö¸¦ Çϳª ´õ Ãß°¡ÇսôÙ. ÇÔ¼ö À̸§Àº SetupVertices·Î ÇϰڽÀ´Ï´Ù. parameter´Â ¾ø°í return value´Â voidÀÔ´Ï´Ù. ¹°·Ð ´Ù¸¥ Ŭ·¡½º¿¡¼­ Á¢±ÙÇÒ ÀÏÀº ¾øÀ¸¹Ç·Î ±ÇÇÑÀº privateÀÔ´Ï´Ù.

 private void SetupVertices()
 {
     vertices = new VertexPositionColor[3];
 
     vertices[0].Position = new Vector3(-0.5f, -0.5f, 0.0f);
     vertices[0].Color = Color.Red;
     vertices[1].Position = new Vector3(0.0f, 0.5f, 0.0f);
     vertices[1].Color = Color.Green;
     vertices[2].Position = new Vector3(0.5f, -0.5f, 0.0f);
     vertices[2].Color = Color.Yellow;
 }

ù¹øÂ°·Î ¹Ì¸® Àü¿ª º¯¼ö·Î ¼±¾ðÇÑ vertices array¸¦ ÃʱâÈ­ ½Ãŵ´Ï´Ù. »ï°¢ÇüÀº 3°³ÀÇ vertex·Î ÀÌ·ç¾îÁö´Ï ´ç¿¬È÷ 3°³·Î ÃʱâÈ­ ÇØ¾ß ÇÕ´Ï´Ù.
µÎ¹øÂ°·Î vertices array¿¡ µé¾îÀÖ´Â vertexµéÀÇ °ªÀ» ä¿ö³Ö¾î¾ß ÇÕ´Ï´Ù. ¸ÕÀú 3°³ÀÇ ÁÂÇ¥°ª(position)À» ¼³Á¤Çϰí ÇØ´ç vertexÀÇ »ö»ó°ª(color)À» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.
Äڵ忡¼­ º¸ÀÌ´Â 3°³ÀÇ ÁÂÇ¥°ªµéÀÇ Ç¥ÇöÀº tutorial 02¿¡¼­ ¼³Á¤ÇÑ Pretransformed Technique´öºÐ¿¡ °¡´ÉÇÕ´Ï´Ù. Áï, Pretransformed Technique¶õ ¿ì¸®°¡ 3DÁÂÇ¥°è¸¦ È­¸éÀÇ 2DÁÂÇ¥°è·Î º¯È¯ÇÏ´Â ÀÛ¾÷À» ÇÏÁö ¾Ê¾Æµµ µÇµµ·Ï ¹Ì¸® ÁÂÇ¥°è¸¦ º¯È¯ÇØÁÖ´Â(Pretransformed) TechniqueÀÔ´Ï´Ù. ¸¸¾à Pretransformed Technique ¾øÀÌ È­¸é¿¡ »ï°¢ÇüÀ» Ãâ·ÂÇØ¾ß ÇÑ´Ù¸é? XNA°¡ Á¦°øÇÏ´Â 3D ÁÂÇ¥°è¸¦ ¿ì¸®ÀÇ ´«¿¡ º¸ÀÏ È­¸éÀÇ 2DÁÂÇ¥°è(¾î·µç È­¸é¿¡ Ãâ·ÂµÇ´Â °ÍÀº 2DÀ̴ϱî¿ä.)·Î º¯È¯ÇØÁÖ´Â Äڵ尡 ¶Ç ÇÊ¿äÇϰÚÁö¿ä.
¸¶Áö¸·À¸·Î »ï°¢ÇüÀ» Á» ´õ Çö¶õÇÏ°Ô Ç¥ÇöÇϱâÀ§ÇØ °¢°¢ÀÇ vertexÀÇ »ö»ó°ªÀ» ¸ðµÎ ´Ù¸¥ °ªÀ¸·Î ¼³Á¤Çß½À´Ï´Ù.

»ï°¢ÇüÀ» ±¸¼ºÇÒ vertex°¡ ¸ðµÎ ¼³Á¤µÇ¾ú´Ù¸é ÀÌÁ¦ »ï°¢ÇüÀ» ±×¸®´Â Àϸ¸ ³²¾Ò½À´Ï´Ù.

¸ÕÀú vertexµéÀÌ ½ÇÁ¦·Î ¼³Á¤µÉ ¼ö ÀÖµµ·Ï ¿ì¸®°¡ ¸¸µç SetupVerticesÇÔ¼ö¸¦ InitializeÇÔ¼öÀÇ ¸Ç ³¡¿¡ Ãß°¡ÇսôÙ.

 SetupVertices();

±×¸®°í ½ÇÁ¦·Î »ï°¢ÇüÀ» ±×¸± DrawÇÔ¼ö¿¡ ´ÙÀ½°ú °°Àº Äڵ带 Ãß°¡ÇÕ´Ï´Ù.

 protected override void Draw(GameTime gameTime)
 {
     device.Clear(Color.DarkSlateBlue);
 
     // TODO: Add your drawing code here
 
     effect.CurrentTechnique = effect.Techniques["Pretransformed"];
 
     effect.Begin();
 
     foreach (EffectPass pass in effect.CurrentTechnique.Passes)
     {
         pass.Begin();
 
         device.VertexDeclaration = new VertexDeclaration(device, VertexPositionColor.VertexElements);
         device.DrawUserPrimitives(PrimitiveType.TriangleList, vertices, 0, 1);
 
         pass.End();
     }
 
     effect.End();
 
     base.Draw(gameTime);
 }

»õ·Î Ãß°¡µÈ ù¹øÂ° ¶óÀÎÀº ±×·¡ÇÈ µð¹ÙÀ̽º°¡ vertex¸¦ Ãâ·ÂÇϱ⿡ ¾Õ¼­ ÇØ´ç vertex°¡ ¾î¶² vertexÀÎÁö ¼³Á¤ÇÏ´Â ÄÚµåÀÔ´Ï´Ù. VertexDeclaration ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ¼³Á¤ÇÕ´Ï´Ù.
µÎ¹øÂ° ¶óÀÎÀº »ï°¢ÇüÀ» ±×¸®´Â ÄÚµåÀÔ´Ï´Ù. DirectX¸¦ ¾Ë°í ÀÖ´Ù¸é Ä£¼÷ÇÏ°Ô ´À²¸Áö°Ú³×¿ä. DrawUserPrimitivesÇÔ¼ö´Â parameter·Î »ï°¢ÇüÀ» ±×¸®´Â Çü½Ä(type), vertex array(vertices), vertex arrayÁ¤º¸¸¦ Àб⠽ÃÀÛÇÒ À§Ä¡(offset), ±×¸± »ï°¢ÇüÀÇ °¹¼ö(count)¸¦ ¹Þ¾Æ¼­ ±×·¡ÇÈ µð¹ÙÀ̽º°¡ »ï°¢ÇüÀ» ±×¸®µµ·Ï ÇÕ´Ï´Ù. DrawUserPrimitivesÇÔ¼öÀÇ ÀÚ¼¼ÇÑ Á¤º¸³ª ¿øÇüÀº MSDNÀ» ÂüÁ¶ÇÏ±æ ¹Ù¶ø´Ï´Ù.

ÀÌÁ¦ µð¹ö±×(F5)۸¦ ´©¸£¸é À©µµ¿ì¿¡ È­·ÁÇÑ »ö»óÀÇ »ï°¢ÇüÀÌ ±×·ÁÁ® Àִ°ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.






Google
 
Webwww.riemers.net


If you appreciate the amount of time I spend creating and updating
these pages, feel free to donate -- any amount is welcome !



- Website design & XNA + DirectX code : Riemer Grootjans -
©2003 - 2011 Riemer Grootjans
Translations

This site in English
This site in Korean
This site in Czech

Microsoft MVP Award



2007 - 2011 MVP Award
DirectX - XNA

Contents

[Tutorials]
[XNA in C#]
Series 1: ÁöÇü
XNAÀÇ ½ÃÀÛ
ÀÌÆåÆ® ÆÄÀÏ
ù ¹øÂ° »ï°¢Çü
¿ùµå ÁÂÇ¥°è
ȸÀü, À§Ä¡ º¯È¯
À妽º
ÁöÇü »ý¼ºÀÇ ±âº»
ÆÄÀϷκÎÅÍ ÁöÇü »ý¼º
Űº¸µå ÀÔ·Â
[tut10]
[tut11]
[tut12]
[tut13]
-- Expand all --


Thank you!

Support this site --
any amount is welcome !

Stay up-to-date

I don't have the time to keep a News section, so stay informed about the updates by clicking on this RSS file!