DirectX Graphics ÇÁ·Î±×·¡¹Ö °¡À̵å ÇÁ·Î±×·¡¹Ö °¡´ÉÇÑ ÆÄÀÌÇÁ¶óÀÎ Á¤Á¡ ¼ÎÀÌ´õ Á¤Á¡ ¼ÎÀÌ´õ¿Í Á¤Á¡ ¼±¾ðÀÇ ºÐ¸®   [¸ñÂ÷¿­¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
Á¤Á¡ ¼ÎÀÌ´õ¿Í Á¤Á¡ ¼±¾ðÀÇ ºÐ¸®
 
Microsoft DirectX 9.0

Á¤Á¡ ¼ÎÀÌ´õ¿Í Á¤Á¡ ¼±¾ðÀÇ ºÐ¸®


Microsoft® DirectX® 9.0 ¿¡¼­´Â, ¼ÎÀÌ´õ »ý¼º (CreateVertexShader) ½Ã¿¡´Â Á¤Á¡ ¼ÎÀÌ´õ¿Í Á¤Á¡ ¼±¾ðÀ» ¹ÙÀεå ÇÏÁö ¾Ê°Ô µÇ¾ú´Ù. ¼ÎÀÌ´õÀÇ Æò°¡´Â 2 °³ÀÇ ºÎºÐÀ¸·Î ³ª´©¾îÁ³´Ù. ÃÖÃÊÀÇ ºÎºÐÀ» ¼ÎÀÌ´õ »ý¼º½Ã¿¡ ½ÇÇàÇØ, ³ª¸ÓÁöÀÇ ºÎºÐÀ» µå·ÎÀ×(Drawing) (DrawPrimitive) ½Ã¿¡ ½ÇÇàÇÑ´Ù.

Á¤Á¡ ¼ÎÀÌ´õ¿Í Á¤Á¡ ¼±¾ðÀº °³Ã¼¿¡ ÀÇÇØ Ç¥ÇöÇÑ´Ù. DirectX 8. x µå¶óÀ̹ö¸¦ »ç¿ëÇØ À̰ÍÀ» ½Ç½ÃÇÏ´Â °æ¿ì´Â, ¾ó¸¶Àΰ¡ÀÇ Ä³½ÌÀ» ÇÑ´Ù. ·±Å¸ÀÓÀº "µå·ÎÀ×(Drawing)½Ã" ¿¡, ÇöÀçÀÇ ¼±¾ð°ú ¼ÎÀÌ´õ¸¦ ĸ½¶È­ÇÑ °áÇÕ ¼ÎÀÌ´õ °³Ã¼°¡ Á¸ÀçÇÒÁö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù. Á¸ÀçÇÏ´Â °æ¿ì´Â, ±×°ÍÀ» µå¶óÀ̹ö¿¡ º¸³», Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â, ±× ¼ÎÀÌ´õ ¼±¾ðÀ» Á¶ÇÕÇÑ »õ·Î¿î °³Ã¼¸¦ »ý¼º ÇÑ´Ù. °Ô´Ù°¡ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º (API)ÀÇ °¡¿ë¼ºÀÇ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­, SetVertexDeclaration È£ÃâÇØ¿¡ »ó´çÇÏ´Â °³º°ÀÇ SetFVF È£ÃâÀ» ½Ç½ÃÇÑ´Ù. À̰ÍÀº Æí¸®ÇÑ ÇÔ¼öÀÌ´Ù. ÀÌ È£ÃâÀ» ½Ç½ÃÇϸé, ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â ¼±¾ðÀº ¹«È¿°¡ µÇ¾î, »õ·Î¿î ¼±¾ðÀÌ À¯È¿ÇÏ°Ô µÈ´Ù. DirectX 8.0 ÀÌÀüÀÇ µå¶óÀ̹ö (½ºÆ®¸²¼ö°¡ 0)¿¡¼­´Â, ¼±¾ðÀ» À¯¿¬ÇÑ Á¤Á¡ Æ÷¸Ë (FVF)À¸·Î º¯È¯ÇÒ ¼ö ¾ø±â À§ÇØ(¶§¹®¿¡) SetVertexDeclaration °¡ ½ÇÆÐÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.

DirectX 8. x µå¶óÀ̹ö (½ºÆ®¸²¼ö´Â 0 Àº ¾Æ´ÏÁö¸¸, ½ºÆ®¸² ¿ÀÇÁ¼Â(offset)¸¦ Áö¿ø Çϰí ÀÖÁö ¾Ê´Ù)·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ¼±¾ðÀÇ ¼­ºê ¼¼Æ®ÀÌ´Ù. DirectX 8. x Çü½ÄÀÇ ¼±¾ð¿¡ º¯È¯ °¡´ÉÇÑ °Í¸¸À» »ý¼º ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­, ÁöÁ¤µÈ ¼±¾ðÀ» º¯È¯ÇÒ ¼ö ¾øÀ¸¸é CreateVertexDeclaration È£ÃâÀº ½ÇÆÐÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ¹Í½º ¸ðµåÀÇ °æ¿ì,DrawXXX ¸¦ ½ÇÇà Çϸé ÀÌ ½ÇÆÐ°¡ ÀϾ´Ù. ÀÌ ¼ÎÀÌ´õ°¡ Çϵå¿þ¾î Á¤Á¡ 󸮷Π»ç¿ëµÇ°í ÀÖ´ÂÁö, ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮷Π»ç¿ëµÇ°í ÀÖÀ»Áö¸¦ ¾Æ´Â °ÍÀº ÀÌ ¶§ »ÓÀÌ´Ù. ÀÌ º¯È¯¿¡ ´ëÇØ Á¤¸®ÇÑ Ç¥¸¦ ³ªÅ¸³½´Ù.

DirectX 8.0 ÀÌÀüÀÇ µå¶óÀ̹ö (½ºÆ®¸²¼ö¸¦ 0)·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº, decl ÀÇ ÇÑÃþ ´õ ÀÛÀº ¼­ºê ¼¼Æ®ÀÌ´Ù. ÀûÀýÇÑ FVF ·Î º¯È¯ÇÒ ¼ö ÀÖ´Â ¼±¾ð¸¸ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ º¯È¯À» ÇÒ ¼ö ¾øÀ¸¸é CreateVertexDeclaration ´Â ½ÇÆÐÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ¹Í½º ¸ðµåÀÇ °æ¿ì,DrawXXX ¸¦ ½ÇÇà Çϸé ÀÌ ½ÇÆÐ°¡ ÀϾ´Ù. ÀÌ ¼ÎÀÌ´õ°¡ Çϵå¿þ¾î Á¤Á¡ 󸮷Π»ç¿ëµÇ°í ÀÖ´ÂÁö, ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮷Π»ç¿ëµÇ°í ÀÖÀ»Áö¸¦ ¾Æ´Â °ÍÀº ÀÌ ¶§ »ÓÀÌ´Ù. ÀÌ º¯È¯¿¡ ´ëÇØ Á¤¸®ÇÑ Ç¥¸¦ ³ªÅ¸³½´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ½ºÆ®¸² 0 »ÓÀÌ´Ù (MaxStreams ´É·ÂÀ¸·ÎºÎÅÍ ¾ÆÅ°¶óµîÀΰ¡).

Á¤Á¡ ¿ä¼ÒÀÇ Â÷·Ê´Â FVF ÄÚµåÀÇ Â÷·Ê¿Í °°Áö ¾ÊÀ¸¸é ¾È µÈ´Ù. D3DDECLUSAGE_POSITION ¹× D3DDECLUSAGE_NORMAL ÀÇ »ç¿ë ¹æ¹ý À妽º´Â 0 ÀÌ ¾Æ´Ï¸é ¾ÈµÈ´Ù. ÀåÄ¡ÀÇ Á¤Á¡ ó¸® ¸ðµå¸¦ ¹Í½º ¸ðµå·Î ÀüȯÇÏ´Â °æ¿ì, ÀÔ·Â Á¤Á¡ ( ¹× À妽º) ½ºÆ®¸², Á¤Á¡ ¼±¾ð, Á¤Á¡ ±â´ÉÀ» ¸ðµÎ ¸®¼Â ÇÒ ÇÊ¿ä´Â ¾ø´Ù. NULL ´Â, SetVertexDeclaration ¿¡ ´ëÇÑ ¹«È¿ÀÎ ÀÔ·ÂÀÌ´Ù. ¼ÒÇÁÆ®¿þ¾î Á¤Á¡ 󸮸¦ »ç¿ëÇϰí ÀÖ´Â °æ¿ì, ÇÁ·Î±×·¡¹Ö °¡´ÉÇÑ Á¤Á¡ ÆÄÀÌÇÁ¶óÀÎÀÇ ¼ÎÀÌ´õ ÄÚµå·Î ÁöÁ¤ÇÑ ¸ðµç »ç¿ë ¹æ¹ýÀÌ, µå·ÎÀ×(Drawing)½Ã¿¡ ¹ÙÀεå ÇÑ ¼±¾ð (¶Ç´Â FVF)¾È¿¡ Á¸ÀçÇØ¾ß ÇÑ´Ù.

´ÙÀ½ÀÇ ±ÔÄ¢À» ä¿ëÇϰí ÀÖ´Â ¼±¾ðÀº, °íÁ¤ ±â´É ÆÄÀÌÇÁ¶óÀÎÀ¸·Î ·»´õ¸µ ÇÒ ¼ö ÀÖ´Ù (Å×¼³·¹À̼ÇÀº ºÒ¿ä¿Í »óÁ¤).

DirectX 8. x Á¤Á¡ ¼±¾ðÀÇ DirectX 9.0 Á¤Á¡ ¼±¾ð¿¡ÀÇ ¸ÊÇÎ

DirectX 8. xDirectX 9.0 »ç¿ë¹ýDirectX 9.0 »ç¿ë¹ýÀ妽º
D3DVSDE_POSITIOND3DDECLUSAGE_POSITION0
D3DVSDE_POSITION2D3DDECLUSAGE_POSITION1
D3DVSDE_NORMALD3DDECLUSAGE_NORMAL0
D3DVSDE_NORMAL2D3DDECLUSAGE_NORMAL1
D3DVSDE_BLENDWEIGHTD3DDECLUSAGE_BLENDWEIGHT0
D3DVSDE_BLENDINDICESD3DDECLUSAGE_BLENDINDICES0
D3DVSDE_PSIZED3DDECLUSAGE_PSIZE0
D3DVSDE_DIFFUSED3DDECLUSAGE_COLOR0
D3DVSDE_SPECULARD3DDECLUSAGE_COLOR1
D3DVSDE_TEXCOORDnD3DDECLUSAGE_TEXCOORDn

FVF ÄÚµåÀÇ DirectX 9.0 Á¤Á¡ ¼±¾ð¿¡ÀÇ ¸ÊÇÎ

FVFµ¥ÀÌÅÍ Å¸ÀÔ»ç¿ë¹ý»ç¿ë¹ýÀ妽º
D3DFVF_XYZD3DDECLTYPE_FLOAT3D3DDECLUSAGE_POSITION0
D3DFVF_XYZRHWD3DDECLTYPE_FLOAT4D3DDECLUSAGE_POSITIONT0
D3DFVF_XYZWD3DDECLTYPE_FLOAT4D3DDECLUSAGE_POSITIONT0
D3DFVF_XYZB5 ¹× D3DFVF_LASTBETA_UBYTE4D3DVSDT_FLOAT3, D3DVSDT_FLOAT4, D3DVSDT_UBYTE4D3DDECLUSAGE_POSITION, D3DDECLUSAGE_BLENDWEIGHT, D3DDECLUSAGE_BLENDINDICES0
D3DFVF_XYZB5D3DDECLTYPE_FLOAT3, D3DDECLTYPE_FLOAT4, D3DDECLTYPE_FLOAT1D3DDECLUSAGE_POSITION, D3DDECLUSAGE_BLENDWEIGHT, D3DDECLUSAGE_BLENDINDICES0
D3DFVF_XYZBn (n=1..4)D3DDECLTYPE_FLOAT3, D3DDECLTYPE_FLOATnD3DDECLUSAGE_POSITION, D3DDECLUSAGE_BLENDWEIGHT0
D3DFVF_XYZBn (n=1..4) ¹× D3DFVF_LASTBETA_UBYTE4D3DDECLTYPE_FLOAT3, D3DDECLTYPE_FLOAT(n-1), D3DDECLTYPE_UBYTE4D3DDECLUSAGE_POSITION, D3DDECLUSAGE_BLENDWEIGHT, D3DDECLUSAGE_BLENDINDICES0
D3DFVF_NORMALD3DDECLTYPE_FLOAT3D3DDECLUSAGE_NORMAL0
D3DFVF_PSIZED3DDECLTYPE_FLOAT1D3DDECLUSAGE_PSIZE0
D3DFVF_DIFFUSED3DDECLTYPE_D3DCOLORD3DDECLUSAGE_COLOR0
D3DFVF_SPECULARD3DDECLTYPE_D3DCOLORD3DDECLUSAGE_COLOR1
D3DFVF_TEXCOORDSIZEm(n)D3DDECLTYPE_FLOATmD3DDECLUSAGE_TEXCOORDn

DirectX 9.0 Á¤Á¡ ¼±¾ðÀÇ DirectX 8. x Á¤Á¡ ¼±¾ð¿¡ÀÇ ¸ÊÇÎ

»ç¿ë¹ý»ç¿ë¹ýÀ妽ºDirectX decl
D3DDECLUSAGE_POSITION0 D3DVSDE_POSITION
D3DDECLUSAGE_POSITION1 D3DVSDE_POSITION2
D3DDECLUSAGE_BLENDWEIGHT0 D3DVSDE_BLENDWEIGHT
D3DDECLUSAGE_BLENDINDICES0 D3DVSDE_BLENDINDICES
D3DDECLUSAGE_NORMAL0 D3DVSDE_NORMAL
D3DDECLUSAGE_NORMAL1 D3DVSDE_NORMAL2
D3DDECLUSAGE_PSIZE0 D3DVSDE_PSIZE
D3DDECLUSAGE_COLOR0 D3DVSDE_DIFFUSE
D3DDECLUSAGE_COLOR1 D3DVSDE_SPECULAR
D3DDECLUSAGE_TEXCOORDnD3DVSDE_TEXTUREn, n <= 7

DirectX 9.0 Á¤Á¡ ¼±¾ðÀÇ FVF Äڵ忡ÀÇ ¸ÊÇÎ

DirectX 8.0 ¹× ±× ÀÌÈÄÀÇ µå¶óÀ̹ö¿¡¼­´Â, ¼±¾ð¿¡ Á¤»óÀûÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ¾î µû¶ó °íÁ¤ ±â´É Á¤Á¡ 󸮷Π»ç¿ëÇÒ ¼ö Àִ ŸÀÔÀÌ ±× ¹Û¿¡µµ ÀÖ´Ù.

µ¥ÀÌÅÍ Å¸ÀÔ»ç¿ë¹ý»ç¿ë¹ýÀ妽ºFVF
D3DDECLTYPE_FLOAT3D3DDECLUSAGE_POSITION0D3DFVF_XYZ
D3DDECLTYPE_FLOATnD3DDECLUSAGE_BLENDWEIGHT0D3DFVF_XYZBn
D3DDECLTYPE_UBYTE4D3DDECLUSAGE_BLENDINDICES0D3DFVF_XYZB (nWeights+1)
D3DDECLTYPE_FLOAT3D3DDECLUSAGE_NORMAL0D3DFVF_NORMAL
D3DDECLTYPE_FLOAT1D3DDECLUSAGE_PSIZE0D3DFVF_PSIZE
D3DDECLTYPE_D3DCOLORD3DDECLUSAGE_COLOR0D3DFVF_DIFFUSE
D3DDECLTYPE_D3DCOLORD3DDECLUSAGE_COLOR1D3DFVF_SPECULAR
D3DDECLTYPE_FLOATmD3DDECLUSAGE_TEXCOORDnD3DFVF_TEXCOORDSIZEm(n)
D3DDECLTYPE_FLOAT3D3DDECLUSAGE_POSITION1ºÎÀû´ç¿ë
D3DDECLTYPE_FLOAT3D3DDECLUSAGE_NORMAL1ºÎÀû´ç¿ë


© 2002 Microsoft Corporation. All rights reserved.
¡èTOP