|
|
|
|
|
|
Additional info
|
|
|
|
|
Latest Forum posts
|
|
|
|
|
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)۸¦ ´©¸£¸é À©µµ¿ì¿¡ È·ÁÇÑ »ö»óÀÇ »ï°¢ÇüÀÌ ±×·ÁÁ® Àִ°ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
- Website design & XNA + DirectX code : Riemer Grootjans - ©2003 - 2011 Riemer Grootjans
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007 - 2011 MVP Award DirectX - XNA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Support this site -- any amount is welcome !
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|