¼õÉÙÓÎÏ·Ö´ÐÐÆ¿¾±£º¸úÒÔÍùµÄDX°æ±¾Ò»Ñù£¬DX10µÄ×ÅÉ«Æ÷°æ±¾Ôٴεõ½ÌáÉý£¬¼´´ÓD9CµÄSM3.0ÉýÖÁSM4.0¡£SM4.0ÔÚÖ¸ÁîÊýÁ¿ÉϽ«²»ÔÙÓÐÏÞÖÆ£¬¶øÖ®Ç°µÄSM3.0Ö¸ÁîÊý²»Äܳ¬¹ý32768Ìõ£¬SM2.0¸üÊÇÖ»ÓпÉÁ¯µÄ96Ìõ£»Temporary Registers Buffers ÌáÉýÖÁ 4096 ¡¢ Constant Registers Buffers ÌáÉýÖÁ 65536 (16 ¸ö4096 Buffers)£»shader¾«¶È»¹Ö§³Öµ½Ç°ËùδÓеÄ64Bit£»ÁíÍâÿ¸ö×ÅÉ«Æ÷µÄTextureÊýÄ¿ÓÉSM3.0µÄ16¸öÌáÉýÖÁ128¸ö£¬Ö§³ÖµÄÎÆÀí·Ö±æÂʱÈÉÏ´úDX9·±¶´ïµ½8096*8096, Render Targets ÔòÔö¼Óµ½8¸ö¡£´ËÍâÍæ¼ÒÃÇÆÚÅÎÁ˺öàÄêµÄÖû»ÌùͼDisplacement MappingÒ²ÒѾ³ÉΪDX10µÄ±ê×¼Ö®Ò»¡£
ËäÈ»SM4ÄÇЩѤÀö¶áÄ¿µÄÌØÐ§ÓÃSM2ͬÑùÄܹ»ÊµÏÖ£¬Ö»²»¹ýÓÃSM2À´×öÕâÐ©ÌØÐ§µÄ»°ÐÔÄÜËðʧ»áºÜ´ó¡£DX 10ÁíÒ»¸ö×îÁîÈËעĿµÄ¸Ä½ø¾ÍÊÇ¿ÉÒÔΪAPI½ÚÊ¡¼ÆË㿪Ïú£¨API overhead£©¡£DX10»¹´øÓÐÒ»¸öÕæÕýµÄÕûÊýÖ¸Á£¬¿ÉÒÔ¾¡¿ÉÄÜÍê³É¸ü¶àµÄѰַ¼ÆË㣬¸ü¶àµÄÊý¾Ý´ò°üºÍ½â°ü£»µ±È»ÕâЩ¹¦Äܲ¢²»»á´´Ôì³öһЩÐÂµÄ»ÃæÌØÐ§£¬µ«ËüÔÊÐí¿ª·¢ÈËÔ±ÔÚGPUÖиßЧµÄÍê³É¸üΪÖÇÄÜ¡¢¸´ÔÓµÄäÖȾ¹¤×÷£¡

¸ü¸´ÔÓѤÀöµÄshader£¨×ÅÉ«Æ÷£©ÌØÐ§£ºDX10»¹ÎªÎÒÃÇ´øÀ´Ò»¸öеÄ×ÅÉ«Æ÷µ¥Ôª¡ª¡ª¼¸ºÎ×ÅÉ«Æ÷£¨Geometry shader£©¡£ÔÚ¹ýÈ¥µÄDX9ÖУ¬Vertex Shaderÿһ´ÎÔËÐÐÖ»ÄÜ´¦ÀíÒ»¸ö¶¥µãµÄÊý¾Ý£¬²¢ÇÒÿ´ÎÖ»ÄÜÊä³öÒ»¸ö¶¥µãµÄ½á¹û¡£ÔÚÕû¸öÓÎÏ·³¡¾°ÖУ¬»æÖƵļ¸ºÎͼÐεÄÈÎÎñÁ¿·Ç³£ÅÓ´ó£¬Èç¹û½ö½öÒÀ¿¿Vertex Shaderµ¥Ò»À´Íê³É£¬Ð§ÂʻἫÆäµÍÏ¡£¶ø¸üÖÂÃüµÄÊÇVSÎÞ·¨µ¥¶ÀÉú³É»òÖØ×é¶à±ßÐΣ¨È±·¦Tessellation£©£¬ËùÒÔÔÚÒÔÍùÖ»ÓÐVS¸úPSµÄGPUÖУ¬Éú³ÉÒ»¸öÄ£ÐÍÍùÍùÐèÒªCPUµÄ¡°´óÁ¦Ö§³Ö¡±¡£Geometry shader¼¸ºÎ×ÅÉ«Æ÷µÄÖ÷ÒªÈÎÎñ¾ÍÊÇÁ¬µã³ÉÏߣ¬¿ÉÒÔ¸ù¾Ý¶¥µãµÄÐÅÏ¢À´ÅúÁ¿´¦Àí¼¸ºÎͼÐΣ¬¶ÔVertex¸½½üµÄÊý¾Ý½øÐк¯Êý´¦Àí£¬¿ìËÙ»æÖƳöеĶà±ßÐΡ£È»ºóÔÙͨ¹ýsteam out½«ÕâЩ½á¹û´«µÝ¸øÆäËûShader»òbuffer£¬Ê¹µÃCPU¿ÉÒÔ´ÓÔ±¾¸´ÔÓÅÓ´óµÄ¶à±ßÐÎÔËËãÖнâ·Å³öÀ´¡£ÏÖÔÚ¿ÉÒÔÈÃGPUÖ±½Ó´¦Àíϸ΢µÄÁ£×´Ð§¹û£¬ÈçÑÌÎíºÍ±¬Õ¨Ð§¹ûµÈ(ÔÚÕâ֮ǰÕâÒ»ÈÎÎñͨ³£½»ÓÉCPUÀ´Íê³É)¡£¶øÓÉÓÚGSµÄÐÔÄÜÒª±ÈCPU¸ß³öÐí¶à£¬Í¬ÆÁÏÂÄܹ»äÖȾµÄÁ£×ÓÊýÁ¿Ò²¾Í¸ü¶à£¬ËùÒÔ¿ÉÒÔÔ¤¼ÆÑÌÎí¸ú±¬Õ¨µÄЧ¹û»á±ÈÒÔÍù¸üΪÕ𺳡£
