 |
Á¤Á¡(vertex)´Â ¸é(face)¸¦ ±¸¼ºÇÏ´Â »ï°ÝÇü(¶Ç´Â primitive)ÀÇ ²ÀÁöÁ¡ÀÌ´Ù. Á¤Á¡À» ÀÌÀüÀÇ directx(±×·¯´Ï±î dx7ÀÌÀü)¿¡¼´Â dx¸Þ¸ð¸® °ø°£³»¿¡¼ Á¦°øÇß¾ú´Âµ¥ dx7ÀÌÈÄ·Î ¹Ù²¼´Ù.
Á¤Á¡ ¹öÆÛ¶õ Á¤Á¡ ¹è¿À» ĸ½¶È ÇѰÍÀ¸·Î, ÇÁ·Î±×·¡¸Ó°¡ Á÷Á¢ µå¶óÀ̹ö ¸Þ¸ð¸®·Î Á¢±ÙÇÒ ¼öÀÖ°Ô µÈ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î¼ ¾îÇø®ÄÉÀÌ¼Ç ¹öÆÛ¿¡¼ µå¶óÀ̹ö·Î ¹öÆÛ·Î º¹»çÇØ¾ß ÇÏ´Â ÀÌÀüÀÇ ¹æ¹ý¿¡¼ º¹»ç ¿À¹öÇìµå°¡ »ç¶óÁ® ¼º´É Çâ»óÀ» °¡Á® ¿Â´Ù.
Àοë: --------------------------------------------------
IDirect3DDevice9 ÀÎÅÍÆäÀ̽º Áß ¹öÅØ½º ¹öÆÛ¿Í ºñ½ÁÇÑ ³Ñµé
CreateCubeTexture Å¥ºê ÅØ½ºÃ³ ¼Ò½º¸¦ »ý¼º ÇÑ´Ù.
CreateIndexBuffer À妽º ¹öÆÛ¸¦ »ý¼º ÇÑ´Ù.
CreateVertexBuffer Á¤Á¡ ¹öÆÛ¸¦ »ý¼º ÇÑ´Ù.
CreateTexture ÅØ½ºÃ³ ¼Ò½º¸¦ »ý¼º ÇÑ´Ù.
CreateVolumeTexture º¼·ý ÅØ½ºÃ³ ¼Ò½º¸¦ »ý¼º ÇÑ´Ù.
--------------------------------------------------
À§ÀÇ ÇÔ¼öµéÀº °øÅëÀûÀ¸·Î D3DPOOL ¿°ÅÇüÀ» ÀÎÀÚ¸¦ °¡Áö´Âµ¥, dxµå¶óÀ̹ö ¹öÆÛ¿¡¸¸ °ªÀ» ¾²´Â°Ô ¾Æ´Ï¶ó ÀÌ ¿É¼ÇÀ» Á¶Á¤Çؼ ¼±ÅÃÀûÀ¸·Î °¡´ÉÇÏ´Ù. msdn¿¡¼ D3DPOOLÀ» ã¾ÆºÃ´Ù.
±¸¹®
Àοë:
typedef enum _D3DPOOL {
D3DPOOL_DEFAULT = 0,
D3DPOOL_MANAGED = 1,
D3DPOOL_SYSTEMMEM = 2,
D3DPOOL_SCRATCH = 3,
D3DPOOL_FORCE_DWORD = 0x7fffffff
} D3DPOOL;
Á¤¼ö
D3DPOOL_DEFAULT
¸®¼Ò½º´Â, ¸®¼Ò½º¿¡ ´ëÇØ¼ ¿ä±¸µÈ »ç¿ë ¹æ¹ýÀ¸·Î °¡Àå ÀûÇÕÇÑ ¸Þ¸ð¸® Ç®¿¡ ³õ¿©Áø´Ù. À̰ÍÀº, º¸Åë, ·ÎÄà ºñµð¿À ¸Þ¸ð¸®¿Í AGP (Accelerated Graphics Port) ¸Þ¸ð¸®ÀÇ ¾çÂÊ ¸ðµÎ¸¦ Æ÷ÇÔÇÑ, ºñµð¿À ¸Þ¸ð¸®ÀÌ´Ù. D3DPOOL_DEFAULT Ç®Àº, D3DPOOL_MANAGED ¹× D3DPOOL_SYTEMMEM ·ÎºÎÅÍ µ¶¸³Çϰí ÀÖ¾î, ¸®¼Ò½º°¡ ÀåÄ¡ ¾×¼¼½º¿ëÀÇ ¿ì¼± ¸Þ¸ð¸®¿¡ ¹èÄ¡µÇ´Â °ÍÀ» ÁöÁ¤ÇÑ´Ù. D3DPOOL_DEFAULT ´Â, ÀÌ ¸®¼Ò½ºÀÇ ¸Þ¸ð¸® Ç® ŸÀÔÀ¸·Î¼ D3DPOOL_MANAGED ¶Ç´Â D3DPOOL_SYSTEMMEM ÀÇ ¾î´ÀÂÊÀ̵çÀ» ¼±ÅÃÇØ¾ß ÇÏ´Â °ÍÀ» ³ªÅ¸³»°í ÀÖ´Â °ÍÀº ¾Æ´Ï±â ¶§¹®¿¡ ÁÖÀÇ ÇØ¾ß ÇÑ´Ù. D3DPOOL_DEFAULT Ç®¿¡ ¹èÄ¡µÈ ÅØ½ºÃ³´Â, ±×°ÍµéÀÌ µ¿Àû ÅØ½ºÃ³Àΰ¡, ¶Ç´Â PrivateÀÇ 4 ¹®ÀÚ ÄÚµå (FOURCC) µå¶óÀ̹ö Æ÷¸ËÀÎ °æ¿ì¸¸ Àá±Û ¼ö ÀÖ´Ù. Àá±Û ¼ö ¾ø´Â ÅØ½ºÃ³¿¡ ¾×¼¼½º ÇÏ·Á¸é ,IDirect3DDevice9::UpdateSurface ,IDirect3DDevice9::UpdateTexture ,IDirect3DDevice9::GetFrontBufferData ,IDirect3DDevice9::GetRenderTargetData µîÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ´Ù. D3DPOOL_MANAGED ´Â, ´ëºÎºÐÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î D3DPOOL_DEFAULT º¸´Ù ÀûÇÕÇÑ °æ¿ì°¡ ¸¹´Ù. Microsoft¢ç Direct3D¢ç ·±Å¸ÀÓ¿¡´Â ¹ÌÁöÀÇ, µå¶óÀ̹ö µ¶ÀÚÀûÀÎ Çȼ¿ Æ÷¸ËÀ¸·Î »ý¼º µÈ ÀϺÎÀÇ ÅØ½ºÃ³¸¦ Àá±Û ¼ö ÀÖ´Â °Í¿¡ ÁÖÀÇ ÇØ¾ß ÇÑ´Ù. ¶Ç, ÅØ½ºÃ³¿Í´Â ´Þ¶ó, ½º¿Ò üÀÎ ¹é ¹öÆÛ, ·»´õ¸µ Ÿ°Ù, Á¤Á¡ ¹öÆÛ, ¹× À妽º ¹öÆÛ¸¦ Àá±Û ¼ö ÀÖ°Ôµµ ÁÖÀÇ ÇØ¾ß ÇÑ´Ù. ÀåÄ¡°¡ ¼Õ½ÇÇßÀ» °æ¿ì´Â, D3DPOOL_DEFAULT ¸¦ »ç¿ëÇØ »ý¼º ÇÑ ¸®¼Ò½º´Â,IDirect3DDevice9::Reset ¸¦ È£ÃâÇϱâ Àü¿¡ ¸±¸®Áî ÇØ¾ß ÇÑ´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â, ¡¸ÀåÄ¡ÀÇ ¼Õ½Ç¡¹À» ÂüÁ¶ÇÒ°Í.
D3DPOOL_DEFAULT ¸¦ »ç¿ëÇØ ¸®¼Ò½º¸¦ »ý¼º ÇÒ ¶§ ºñµð¿À Ä«µå ¸Þ¸ð¸®°¡ ÀÌ¹Ì »ç¿ëµÇ°í ÀÖ´Â °æ¿ì´Â, ¿ä±¸¸¦ ä¿ì´Â ÃæºÐÇÑ ¸Þ¸ð¸®¸¦ ¸±¸®Áî Çϱâ À§Çؼ, °ü¸®µÇ´Â ¸®¼Ò½º°¡ Á¦°ÅµÈ´Ù.
D3DPOOL_MANAGED
¸®¼Ò½º´Â, Çʿ信 µû¶ó¼, ÀåÄ¡·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸®¿¡ ÀÚµ¿ÀûÀ¸·Î º¹»ç µÈ´Ù. °ü¸®µÇ´Â ¸®¼Ò½º´Â, ½Ã½ºÅÛ ¸Þ¸ð¸®¿¡ ¹é¾÷ µÇ¹Ç·Î, ÀåÄ¡°¡ ¼Õ½ÇÇßÀ» ¶§¿¡ »ý¼º ´Ù½Ã ÇÒ Çʿ䰡 ¾ø´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ¡¸¸®¼Ò½ºÀÇ °ü¸®¡¹¸¦ ÂüÁ¶ÇÒ°Í. °ü¸®µÇ´Â ¸®¼Ò½º´Â Àá±Û ¼ö ÀÖ´Ù. ½Ã½ºÅÛ ¸Þ¸ð¸®ÀÇ º¹»ç¸¸ÀÌ Á÷Á¢ º¯°æµÈ´Ù. Direct3D ´Â, Çʿ信 µû¶ó¼, µå¶óÀ̹ö°¡ ¾×¼¼½º °¡´ÉÇÑ ¸Þ¸ð¸®·Î º¯°æ ³»¿ëÀ» º¹»ç ÇÑ´Ù.
D3DPOOL_SYSTEMMEM
º¸Åë, 3D ÀåÄ¡¿¡ ÀÇÇØ ¾×¼¼½º ÇÒ ¼ö ¾ø´Â ¸Þ¸ð¸®. ½Ã½ºÅÛ RAM ¸¦ »ç¿ëÇÏÁö¸¸, ÆäÀÌ¡ °¡´ÉÇÑ RAM °¡ ÁÙ¾îµé °ÍÀº ¾ø´Ù. ÀÌ·¯ÇÑ ¸®¼Ò½º´Â, ÀåÄ¡°¡ ¼Õ½ÇÇØµµ »ý¼º ´Ù½Ã ÇÒ Çʿ䰡 ¾ø´Ù. ÀÌ Ç®ÀÇ ¸®¼Ò½º´Â Àá±Û ¼ö°¡ ÀÖ¾î D3DPOOL_DEFAULT ¸¦ »ç¿ëÇØ »ý¼º µÈ ¸Þ¸ð¸® ¸®¼Ò½º¿¡ ´ëÇÑ IDirect3DDevice9::UpdateSurface ¶Ç´Â IDirect3DDevice9::UpdateTexture ó¸®ÀÇ Àü¼Û¿øÀ¸·Î¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
D3DPOOL_SCRATCH
¸®¼Ò½º´Â, ½Ã½ºÅÛ RAM ¿¡ ¹èÄ¡µÇ¹Ç·Î, ÀåÄ¡°¡ ¼Õ½ÇÇßÀ» ¶§¿¡ »ý¼º ´Ù½Ã ÇÒ Çʿ䰡 ¾ø´Ù. ÀÌ·¯ÇÑ ¸®¼Ò½º´Â, ÀåÄ¡ÀÇ »çÀÌÁ Æ÷¸ËÀÇ Á¦ÇÑ¿¡ ÀÇÇØ ±¸¼ÓµÇÁö ¾Ê´Â´Ù. µû¶ó¼, Direct3D ÀåÄ¡·ÎºÎÅÍ ¾×¼¼½º ÇÏ´Â Àϵµ, ÅØ½ºÃ³ ¶Ç´Â ·»´õ¸µ Ÿ°ÙÀ¸·Î¼ ¼³Á¤ÇÏ´Â Àϵµ ÇÒ ¼ö ¾ø´Ù. ´Ù¸¸, ÀÌ·¯ÇÑ ¸®¼Ò½º´Â Ç×»ó »ý¼º, Àá±Ý, º¹»ç°¡ °¡´ÉÇÏ´Ù.
D3DPOOL_FORCE_DWORD
ÀÌ ¿°ÅÇüÀ» °Á¦ÀûÀ¸·Î 32 ºñÆ® »çÀÌÁî¿¡ ÄÄÆÄÀÏ ÇÑ´Ù. ÀÌ °ªÀº »ç¿ëµÇÁö ¾Ê¾Ò´Ù.
[ºÐ·ù: Çϵå¿þ¾î ] |
|
 |