[ÀÖÓÎÍøµ¼¶Á]DX11ÔÚ´ÎÊÀ´ú»·¾³ÏµÄÓÎÏ·½¨Ä£
½üÈÕ£¬CGDC 2010 ͼÏñר¼ÒÑݽ²ÈËÄßÌìÔÆ½ÓÊܹúÄÚÖøÃûÉè¼ÆÀàÔÓÖ¾¡¶ÊýÂëÉè¼Æ/CGW¡·²É·Ã£¬²¢Õë¶ÔDX 11ÔÚ´ÎÊÀ´ú»·¾³ÏÂÓÎÏ·½¨Ä£½øÐÐÌÖÂÛ¡£
ÄßÌìÔÆ
½éÉÜ£ºÄßÌìÜ¿²©Ê¿ÏÖÈÎNVIDIA×ÊÉîͼÐμ¼ÊõÑз¢×¨¼Ò£¬¸ºÔðÏò±±ÃÀµØÇøµÄÓÎÏ·¼°Ó¦ÓÃÈí¼þ¿ª·¢ÉÌÌṩͼÐμ¼Êõ·½ÃæµÄ×Éѯ¡¢ÅàѵºÍÖ§³Ö£¬°üÀ¨²ÎÓëÏúÁ¿ÓâǧÍòµÄ¶¥¼âÓÎÏ·×÷Æ·ÖÆ×÷¡£ÔÚ¼ÓÃËNVIDIA¹«Ë¾Ö®Ç°£¬ËýÔÚÃÀ¹úµÄ¸¥ÂÞÀï´ï´óѧ»ñµÃ²©Ê¿Ñ§Î»²¢ÔÚÓÐÓ°ÏìÁ¦µÄ¹ú¼Ê¿¯ÎïÉÏ·¢±íÁË¶àÆªÓйظßάÇúÃæÊµÊ±äÖȾÒÔ¼°Í¼ÐμÆËãµÈ·½ÏòµÄÂÛÎÄ¡£Ëý»¹¾³£ÔÚ¸÷ÖÖ¹ú¼Ê»áÒéÉÏ(SIGGRAPH¡¢GDCµÈ)×öÑݽ²ºÍ¼¼Êõ½²½â¡£ËýÒ²ÊÇSIGGRAPHÆÀÉóÍųÉÔ±£¬²ÎÓëSIGGRAPHµÄÉó¸å£¬Ö÷³Ö±¨¸æµÈ¹¤×÷¡£ËýĿǰµÄÐËȤÖ÷ÒªÔÚÓÚ¿ª·¢Ñо¿ÐµÄͼÐÎËã·¨£¬²¢°ïÖúÔËÓÃÕâЩеļ¼Êõµ½Êµ¼ÊµÄÓÎÏ·¿ª·¢ÉÏ¡£ËýµÄ½üÆÚ¹¤×÷°üÀ¨Ñо¿Direct3D 11µÄʵʱäÖȾ¼¼ÇÉÓë¼¼Êõ£¬ÓÈÆäÊÇÔÚÓ²¼þϸ·ÖÇúÃæ·½Ïò¡£
CGW£ºÄ£Ð͵Äϸ»¯Ò»·½ÃæÒ²Ôö¼ÓÁËÌùͼ»æÖƵŤ×÷Á¿£¬¶øÊý×ÖÓéÀÖ²úÒµµÄЧÂÊÒªÇóºÜ¸ß£¬ÓÎÏ·ÖÆ×÷Ò²ÊÇÈç´Ë£¬Äã¾õµÃ½¨Ä£ÈËÔ±Ó¦¸ÃÈçºÎºÍÌùͼ×éÒ»Æð°ÑÎÕ¾«¶ÈºÍЧÂÊ£¿
´ð£ºÌùͼ»æÖÆ×îºÃÊǽ¨Á¢ÔÚ¾«¶È¾¡¿ÉÄܵ͵ÄÄ£ÐÍÉÏ£¬ÕâÑù¿ÉÒÔ³ä·ÖʹÓÃDX11 Tessellation µÄÓÅÊÆ£¬ÔÚGPUÉϸù¾Ýʵ¼ÊÓÎÏ·³¡¾°ÐèÒª½øÐÐ×ÔÊÊӦϸ·Ö£¨Adaptive Tessellation£©¡£
¶ÔÓÚÒÔËıßÐÎΪÖ÷µÄ½¨Ä££¬½¨Ä£ÈËÔ±Ó¦¾¡Á¿¼õÉÙ´´½¨ÈçÏÂÄÚÈÝ£º
£¨1£© extraordinary quads £¨ËıßÐεÄËĸö¶¥µãÖУ¬ÖÁÉÙÓÐÒ»¸ö¶¥µãÓë´óÓÚ»òСÓÚ4Ìõ±ßÏàÁ¬µÄÇé¿ö£©£»
£¨2£©Èý½ÇÐεÄÊýÁ¿£»
£¨3£©Á¬½ÓÀàÐÍ £¨patch connection type£©¡£
Èç´Ë¿ÉÒÔ¼ò»¯ÔÚDX11 GPUÉÏʵʩÇúÃæÏ¸·ÖµÄ¸´ÔÓ¶È£¬´Ó¶øÌá¸ßÔËÐÐËÙ¶È¡£
¼ò»¯Íø¸ñ
´´½¨Ìùͼʱ£¬ Ó¦¾¡Á¿¼õÉÙ²ÄÖÊÁ¬½ÓÏߣ¨Texture Seams£©¡£Texture seam »áÔÚÌùͼʱ²úÉúαÏñ£¨artifacts£©¡£Ïû³ýαÏñÐèҪһЩ¶îÍâµÄ´¦Àí£¬Õâ»á½µµÍÔËÐÐËÙ¶È¡£
¼õÉÙ²ÄÖÊÁ¬½ÓÏߣ¨Texture Seams£©Í¼ÖкìÏß²¿·Ö
CGW£º¶à±ßÐεÄÊýÁ¿ÊÇʵÏÖÓÎÏ·»Ã澫¶ÈµÄ¹Ø¼ü£¬¶ø¾ÍÄãµÄÌåÑéÀ´Ëµ£¬Äã¾õµÃµ±½¨Ä£ÇåÎúµ½Ê²Ã´³Ì¶ÈµÄʱºò¾Í×ãÒÔÈÃÍæ¼Ò¸Ð¾õµ½ÕæÊµÁË£¿ÔÚÎÒ¿´À´£¬ÓÎÏ·µÄ»Ãæ±ÆÕæ³Ì¶È»¹»á·¢Õ¹£¬µ«Êǿ϶¨ÊÇÓм«Ï޵ġ£
´ð£ºÒ»°ãÀ´Ëµ£¬¶à±äÐεÄÊýÁ¿Ô½´ó£¬¾Í¿ÉÒÔÌåÏÖ³öÀ´Ô½¶àµÄϸ½Ú¡£µ±Ò»¸ö¶à±ßÐÎСµ½ÓÃÒ»¸öÏñËØäÖȾʱ£¬ÓÎÏ·Íæ¼Ò¿ÉÒÔÌåÑéµ½¼«ÏÞµÄÕæÊµ¸Ð¡£È»¶ø¶ÔÓÚÓ²¼þÀ´Ëµ£¬ÕâÑùСµÄ¶à±ßÐιâÕ¤»¯£¨rasterization£©Ð§Âʲ»¸ß¡£ÎªÁËÌá¸ßЧÂÊ£¬Ò»¸ö¶à±ßÐÎÐèÒª²úÉú8¸öÒÔÉϵÄÏñËØ¡£
CGW£º¸ß¾«¶ÈµÄÄ£ÐÍͬʱҲ»áµ¼ÖÂUVµÄÕ¹¿ª±äµÃ¸´ÔÓ»¯£¬Í¬Ê±Ò²³öÏÖÁ˸ü¶àµÄÌùͼ֮¼äµÄ¼ä϶¡¢ñÞÖåºÍ±ß½Ç¡£¿É·ñ̸̸ÄúÊÇÔõÑù´¦ÀíÕâЩÒòΪÌùͼ³öÏÖµÄÐÂÎÊÌâµÄ£¿
´ð£ºÊ¹ÓÃDX11 Tessellation£¬¿ÉÒÔÈõ;«¶ÈµÄÄ£ÐÍÔÚGPUÉϲúÉú¸ß¾«¶ÈÄ£ÐÍ¡£Ò»¸öµÍÄ£µÄPrimitive£¨Ï߶Ρ¢ Èý½ÇÐλòËıßÐΣ©»á±»²ð·Ö³É¶à¸ö¸üϸСµÄPrimitives¡£UVµÄÕ¹¿ªÓ¦ÊÇÔڵ;«¶ÈÄ£ÐÍÖ®ÉÏ£¬¶øTESSELLATORËù²úÉúµÄеÄPrimitiveµÄUV ÊÇÒ»°ãͨ¹ýÏßÐÔÄÚ²å(linear interpolation) ²úÉúµÄ¡£
DX11 Tessellation ͨ³£Óõ½Á½ÖÖÌùͼ£ºÖû»Ìùͼ (Displacement Map)ºÍ·¨ÏßÌùͼ(Normal Map)¡£ ¶à¸öÖû»Ìùͼ֮¼äµÄ¼ä϶¡¢ñÞÖåºÍ±ß½Ç»á²úÉúÍø¸ñÉϵĶ´£»¶à¸öNormal MapÖ®¼äµÄ¼ä϶¡¢ñÞÖåºÍ±ß½Ç»á²úÉúÏñËØÑÕÉ«µÄ²»Á¬ÐøÐÔ——ÕâЩÎÊÌâÖ÷ÒªÊÇÓÉÓÚGPU²ÉÓôóÁ¿¸¡µãÊýµÄ²¢ÐмÆË㣺ÓÉÓÚ¸¡µãÊý¾«¶ÈµÄÏÞÖÆ£¬¼Ó·¨µÄ½»»»ÂÉÔÚ¸¡µãÊý±í´ïÖлáʧЧ¡£¶øÏàÁÚµÄÁ½¸öPatchÔÚ¹²ÏíµÄ±ßÉϵĵ㣬±ØÐëÒª²úÉúÏàͬµÄ¶¥µãλÖᢷ¨ÏߺÍUV¡£Ò»¸ö¼òµ¥¶øÓÐЧµÄ½â¾ö·½·¨ÊÇ£º¶¨Òå¹²Ïí¶¥µãºÍ±ßµÄÊôÐÔ£¬È·±£ÔÚ¹²ÏíµÄµãºÍ±ßµÄ¼ÆËãʱ²ÉÓÃÍêÈ«ÏàͬµÄ¼ÆËã˳Ðò£¬´Ó¶øÊµÏÖ¾«È·µÄäÖȾЧ¹û¡£
CGW£ºÄ£Ð͵ľ«¶ÈÒ²»áµ¼Ö¼´Ê±äÖȾÄѶȵÄÔö¼Ó£¬ÄúÊÇÈçºÎ¿¼ÂÇÓÎÏ·µÄ»ÃæÖÊÁ¿ºÍÔËÐеÄЧÂÊµÄÆ½ºâµÄ£¿
´ð£ºÊ¹ÓÃADPATIVE TESSELLATION À´±ÜÃâ²»±ØÒªµÄϸ·Ö¡£¿ÉÒÔͨ¹ýÒÔϱê×¼À´¿ØÖÆÏ¸·Ö£º
1. ÎïÌåµÄÔ¶½ü³Ì¶È£º½üµÄÎïÌ徫¶È¸ßЩ£¬Ô¶µÄÎïÌ徫¶ÈµÍЩ
2.ÂÖÀª£ºÂÖÀª±ßÔµµÄ¾«¶È¸ßЩ£¬·ÇÂÖÀª¸½½üµÄ¾«¶ÈµÍЩ
3.Öû»Ìùͼ: ·ÖÎöÖû»ÌùͼÀïµÄÊý¾ÝµÄGradient¡£Gradient ´óµÄ¾«¶È¸ßЩ£¬·´Ö®£¬¾«¶ÈµÍЩ
4.ÆÁÄ»¿Õ¼ä£¨screen space£©:¿ØÖÆÈý½ÇÐÎÔÚÆÁÄ»¿Õ¼äµÄ´óС´óÖÂÏàµÈ£¬ÒÔÆÚ´ïµ½×îÓŵĹâÕ¤»¯
ÄßÌìÜ¿²©Ê¿»¹½«³öϯ½«ÓÚ7ÔÂ30ÈÕ£8ÔÂ1ÈÕÔÚÉϺ£¹ú¼Ê»áÒéÖÐÐľٰìµÄµÚÈý½ìÖйúÓÎÏ·¿ª·¢Õß´ó»á£¬²¢½«ÒÔDirect3D 11ϸ·ÖÇúÃæ¼¼ÊõʵÓý̳ÌÑݽ²¡£
2010ÄêÈ«ÇòÖõÄ¿µÄÊÀ²©»áÔÚÉϺ£¾Ù°ì£¬¹ú¼ÊÊ¢»á±Ø½«ÎüÒýÀ´×ÔÈ«ÇòµÄ¼Î±öݰÁÙ¡£ÖйúÓÎÏ·ÉÌÎñ´ó»á£¨CGBC£©¡¢ÖйúÓÎÏ·¿ª·¢´ó»á£¨CGDC£©ºÍÖйúÓÎÏ·Íâ°ü´ó»á(CGOC)½«ÓÚÊÀ²©¾Ù°ìÆÚ¼äµÄ7ÔÂ28ÈÕ£8ÔÂ1ÈÕÔÚÉϺ£¹ú¼Ê»áÒéÖÐÐľÙÐУ¬±Ø½«ÎüÒýÈ«ÇòÓÎÏ·²úÒµÈËÊ¿µÄ¹ã·º²ÎÓëʹÆäÔÚ¹µÍ¨ÖÐÍâÓÎÏ·²úÒµÉÌÎñºÍ¼¼Êõ»î¶¯Æ½Ì¨µÄÉÌÎñÖÐÐÄ×÷Óøü¼ÓÇ¿»¯ºÍÌáÉý¡£