DirectX Graphics ·¹ÆÛ·±½º ¼ÎÀÌ´õ ·¹ÆÛ·±½º Çȼ¿ ¼ÎÀÌ´õ 2_0 È®Àå ¸í·É - ps_2_x [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
¿©±â¿¡¼´Â, Çȼ¿ ¼ÎÀÌ´õ ¹öÀü 2_x ¸í·ÉÀÇ ·¹ÆÛ·±½º Á¤º¸¸¦ ±â¼úÇÑ´Ù.
´ÙÀ½ Ç¥¿¡ ³ªÅ¸³ªµíÀÌ Çȼ¿ ¼ÎÀÌ´õ ¸í·É¿¡´Â ¸î°³ÀÇ Á¾·ù°¡ ÀÖ´Ù. ¿ìÃøÀÇ ¿ÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù.
| À̸§ | ¼³¸í | ¸í·É ½½·Ô | ¼Â¾÷ | »ê¼ú | ¸ÅÅ©·Î ¿¬»êÀÚ | ÅØ½ºÃ³ | flow control | ½Å±Ô |
|---|---|---|---|---|---|---|---|---|
| abs | Àý´ëÄ¡ | 1 | x | |||||
| add | 2 °³ÀÇ º¤ÅÍÀÇ µ¡¼À | 1 | x | |||||
| break | loop ...endloop ¶Ç´Â rep ...endrep ºí·ÏÀ» Á¾·áÇÏ´Â | 1 | x | x | ||||
| break_comp | ºñ±³ÀÇ Á¶°Ç¿¡ ±Ù°ÅÇØ,loop...endloop ¶Ç´Â rep...endrep ºí·ÏÀ» Á¾·áÇÏ´Â | 3 | x | x | ||||
| break pred | ÇÁ·¹µðÄÉÀ̼ǿ¡ ±Ù°ÅÇØ,loop...endloop ¶Ç´Â rep...endrep ºí·ÏÀ» Á¾·áÇÏ´Â | 3 | x | x | ||||
| call | ¼ºê ·çƾÀ» È£ÃâÇÏ´Â | 2 | x | x | ||||
| callnz | ºÒÇü ·¹Áö½ºÅͰ¡ Á¦·Î°¡ ¾Æ´Ñ °æ¿ì¿¡ ¼ºê ·çƾÀ» È£ÃâÇÏ´Â | 3 | x | x | ||||
| callnz pred | ÇÁ·¹µðÄÉÀ̼ÇÀÌ Á¦·Î°¡ ¾Æ´Ñ °æ¿ì¿¡ ¼ºê ·çƾÀ» È£ÃâÇÏ´Â | 3 | x | x | ||||
| cmp | ÀÔ·ÂÀ» 0 °ú ºñ±³ÇÏ´Â | 1 | x | |||||
| crs | ¿Ü Àû | 2 | x | |||||
| dcl | Á¤Á¡ ¿ä¼ÒÀÇ Å¸ÀÔÀ» ÀÔ·Â Á¤Á¡ ·¹Áö½ºÅÍ¿¡ ¸ÊÇÎ ÇÏ´Â | 0 | x | |||||
| dcl_textureType | »ùÇ÷¯ÀÇ ÅØ½ºÃ³ÀÇ ³ÐÀ̸¦ ¼±¾ðÇÏ´Â | 0 | x | |||||
| def | Á¤¼öÀÇ Á¤ÀÇ | 0 | x | |||||
| dp2add | 2D ÀÇ ³»Àû ¹× µ¡¼À | 1 | x | |||||
| dp3 | 3D ÀÇ ³»Àû | 1 | x | |||||
| dp4 | 4D ÀÇ ³»Àû | 1 | x | |||||
| dsx | x ¹æÇâÀÇ º¯È ºñÀ² | 2 | x | x | ||||
| dsy | y ¹æÇâÀÇ º¯È ºñÀ² | 2 | x | x | ||||
| else | else ºí·ÏÀÇ ½ÃÀÛ | 1 | x | x | ||||
| endif | if ...else ºí·ÏÀÇ Á¾·á | 1 | x | x | ||||
| endrep | repeat ºí·ÏÀÇ Á¾·á | 2 | x | x | ||||
| exp | ¿ÏÀü Á¤¹ÐµµÀÇ 2x | 1 | x | x | ||||
| frc | ¼Ò¼öºÎ | 1 | x | |||||
| if | if ºí·ÏÀÇ ½ÃÀÛ | 3 | x | x | ||||
| if comp | ºñ±³¿¡ ±Ù°ÅÇØ,if ºí·ÏÀ» ½ÃÀÛ ÇÏ´Â | 3 | x | x | ||||
| if pred | ÇÁ·¹µðÄÉÀ̼ǿ¡ ±Ù°ÅÇØ,if ºí·ÏÀ» ½ÃÀÛ ÇÏ´Â | 3 | x | x | ||||
| label | ¶óº§À» ºÙÀÌ´Â | 0 | x | x | ||||
| log | ¿ÏÀü Á¤¹ÐµµÀÇ log2(x) | 1 | x | |||||
| lrp | ¼±Çü º¸°£ | 2 | x | |||||
| m3x2 | 3x2 Çà·Ä °ö¼À | 2 | x | |||||
| m3x3 | 3x3 Çà·Ä °ö¼À | 3 | x | |||||
| m3x4 | 3x4 Çà·Ä °ö¼À | 4 | x | |||||
| m4x3 | 4x3 Çà·Ä °ö¼À | 3 | x | |||||
| m4x4 | 4x4 Çà·Ä °ö¼À | 4 | x | |||||
| mad | ÀûÈ | 1 | x | |||||
| max | ÃÖ´ëÄ¡ | 1 | x | |||||
| min | ÃÖ¼Ò °ª | 1 | x | |||||
| mov | À̵¿ | 1 | x | |||||
| mul | °ö¼À | 1 | x | |||||
| nop | ¹«µ¿ÀÛ ¸í·É (¾î¶² ¿¬»êµµ ½ÇÇàÇÏÁö ¾Ê´Â´Ù) | 1 | x | |||||
| nrm | Á¤±ÔÈ | 3 | x | |||||
| pow | 2x | 3 | x | |||||
| ps | ¹öÀü | 0 | x | |||||
| rcp | ¿ª¼ö | 1 | x | |||||
| rep | ¹Ýº¹ÇÏ´Â | 3 | x | x | ||||
| ret | ¼ºê ·çƾÀÇ Á¾·á | 1 | x | x | ||||
| rsq | ¿ª¼ö Á¦°ö±Ù | 1 | x | |||||
| setp | ÇÁ·¹µðÄÉÀ̼Ƿ¹Áö½ºÅ͸¦ ¼³Á¤ÇÏ´Â | 1 | x | x | ||||
| sincos | Á¤Çö°ú ÄÚ»çÀÎ | 8 | x | |||||
| sub | »¬¼À | 1 | x | |||||
| texkill | Çȼ¿ ·»´õ¸µÀ» Á¾·á½ÃŰ´Â | 2(tex) | x | |||||
| texld | ÅØ½ºÃ³ÀÇ »ùÇøµ | 1 + 3CUBE | x | |||||
| texldb | w ¼ººÐÀÇ »ó¼¼ ·¹º§ (LOD)ÀÇ ¹ÙÀ̾¸¦ »ç¿ëÇÑ ÅØ½ºÃ³ »ùÇøµ | 6(tex) | x | |||||
| texldd | »ç¿ëÀÚ ÁöÁ¤ÀÇ ±×¶óµ¥À̼ÇÀ» »ç¿ëÇÑ ÅØ½ºÃ³ »ùÇøµ | 3 | x | x | ||||
| texldp | w ¼ººÐ¿¡ ÀÇÇÑ Åõ¿µ ³ª´°¼ÀÀ» »ç¿ëÇÑ ÅØ½ºÃ³ »ùÇøµ | 3 + 1CUBE | x |
¿©±â¼
¼ÎÀÌ´õ¿¡´Â, ÃÖ´ë ¸í·É Ä«¿îÆ®¿Í Á¤Àû ¹× µ¿ÀûÀÎ flow control ¸í·ÉÀÇ ³×½ºÆ®ÀÇ ±íÀÌ¿¡ °üÇÑ Á¦ÇÑÀÌ ÀÖ´Ù.
ÃѸí·É ½½·Ô¼ö :ÃÖ´ë 512 °³
½ÇÇàµÇ´Â ¸í·ÉÀÇ ÃÖ´ë¼ö´Â,D3DCAPS9 ÀÇ MaxPShaderInstructionsExecuted ´É·ÂÀ¸·Î ÁöÁ¤µÇ°í ÀÖ´Â ¼öÀÌ´Ù.
ÀÌ ¼ö¿¡´Â, #define D3DINFINITEINSTRUCTIONS ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº, ½ÇÇàµÇ´Â ¸í·ÉÀÇ ½ÇÁ¦ÀÇ ¼ö°¡ ¹«Á¦ÇÑÇÑ °ÍÀ» ³ªÅ¸³½´Ù.
½ÇÇàµÇ´Â ¸í·ÉÀÇ ÃѼö´Â, ÀåÄ¡ µå¶óÀ̹ö D3DRS_MAXPIXELSHADERINST ¿¡ Á¦ÇѵÇÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. ÀÌ ·»´õ¸µ ½ºÅ×ÀÌÆ®·Î À¯È¿ÇÑ °ªÀº, 2 ÀÇ °ÅµìÁ¦°öÀÇ ¼öÀÌ´Ù. ±× ÀÌ¿ÜÀÇ Á¤¼ö¸¦ ¼³Á¤ Çϸé, ´ÙÀ½ÀÇ °¡Àå °¡±î¿î 2 ÀÇ °ÅµìÁ¦°öÀÇ ¼ö·Î º¸¿©Áø´Ù. ÀÌ ·»´õ¸µ ½ºÅ×ÀÌÆ®¿¡´Â µðÆúÆ®·Î, D3DINFINITEINSTRUCTIONS °¡ ¼³Á¤µÈ´Ù.
D3DCAPS9.D3DPSHADERCAPS2_0.DynamicFlowControlDepth ´Â, µ¿Àû flow control ¸í·É if ,break , ¹× break_comp ÀÇ ³×½ºÆ®ÀÇ ±íÀ̸¦ ³ªÅ¸³½´Ù. ÀÌ °ªÀº,if_comp ºí·ÏÀÇ ³×½ºÆ®ÀÇ ±íÀÌ¿Í µ¿ÀÏÇÏ´Ù. ÀÌ ´É·ÂÀÇ °ªÀÇ ¹üÀ§´Â 0 ~ 24 ÀÌ´Ù. ÀÌ ´É·ÂÀÌ 0 ÀÇ °æ¿ì, ÀåÄ¡´Â µ¿Àû flow control ¸í·ÉÀ» Áö¿ø ÇÏÁö ¾Ê´Â´Ù.
D3DCAPS9.D3DPSHADERCAPS2_0.StaticFlowControlDepth ´Â, Á¤Àû flow control ¸í·Éloop /rep ¹× call /callnz ÀÇ ³×½ºÆ®ÀÇ ±íÀ̸¦ ³ªÅ¸³½´Ù. ÀÌ ´É·ÂÀÇ °ªÀÇ ¹üÀ§´Â, 1 ~ 4 ÀÌ´Ù. loop/rep ´Â °°Àº ³×½ºÆ®ÀÇ ±íÀÌ¿¡ ´ëÇØ¼ Ä«¿îÆ® ÇØ,call/callnz ´Â °°Àº ³×½ºÆ®ÀÇ ±íÀÌ¿¡ ´ëÇØ¼ Ä«¿îÆ® ÇÑ´Ù. ÀÌ ´É·ÂÀÌ 0 ÀÇ °æ¿ì, ÀåÄ¡´Â Á¤Àû flow control ¸í·ÉÀ» Áö¿ø ÇÏÁö ¾Ê´Â´Ù.