DirectX Graphics ·¹ÆÛ·±½º ¼ÎÀÌ´õ ·¹ÆÛ·±½º ¼ÎÀÌ´õ µð¹ö°Å [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
Microsoft® Visual Studio® . NET ´Â, ¾î¼Àºí¸® ·¹º§ÀÇ »óÀ§ ·¹º§ ¾ð¾î·Î Á¤Á¡ ¼ÎÀÌ´õ ¹× Çȼ¿ ¼ÎÀÌ´õÀÇ µð¹ö±×¸¦ Áö¿ø ÇÑ´Ù.
µð¹ö°Å´Â, µð¹ö±× ¹öÀüÀÇ ·±Å¸ÀÓ ¹× ƯÁ¤ÀÇ ÀåÄ¡ ŸÀÔÀ¸·Î ±â´ÉÇÑ´Ù. ·¹ÆÛ·±½º ÀåÄ¡¸¦ »ç¿ëÇϸé ÀÓÀÇÀÇ Á¤Á¡ ¼ÎÀÌ´õ ¶Ç´Â Çȼ¿ ¼ÎÀÌ´õ¸¦ µð¹ö±× ÇÒ ¼ö ÀÖ´Ù. ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮿ëÀÇ Çϵå¿þ¾î Ãß»ó °èÃþ (HAL) ÀåÄ¡»ó¿¡¼ ½ÇÇàÇϰí ÀÖÀ¸¸é, Á¤Á¡ ¼ÎÀÌ´õ¸¦ µð¹ö±× ÇÒ ¼ö ÀÖ´Ù. Çϵå¿þ¾î Á¤Á¡ ó¸® ¹× "Ç»¾î" ÀÎ HAL ÀåÄ¡¿¡ ´ëÇØ¼´Â, µð¹ö±×´Â Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀåÄ¡ ŸÀÔÀÇ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸D3DDEVTYPE ¡¹¸¦ ÂüÁ¶ÇÒ°Í.
¼ÎÀÌ´õ¸¦ ¼Ò½º ·¹º§·Î µð¹ö±× ÇÏ·Á¸é , ¼ÎÀÌ´õ¸¦ µð¹ö±× Á¤º¸¸¦ »ç¿ëÇØ ºôµå ÇØ, µð½ºÅ© À§¿¡ÀÇ ¼Ò½º ÆÄÀϰú °ü·ÃÁþ°í ÇÒ Çʿ䰡 ÀÖ´Ù. ±×·¯ÇÑ ¼ÎÀÌ´õ¸¦ »ý¼º ÇÏ´Â ¹æ¹ý¿¡´Â, ´ÙÀ½ÀÇ 2 Åë°úÇØ ¹æ¹ýÀÌ ÀÖ´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀ» µð¹ö±× ÇÏ·Á¸é , ±× ¾ÖÇø®ÄÉÀ̼ÇÀÌ µð¹ö±× ¹öÀüÀÇ Microsoft Direct3D® ·±Å¸ÀÓÀ» »ç¿ëÇϰí ÀÖ¾î, ¼ÎÀÌ´õ µð¹ö±×°¡ À¯È¿ÇÏ°Ô µÇÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. ÀÌ·¯ÇÑ ¿É¼ÇÀº, Microsoft DirectX® ÄÁÆ®·Ñ ÆÐ³Î ¾ÖÇø´ÀÇ [Direct3D] ÅÇÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ´Ù. Ÿ°Ù ÄÄÇ»ÅÍ¿¡¼´Â, DirectX Debug Service µµ ½ÇÇàµÇ°í ÀÖÀ» Çʿ䰡 ÀÖ´Ù. ÀÌ ¼ºñ½º´Â, DirectX extensions for Visual Studio . NET ¸¦ ÀνºÅç Çϸé, ÀÚµ¿ÀûÀ¸·Î ÀνºÅç µÈ´Ù.
µð¹ö°Å¸¦ ±âµ¿ÇÏ´Â ¹æ¹ýÀº 2 °³ ÀÖ´Ù.
Visual Studio . NET ¿¡¼µµ, Direct3D ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸®¸ðÆ® µð¹ö±×¸¦ Áö¿ø Çϰí ÀÖ´Ù. ¸®¸ðÆ® ÄÄÇ»ÅÍÀÇ Direct3D ÇÁ·Î¼¼½º¿¡ Attach ÇÏ·Á¸é ,[ÇÁ·Î¼¼½º] ´ÙÀÌ¾Ë·Î±× ¹Ú½ºÀÇ [ÄÄÇ»ÅÍ] ¹Ú½º¿¡ ¸®¸ðÆ® ÄÄÇ»ÅÍÀÇ À̸§À» ÀÔ·ÂÇØ, ·ÎÄà ÇÁ·Î¼¼½ºÀÇ °æ¿ì¿Í °°ÀÌ ±× ÇÁ·Î¼¼½º¿¡ Attach ÇÑ´Ù.
¸ðµâ À©µµ¿ì¸¦ »ç¿ëÇØ, ÇöÀç ·Îµå µÇ°í ÀÖ´Â ¼ÎÀÌ´õ¸¦ ¸ðµÎ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. native code¸¦ µð¹ö±× ÇÏ´Â °æ¿ì, À©µµ¿ì¸¦ ¿À¸¥ÂÊ Å¬¸¯ÇØ,[¸ðµç ÇÁ·Î±×·¥ÀÇ ¸ðµâÀ» Ç¥½Ã] ¸¦ ¼±ÅÃÇØ, ·Îµå µÇ°í ÀÖ´Â ¼ÎÀÌ´õ¸¦ Ç¥½ÃÇÑ´Ù.
Á¤Á¡ ¼ÎÀÌ´õ ¶Ç´Â Çȼ¿ ¼ÎÀÌ´õÀÇ ¼Ò½º ÆÄÀÏ¿¡ breakpoint¸¦ ¼³Á¤ÇÏ·Á¸é , ¼ÎÀÌ´õ¿¡ µð¹ö±× Á¤º¸¸¦ Á¦°ø½Ãų Çʿ䰡 ÀÖ´Ù ( ¡¸µð¹ö±× Á¤º¸¸¦ »ç¿ëÇÑ ºôµå¡¹¸¦ ÂüÁ¶ÇÒ°Í). ¼ÎÀÌ´õ¿¡ ¼Ò½º ÄÚµå breakpoint¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀº, ´ÙÀ½¿¡ ¼³¸íÇϵµ·Ï(µíÀÌ), C++ ¼Ò½º Äڵ忡 ¼Ò½º ÄÚµå breakpoint¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý°ú °°´Ù.
À̸§¿¡ ¼ÎÀÌ´õ ÇÔ¼öÀÇ À̸§ (´ë¹®ÀÚ ¼Ò¹®ÀÚ°¡ ±¸º°µÈ´Ù)À» ÀÔ·ÂÇØ, ¾ð¾î¿¡ [D3D Shader] ¸¦ ¼³Á¤ÇÑ´Ù. ÇÔ¼ö¸íÀº, µð¹ö±× Á¤º¸¿¡ ÀúÀå µÇ°í ÀÖ´Â ¼ÎÀÌ´õ ÇÔ¼öÀÇ À̸§, ¼ÎÀÌ´õ¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ÆÄÀÏÀÇ À̸§, ¶Ç´Â ¼ÎÀÌ´õ ŸÀÔÀÌ ¼±µÎ¸¦ µÚµû¸£´Â ¼ÎÀÌ´õ ÇÚµé ¹øÈ£ (VS1 µî)ÀÌ´Ù. ¸ðµâ À©µµ¿ì¿¡´Â, ÇöÀç ·Îµå »ç¶óÁú ¼ö ÀÖ¾î ¸ðµç ¼ÎÀÌ´õ¿Í ±× À̸§ÀÇ À϶÷ÀÌ Ç¥½ÃµÈ´Ù. IDirect3DDevice9::BeginScene ¿Í IDirect3DDevice9::EndScene ÀÇ breakpoint´Â, ÀÌÀü°ú °°ÀÌ ±â´ÉÇÑ´Ù.
Á¶°ÇÀÌ TRUE ¶§¿¡ breakpoint°¡ À¯È¿ÇÏ°Ô µÇµµ·Ï(µíÀÌ) ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì¿¡ ÇÑÁ¤ÇØ (Á¶°ÇÀÌ ¹Ù²î¾úÀ» ¶§¿¡ À¯È¿ÇÏ°Ô µÇ´Â °æ¿ì¿Í ¹Ý´ë), ´ÙÀ½ÀÇ Å¸ÀÔÀÇ breakpoint¿¡´Â Á¶°ÇÀ» °®°ÔÇÒ ¼ö°¡ ÀÖ´Ù.
½ÄÀº, ´ÜÀÏ ¿ä¼ÒÀÇ ºÒÇüÀÇ °á°ú¸¦ Æò°¡ÇØ¾ß ÇÑ´Ù.
¸Þ¸ð¸® breakpoint´Â, ÁöÁ¤µÈ Á÷»ç°¢Çü³»¿¡¼ Çȼ¿À» º¯°æÇϱâ Á÷ÀüÀÇ Çȼ¿ ¼ÎÀÌ´õÀÇ ÃÖÃÊÀÇ ¸í·ÉÀ¸·Î ¹æ¾Æ¼è µÈ´Ù. ¸Þ¸ð¸® breakpoint¸¦ ¼³Á¤ÇÏ·Á¸é ,[breakpointÀÇ »ý¼º] ´ÙÀ̾ó·Î±×ÀÇ [ÁÖ¼Ò] ÅÇÀ» ¿¾î, ¾ð¾î¿¡ [D3D Shader] ¸¦ ¼±ÅÃÇØ, ´ÙÀ½ÀÇ ¸î°³ÀÇ Çü½Ä¿¡¼ ¹üÀ§¸¦ ÀÔ·ÂÇÑ´Ù.
¼ÎÀÌ´õÀÇ Æ¯Á¤ÀÇ ¸í·É¿¡ breakpoint¸¦ ¼³Á¤ÇÏ´Â °æ¿ì´Â, µð¹ö±× Á¤º¸´Â ÇÊ¿ä¾ø´Ù. ÁÖ¼Ò breakpoint´Â, ´ÙÀ½ÀÇ ¹æ¹ýÀ¸·Î ¼³Á¤ÇÑ´Ù.
ÁÖ¼Ò´Â, <Shader Type>ShaderHandle:InstructionIndex ¶ó°í ÇÏ´Â Çü½Ä¿¡¼ ÀÔ·ÂÇÑ´Ù. ¿©±â¼, Shader Type ´Â, Á¤Á¡ ¼ÎÀÌ´õÀÇ °æ¿ì´Â "v", Çȼ¿ ¼ÎÀÌ´õÀÇ °æ¿ì´Â "p" ÀÌ´Ù. ShaderHandle ´Â,IDirect3DDevice9::CreateVertexShader ¶Ç´Â IDirect3DDevice9::CreatePixelShader ·ÎºÎÅÍ µ¹·Á¹Þ´Â ÇÚµéÀÇ °ªÀÌ´Ù. InstructionIndex ´Â, ¼ÎÀÌ´õ ¸í·ÉÀÇ 1 À¸·ÎºÎÅÍ ½ÃÀ۵Ǵ ¹ÙÀÌÆ® ¿ÀÇÁ¼Â(offset)ÀÌ´Ù. ¿¹¸¦ µé¾î, Á¤Á¡ ¼ÎÀÌ´õ ¹øÈ£ 2 ÀÇ ÃÖÃÊÀÇ ¸í·É¿¡ breakpoint¸¦ ¼³Á¤ÇÏ·Á¸é , ÁÖ¼Ò¸¦ ¡¸v2:1¡¹(ÀÌ)¶ó°í ÀÔ·ÂÇÑ´Ù.
µð¹ö±× Çϰí ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ IDirect3DDevice9::BeginScene ¶Ç´Â IDirect3DDevice9::EndScene ¿¡ À̸£·¶À» ¶§¿¡ breakpoint¸¦ ¼³Á¤ÇÏ·Á¸é ,[breakpointÀÇ »ý¼º] Ä¿¸àµå (µðÆúÆ®¿¡¼´Â Ctrl + B Ű)¸¦ ¼±ÅÃÇØ,[ÇÔ¼ö] ÅÇÀ» ¼±ÅÃÇØ,[¾ð¾î] ¹Ú½ºÀÇ À϶÷À¸·ÎºÎÅÍ [Direct3D Shader] ¸¦ ¼±ÅÃÇÑ´Ù. ÇÔ¼ö¸íÀ¸·Î¼ ¡¸BeginScene¡¹¶Ç´Â ¡¸EndScene¡¹¶ó°í ÀÔ·ÂÇÑ´Ù.
¼ÎÀÌ´õ Äڵ带 ½ºÅÜ ½ÇÇàÇÏ·Á¸é ,[µð¹ö±×] ¸Þ´ºÀÇ [½ºÅÜ¿À¹ö] Ä¿¸àµå (µðÆúÆ®¿¡¼´Â F10 Ű)¸¦ »ç¿ëÇÑ´Ù. Direct3D Äڵ带 ½ºÅÜ ½ÇÇàÇÏ´Â °Í¿¡ ÀÇÇØ, µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀº, ´ÙÀ½¿¡ ½ÇÇàÇÏ´Â Á¤Á¡ ¼ÎÀÌ´õ ¸í·É ¶Ç´Â Çȼ¿ ¼ÎÀÌ´õ ¸í·ÉÀ¸·Î ¸ØÃá´Ù.
µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¤Á¡ ¼ÎÀÌ´õ³ª Çȼ¿ ¼ÎÀÌ´õ ¶Ç´Â BeginScene ³ª EndScene ÀÇ breakpoint·Î ¸ØÃ߸é[½Ã°è] À©µµ¿ì¸¦ »ç¿ëÇØ µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç »óŸ¦ Á¶»çÇÒ ¼ö ÀÖ´Ù. ¶Ç,[È¥ÇÕ ¸ðµå] À©µµ¿ì ¶Ç´Â ¼ÎÀÌ´õÀÇ ¼Ò½º ÄÚµå·Î ¸¶¿ì½º Æ÷ÀÎÅ͸¦ ·¹Áö½ºÅÍ À§¿¡ ª°Ô µÎ¸é ·¹Áö½ºÅÍÀÇ ³»¿ëÀ» °ð¹Ù·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.
½ÄÀÇ ±¸¹®¿¡¼´Â, ·¹Áö½ºÅ͸í, ¹Ù²ã ³Ö¾î ÀÌÇÏÀÇ ¿¬»êÀÚ°¡ Áö¿ø µÇ°í ÀÖ´Ù. ¿¬»êÀÚ´Â ¸ðµÎ ¼ººÐ ´ÜÀ§·Î ¿¬»êÀ» ½Ç½ÃÇÑ´Ù.
+ - * / == != < <= > >= [] ! || &&
¶Ç, ´ÙÀ½ÀÇ 2 °³ÀÇ ÆíÀÔ ÇÔ¼öµµ Áö¿ø µÇ°í ÀÖ´Ù.
¸ðµç ÇüŰ¡ Á¤È®ÇÏ°Ô ÀÏÄ¡Çϰí ÀÖÀ» Çʿ䰡 ÀÖ´Ù. ºÎµ¿ ¼Ò¼öÁ¡ ¸®ÅÍ·²¿¡´Â ¼Ò¼öÁ¡ÀÌ ¾øÀ¸¸é ¾È µÈ´Ù. ¼Ò¼öÁ¡ÀÌ ¾øÀ¸¸é Á¤¼ö·Î º¸¿©Áø´Ù.
Â÷ÀÇ ½Ä¿¡¼´Â, r0 ÀÇ ÃÖÃÊÀÇ 3 °³ÀÇ ¼ººÐ ¸ðµç °ÍÀÌ ´ëÀÀÇÏ´Â c4 ÀÇ ¼ººÐº¸´Ù ÀÛÀ¸¸é TRUE ¸¦ µ¹·ÁÁØ´Ù.
all( r0.xyz < c4.xyz )
Á¤¼ö ·¹Áö½ºÅÍ¿¡´Â, 1 ¿¡ a0 ÀÇ x ¼ººÐÀ» ´õÇÑ À妽º°¡ »ý¼º µÈ´Ù.
c[a0.x+1]
½Ã°è À©µµ¿ì¿¡ ·¹Áö½ºÅÍÀÇ ³»¿ëÀ» Ç¥½ÃÇÏ·Á¸é , ´ÙÀ½ÀÇ ½ÄÀÇ ±¸¹®À» »ç¿ëÇÑ´Ù.
registerName[. swizzle][, format][, w]
¿©±â¼
ÀåÄ¡ÀÇ ·»´õ¸µ ½ºÅ×ÀÌÆ®¿Í ÅØ½ºÃ³ ½ºÅ×ÀÌÁö ½ºÅ×ÀÌÆ®ÀÇ ÇöÀçÀÇ °ªÀ» Ç¥½ÃÇÏ·Á¸é ,[½Ã°è] À©µµ¿ì¿¡ ¡¸$DeviceState¡¹¶ó°í ÀÔ·ÂÇÑ´Ù.
·¹Áö½ºÅÍ vPos ¿¡´Â, Çȼ¿ ¼ÎÀÌ´õ°¡ ÇöÀç ·»´õ¸µÁßÀÇ Çȼ¿ÀÇ ÁÂÇ¥°¡ ÀúÀå µÇ°í ÀÖ´Ù.
·»´õ¸µ Ÿ°ÙÀÇ Ç¥½Ã - ÇöÀçÀÇ ·»´õ¸µ Ÿ°Ù Ç¥¸éÀÇ ³»¿ëÀ» Ç¥½ÃÇÏ·Á¸é ,[µð¹ö±×] ¸Þ´ºÀÇ [Direct3D] - [Render Target] ¸Þ´º ¿É¼ÇÀ» ¼±ÅÃÇØ,[Render Target] À©µµ¿ì¸¦ ¿¬´Ù. ÀÌ À©µµ¿ì´Â, µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ "ºê·¹ÀÌÅ©" ¸ðµå¿¡ µé¾î°¥ ¶§¸¶´Ù, ·»´õ¸µ Ÿ°ÙÀÇ ÇöÀçÀÇ ³»¿ë¿¡ °»½ÅµÈ´Ù.
ÅØ½ºÃ³ÀÇ Ç¥½Ã - ÅØ½ºÃ³ ½ºÅ×ÀÌÁö¿¡ ÇöÀç ¼±Åõǰí ÀÖ´Â ÅØ½ºÃ³ÀÇ ³»¿ëÀ» Ç¥½ÃÇÏ·Á¸é ,[µð¹ö±×] ¸Þ´ºÀÇ [Direct3D] - [Textures] ¸Þ´º·ÎºÎÅÍ ÀûÀýÇÑ ÅØ½ºÃ³ ½ºÅ×ÀÌÁö¸¦ ¼±ÅÃÇØ,[Texture] À©µµ¿ì¸¦ ¿¬´Ù. ÅØ½ºÃ³ À©µµ¿ì´Â, µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ "ºê·¹ÀÌÅ©" ¸ðµå¿¡ µé¾î°¥ ¶§¸¶´Ù, ´ëÀÀÇÏ´Â ÅØ½ºÃ³ ½ºÅ×ÀÌÁöÀÇ ÇöÀçÀÇ ³»¿ë¿¡ °»½ÅµÈ´Ù.
Ç¥¸é (·»´õ¸µ Ÿ°Ù ¶Ç´Â ÅØ½ºÃ³)ÀÇ ³»¿ëÀ» Ç¥½ÃÇÒ ¼ö ¾ø´Â °æ¿ì´Â, Ç¥¸éÀÇ À©µµ¿ì¿¡ "Unavailable" ¶ó°í ÇÏ´Â ¹®ÀÚ°¡ Ç¥½ÃµÈ´Ù. Ç¥¸éÀ» Ç¥½ÃÇÒ ¼ö ¾ø´Â °æ¿ì, ´ÙÀ½°ú °°Àº ÀÌÀ¯°¡ »ý°¢µÈ´Ù.
Visual Studio . NET µð¹ö°Å´Â, º¹¼öÀÇ ÇÁ·Î±×·¥ ŸÀÔÀÇ µ¿½Ã µð¹ö±×¸¦ Áö¿ø Çϰí ÀÖ´Ù. º¸ÅëÀÇ C++ µð¹ö±×´Â,"³×ÀÌÆ¼ºê" ÇÁ·Î±×·¥ ŸÀÔÀ» »ç¿ëÇÑ´Ù. Direct3D µð¹ö±×´Â,"Direct3D" ÇÁ·Î±×·¥ ŸÀÔÀ» »ç¿ëÇÑ´Ù. µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ C++ Äڵ峻¿¡¼ ¸ØÃ߸é ÇöÀçÀÇ ÇÁ·Î±×·¥Àº ³×ÀÌÆ¼ºê·Î ¼³Á¤µÇ¾î Call Stack, ½Ã°è À©µµ¿ì, ±× ¿ÜÀÇ µð¹ö±× À©µµ¿ì¿¡´Â ³×ÀÌÆ¼ºê ÇÁ·Î±×·¥ÀÇ ½ºÅ×ÀÌÆ®°¡ ¹Ý¿µµÈ´Ù. °°ÀÌ µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¼ÎÀÌ´õ Äڵ峻¿¡¼ ¸ØÃß¾úÀ» °æ¿ì, ÇöÀçÀÇ ÇÁ·Î±×·¥Àº Direct3D ·Î ¼³Á¤µÇ¾î µð¹ö±× À©µµ¿ì¿¡´Â Direct3D ÇÁ·Î±×·¥ÀÇ ½ºÅ×ÀÌÆ®°¡ ¹Ý¿µµÈ´Ù. ÇÁ·Î±×·¥ ŸÀÔÀ» ¹Ù²Ù·Á¸é ,[µð¹ö±×ÀÇ Àå¼Ò] Åø¹ÙÀÇ [ÇÁ·Î±×·¥] ¹Ú½º¸¦ »ç¿ëÇÑ´Ù. µð¹ö±×ÁßÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ native code³»¿¡¼ ¸ØÃß¾úÀ» °æ¿ì, Direct3D ÇÁ·Î±×·¥ÀÇ ´ëºÎºÐÀÇ ½ºÅ×ÀÌÆ®´Â Ç¥½ÃµÇÁö ¾Ê°Ô µÈ´Ù. ´Ù¸¸, ±× ¿ªÀÇ °æ¿ì´Â °°Áö ¾Ê´Ù. ¿¹¸¦ µé¾î, ¼ÎÀÌ´õ³»ÀÇ breakpoint·Î ¸ØÃß¾ú´Ù°í Çϸé, ³×ÀÌÆ¼ºê ÇÁ·Î±×·¥À¸·Î ÀüÈ¯ÇØ, ¼ÎÀÌ´õÀÇ È£Ãâ¿øÀÌ µÈ C++ Call Stack¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.
º¹¼öÀÇ ÇÁ·Î±×·¥ ŸÀÔÀ» µ¿½Ã µð¹ö±× ÇÏ´Â ¹æ¹ýÀÇ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, Visual Studio . NET ÀÇ ¹®¼ÀÇ ¡¸º¹¼ö ÇÁ·Î±×·¥ÀÇ µð¹ö±×¡¹¸¦ ÂüÁ¶ÇÒ°Í.
°¡´ÉÇϸé, ¼ÎÀÌ´õ´Â µð¹ö±× Á¤º¸¸¦ »ç¿ë °¡´ÉÇÏ°Ô ÇØ ºôµå ÇÏ´Â °Í ( ¡¸µð¹ö±× Á¤º¸¸¦ »ç¿ëÇÑ ºôµå¡¹¸¦ ÂüÁ¶ÇÒ°Í). "±× ÀÚ¸®¿¡¼" ºôµå µÇ´Â ¼ÎÀÌ´õ µî, µð¹ö±× Á¤º¸¸¦ »ç¿ëÇÑ ºôµå°¡ ºÒ°¡´ÉÇÑ °æ¿ì, µð¹ö±×´Â ÇÒ ¼ö À־, º¸´Ù ÇÑÃþ ¾î·Á¿öÁø´Ù. ¼Ò½º Äڵ带 »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡, ¼Ò½º ÄÚµå breakpoint´Â ±â´ÉÇÏÁö ¾Ê´Â´Ù. µð¹ö±× Á¤º¸¾øÀÌ µð¹ö±× ÇÏ´Â ¹æ¹ýÀÇ 1 °³·Î¼ BeginScene breakpoint¸¦ ¼³Á¤ÇØ, ±× breakpoint¿¡ À̸£¸é F10 ۸¦ ´·¯ ½ÇÇàµÇ°í ÀÖ´Â ÃÖÃÊÀÇ ¼ÎÀÌ´õÀÇ ¼ÎÀÌ´õ Äڵ带 ½ºÅÜ ½ÇÇàÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. È¥ÇÕ ¸ðµå Äڵ带 ½ºÅÜ ½ÇÇàÇϰí ÀÖÀ» ¶§´Â,[È¥ÇÕ ¸ðµå] À©µµ¿ì·Î breakpoint¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. [Modules] À©µµ¿ì¸¦ »ç¿ëÇϸé ÇöÀç ·Îµå »ç¶óÁú ¼ö ÀÖ¾î ¸ðµç ¼ÎÀÌ´õÀÇ À̸§À» Ç¥½ÃÇØ, Çʿ信 µû¶ó¼ ¼ÎÀÌ´õ¿¡ breakpoint¸¦ ¼±ÅÃÀûÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
´Ù¸¥ ¹æ¹ýÀ¸·Î¼´Â, C++ Äڵ峻¿¡¼ IDirect3DDevice9::DrawPrimitive ¶Ç´Â IDirect3DDevice9::DrawIndexedPrimitive ¸¦ È£ÃâÇϱâ Á÷Àü¿¡ breakpoint¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ breakpoint¿¡ À̸£¸é ÇöÀçÀÇ ¼ÎÀÌ´õ ÇÚµéÀ» »ç¿ëÇØ ÁÖ¼Ò breakpoint¸¦ ¼³Á¤ÇØ, ±× breakpoint¿¡ À̸¦ ¶§±îÁö ½ÇÇàÇÑ´Ù.