DirectX Graphics ·¹ÆÛ·±½º Direct3D extension (D3DX) C/C++ ·¹ÆÛ·±½º ÀÎÅÍÆäÀ̽º ID3DXPMesh [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
¾ÖÇø®ÄÉÀ̼ÇÀº,ID3DXPMesh ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µå¸¦ »ç¿ëÇØ ÇÁ·Î±×·¡½Ãºê ¸Þ½¬ °³Ã¼¸¦ Á¶ÀÛÇÑ´Ù. ÇÁ·Î±×·¡½Ãºê ¸Þ½¬¿¡ ÀÇÇØ, ¸Þ½¬ °³Ã¼ÀÇ Á¡ÁøÀûÀÎ ¼¼ºÐȰ¡ °¡´ÉÇØÁø´Ù.
ID3DXPMesh ¸â¹ö
CloneMesh ¼±¾ðÀÚ¸¦ »ç¿ëÇØ, ¸Þ½¬ÀÇ º¹»ç¸¦ »ý¼º ÇÑ´Ù. CloneMeshFVF À¯¿¬ÇÑ Á¤Á¡ Æ÷¸Ë (FVF) Äڵ带 »ç¿ëÇØ ¸Þ½¬ÀÇ º¹»ç¸¦ »ý¼º ÇÑ´Ù. ClonePMesh ¼±¾ðÀÚ¸¦ »ç¿ëÇØ ÇÁ·Î±×·¡½Ãºê ¸Þ½¬ÀÇ º¹»ç¸¦ »ý¼º ÇÑ´Ù. ClonePMeshFVF FVF Äڵ带 »ç¿ëÇØ ÇÁ·Î±×·¡½Ãºê ¸Þ½¬ÀÇ º¹»ç¸¦ »ý¼º ÇÑ´Ù. ConvertAdjacencyToPointReps ¸Þ½¬ÀÇ ÀÎÁ¢ õ¼ºº¸¸¦ Æ÷ÀÎÆ® Ç¥ÇöÀÇ ¹è¿·Î º¯È¯ÇÑ´Ù. ConvertPointRepsToAdjacency Æ÷ÀÎÆ® Ç¥Çö µ¥ÀÌÅ͸¦ ¸Þ½¬ÀÇ ÀÎÁ¢ õ¼ºº¸·Î º¯È¯ÇÑ´Ù. DrawSubset ¸Þ½¬ÀÇ ¼ºê ¼¼Æ®¸¦ µå·ÎÀ×(Drawing) ÇÑ´Ù.
GenerateAdjacency ¸Þ½¬ÀÇ À妽º¿¡ ±Ù°ÅÇØ ÀÎÁ¢ õ¼ºº¸¸¦ »ý¼ºÇÑ´Ù. GenerateVertexHistory Á¤Á¡ÀÇ ºÐÇÒ¿¡ ÀÇÇØ Á¤Á¡ÀÇ ÀÌ·Â(History)°¡ »èÁ¦µÇ¾úÀ» ¶§¿¡, °¢ Á¤Á¡¿¡ ´ëÇØ¼ ¿øÀÇ Á¤Á¡À» »ý¼ºÇÑ´Ù. À̰Ϳ¡ ÀÇÇØ Áö¿À¸ðÈĸ¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. GetAdjacency ¸Þ½¬ÀÇ ¸éÀÎÁ¢¼º ¹è¿À» µ¹·ÁÁØ´Ù. GetAttributeTable ¸Þ½¬ÀÇ ¼Ó¼º Å×À̺í, ¶Ç´Â ¸Þ½¬ÀÇ ¼Ó¼º Å×ÀÌºí¿¡ ÀúÀå µÇ°í ÀÖ´Â ¿£Æ®¸®ÀÇ ¼ö¸¦ ¾ò¾î¿Â´Ù. GetDeclaration ¸Þ½¬¿¡ Æ÷ÇԵǴ Á¤Á¡À» ±â¼úÇÏ´Â ¼±¾ðÀ» ¾ò¾î¿Â´Ù.
GetDevice ¸Þ½¬¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ´Â ÀåÄ¡¸¦ ¾ò¾î¿Â´Ù. GetFVF °íÁ¤ ±â´ÉÀÇ Á¤Á¡ÀÇ °ªÀ» ¾ò¾î¿Â´Ù.
GetIndexBuffer À妽º ¹öÆÛ³»ÀÇ µ¥ÀÌÅ͸¦ ¾ò¾î¿Â´Ù.
GetMaxFaces ÇÁ·Î±×·¡½Ãºê ¸Þ½¬°¡ Áö¿ø ÇÏ´Â ¸éÀÇ ¼öÀÇ ÃÖ´ëÄ¡¸¦ ¾ò¾î¿Â´Ù.
GetMaxVertices ÇÁ·Î±×·¡½Ãºê ¸Þ½¬°¡ Áö¿ø ÇÏ´Â Á¤Á¡ÀÇ ¼öÀÇ ÃÖ´ëÄ¡¸¦ ¾ò¾î¿Â´Ù.
GetMinFaces ÇÁ·Î±×·¡½Ãºê ¸Þ½¬°¡ Áö¿ø ÇÏ´Â ¸éÀÇ ¼öÀÇ ÃÖ¼Ò °ªÀ» ¾ò¾î¿Â´Ù.
GetMinVertices ÇÁ·Î±×·¡½Ãºê ¸Þ½¬°¡ Áö¿ø ÇÏ´Â Á¤Á¡ÀÇ ¼öÀÇ ÃÖ¼Ò °ªÀ» ¾ò¾î¿Â´Ù.
GetNumBytesPerVertex Á¤Á¡¸¶´Ù ¹ÙÀÌÆ®¼ö¸¦ ¾ò¾î¿Â´Ù. GetNumFaces ¸Þ½¬¿¡ Æ÷ÇԵǴ ¸éÀÇ ¼ö¸¦ ¾ò¾î¿Â´Ù.
GetNumVertices ¸Þ½¬¿¡ Æ÷ÇԵǴ Á¤Á¡ÀÇ ¼ö¸¦ ¾ò¾î¿Â´Ù.
GetOptions ÀÌ ¸Þ½¬ÀÇ »ý¼º½Ã¿¡ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â ¸Þ½¬ ¿É¼ÇÀ» ¾ò¾î¿Â´Ù. GetVertexBuffer Á¤Á¡ ¹öÆÛ³»ÀÇ µ¥ÀÌÅ͸¦ ¾ò¾î¿Â´Ù.
LockIndexBuffer À妽º ¹öÆÛ¸¦ Àá±×¾î, À妽º ¹öÆÛ ¸Þ¸ð¸®ÀÇ Æ÷ÀÎÅ͸¦ ¾ò¾î¿Â´Ù.
LockVertexBuffer Á¤Á¡ ¹öÆÛ¸¦ Àá±×¾î, Á¤Á¡ ¹öÆÛ ¸Þ¸ð¸®ÀÇ Æ÷ÀÎÅ͸¦ ¾ò¾î¿Â´Ù.
Optimize ÆÛÆ÷¸Õ½º¸¦ ÃÖÀûÈÇϵµ·Ï(µíÀÌ) ¸é ¹× Á¤Á¡À» ´Ã¾î³õ°í ¹Ù²Û Ãâ·Â ¸Þ½¬¸¦ »ý¼ºÇÑ´Ù. OptimizeBaseLOD ID3DXPMesh °³Ã¼ÀÇ º£À̽ºÀÇ »ó¼¼ ·¹º§ (LOD) ºÎºÐÀ» ÃÖÀûÈÇÑ´Ù. Save ÁöÁ¤ÇÑ ½ºÆ®¸² °³Ã¼¿¡ ÇÁ·Î±×·¡½Ãºê ¸Þ½¬¸¦ º¸Á¸ÇÑ´Ù. SetNumFaces ÇöÀçÀÇ »ó¼¼ ·¹º§À», ÁöÁ¤ÇÑ ¸éÀÇ ¼ö·Î ÇÒ ¼ö ÀÖ´Â ÇÑ Á¢±ÙÇØ ¼³Á¤ÇÑ´Ù. SetNumVertices ÇöÀçÀÇ »ó¼¼ ·¹º§À», ÁöÁ¤ÇÑ Á¤Á¡ÀÇ ¼ö·Î ÇÒ ¼ö ÀÖ´Â ÇÑ Á¢±ÙÇØ ¼³Á¤ÇÑ´Ù. TrimByFaces ID3DXPMesh °³Ã¼ÀÇ »ó¼¼ ·¹º§ (LOD)ÀÇ ÃÖ¼Ò °ª°ú ÃÖ´ëÄ¡¸¦ º¯°æÇÑ´Ù. TrimByVertices ID3DXPMesh °³Ã¼ÀÇ »ó¼¼ ·¹º§ (LOD)ÀÇ ÃÖ¼Ò °ª°ú ÃÖ´ëÄ¡¸¦ º¯°æÇÑ´Ù. UnlockIndexBuffer À妽º ¹öÆÛÀÇ Àá±ÝÀ» ÇØÁ¦ÇÑ´Ù.
UnlockVertexBuffer Á¤Á¡ ¹öÆÛÀÇ Àá±ÝÀ» ÇØÁ¦ÇÑ´Ù.
UpdateSemantics ÀÌ ¸Þ¼µå¸¦ ÀÌ¿ë Çϸé, »ç¿ëÀÚ´Â Á¤Á¡ ¹öÆÛÀÇ µ¥ÀÌÅÍ ·¹À̾ƿôÀ» º¯°æÇÏÁö ¾Ê°í , ¸Þ½¬ÀÇ ¼±¾ðÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ³°Àº ¼±¾ð°ú »õ·Î¿î ¼±¾ðÀÇ Æ÷¸ËÀÌ °°Àº Á¤Á¡ »çease-in °æ¿ì¿¡¸¸, È£ÃâÀÌ À¯È¿°¡ µÈ´Ù.
ÁÖÀÇ
ID3DXPMesh ÀÎÅÍÆäÀ̽º¸¦ ¾ò¾î¿À·Á¸é,D3DXGeneratePMesh ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
ÀÌ ÀÎÅÍÆäÀ̽º´Â,ID3DXBaseMesh ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ Ãß°¡ ±â´ÉÀ» °è½ÂÇÑ´Ù.
ÀÌ ÀÎÅÍÆäÀ̽º´Â, ¸ðµç ±¸¼º ¿ä¼Ò °³Ã¼ ¸ðµ¨ (COM) ÀÎÅÍÆäÀ̽º¿Í °°°Ô,IUnknown ÀÎÅÍÆäÀ̽º·ÎºÎÅÍ Ãß°¡ ±â´ÉÀ» °è½ÂÇÑ´Ù.
LPD3DXPMESH ÇüÀº, ´ÙÀ½°ú °°ÀÌ ID3DXPMesh ÀÎÅÍÆäÀ̽ºÀÇ Æ÷ÀÎÅͷμ Á¤Àǵǰí ÀÖ´Ù.
typedef struct ID3DXPMesh *LPD3DXPMESH;
ÀÎÅÍÆäÀ̽ºÀÇ Á¤º¸
»ó¼Ó¹ÞÀº°÷ IUnknown Çì´õ d3dx9mesh.h ÀÓÆ÷Æ® ¶óÀ̺귯¸® d3dx9.lib ÃÖÀúÇÑÀÇ operating system Windows 98
ÂüÁ¶
¸Þ½¬ ÇÔ¼ö