{"id":373,"date":"2026-03-27T13:56:01","date_gmt":"2026-03-27T05:56:01","guid":{"rendered":"http:\/\/chenglixue.top\/?p=373"},"modified":"2026-04-19T23:20:29","modified_gmt":"2026-04-19T15:20:29","slug":"dx12-taau%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e5%85%a5%e5%9d%9f","status":"publish","type":"post","link":"http:\/\/chenglixue.top\/?p=373","title":{"rendered":"DX12 TAAU\u4ece\u5165\u95e8\u5230\u5165\u575f"},"content":{"rendered":"<p><div class=\"has-toc have-toc\"><\/div><\/p>\n<h1>\u524d\u8a00<\/h1>\n<p>TAA\u7684\u6838\u5fc3\u5728\u4e8e\u5982\u4f55\u6297\u952f\u9f7f\uff0c\u800cTAAU\u7684\u6838\u5fc3\u662f\u6027\u80fd\u63d0\u5347<\/p>\n<h1>TAA<\/h1>\n<p>TAA\u8fd9\u91cc\u53ea\u4f1a\u63d0\u53ca\u5b9e\u73b0\u65f6\u7684\u51e0\u4e2a\u91cd\u70b9\uff0c\u91cd\u70b9\u5728\u540e\u7eedTAAU\u90e8\u5206<\/p>\n<h2>Jitter Velocity<\/h2>\n<ul>\n<li>\u4e3a\u4e86\u80fd\u548c\u524d\u4e00\u5e27\u6df7\u5408\uff0c\u9700\u8981\u5bf9\u6bcf\u4e00\u5e27\u7684uv\u8fdb\u884c\u504f\u79fb\uff0c\u504f\u79fb\u8303\u56f4\u662f\u5f53\u524dpixel\u5757\u8303\u56f4\u5185\u2014\u2014\u53731\n<p>\u5f97\u5230jitter\u540e\u7684uv offset\uff08\u8303\u56f4[-0.5, 0.5]\uff09\uff0c\u518d\u628aoffset\u4eceuv\u7a7a\u95f4\u8f6c\u5230NDC\u7a7a\u95f4\uff08\u8303\u56f4[-1,1]\uff09\uff0c\u8f6c\u6362\u516c\u5f0f\u5982\u4e0b\uff1a<\/p>\n<p><span class=\"katex math inline\">offset_{NDC} = \\frac{offset_{uv} * 2}{ScreenSize}<\/span><\/p>\n<p>\u53c8\u56e0\u4e3aProjMatrix\u7684\u7b2c\u4e00\u884c\u7b2c\u4e09\u5217\u3001\u7b2c\u4e8c\u884c\u7b2c\u4e09\u5217\uff0c\u5206\u522b\u63a7\u5236x\u7684\u504f\u79fb\u3001y\u7684\u504f\u79fb\uff0c\u56e0\u6b64\u5c06<span class=\"katex math inline\">offset_{NDC}<\/span>\u8d4b\u503c\u7ed9ProjMatrix\u7684\u7b2c\u4e00\u884c\u7b2c\u4e09\u5217\u3001\u7b2c\u4e8c\u884c\u7b2c\u4e09\u5217\u5373\u53ef<\/p>\n<\/li>\n<li>\n<p>\u5f53\u524d\u5e27\u4e0e\u4e0a\u4e00\u5e27\u7684Proj Matrix\u90fd\u9700\u8981jitter\u5417\uff1f<\/p>\n<p>\u7b54\u6848\u662f\u5426\u5b9a\u7684\uff0c\u56e0\u4e3aTAA\u7684\u601d\u60f3\u662f\u6df7\u5408\u6bcf\u5e27\u4e0d\u540c\u7684\u504f\u79fb\u540e\u7684\u6e32\u67d3\u56fe\uff0c\u8fbe\u5230\u65f6\u95f4\u6362\u7a7a\u95f4\u7684\u76ee\u7684\u3002\u56e0\u6b64\uff0c\u6bcf\u5e27Proj Matrix \u90fd\u9700\u8981jitter\u4ee5\u5f97\u5230offset\u540e\u7684gbuffer\uff0c\u4f46\u8ba1\u7b97velocity\u65f6\u9700\u8981\u7528\u5230\u975ejitter\u7684Pre Proj Matrix\u3001\u975ejitter\u7684Curr Proj Matrix<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u8ba1\u7b97\u52a8\u6001\u7269\u4f53\u7684velocity<\/p>\n<p>\u8bb0\u5f55\u52a8\u6001\u7269\u4f53\u975ejitter\u7684curr world matrix\u3001pre world matrix<\/p>\n<\/li>\n<\/ul>\n<h2>TAA<\/h2>\n<ul>\n<li>\n<p>\u6d88\u9664\u52a8\u6001\u7269\u4f53\u8fb9\u7f18\u7684\u4e25\u91cd\u6495\u88c2\u548c\u6b8b\u5f71<\/p>\n<ul>\n<li>\u4e3a\u4ec0\u4e48<\/li>\n<\/ul>\n<p>\u5047\u8bbe\uff0c\u4e00\u4e2a\u4eba\u7269\u5728\u8fd0\u52a8\uff0c\u4ed6\u7684\u80cc\u540e\u662f\u5899\u58c1\u4e14\u9759\u6b62\u3002\u5728\u4eba\u7269\u8eab\u4f53\u8fb9\u7f18\u90e8\u5206\uff0c\u56e0\u4e3ajitter\u7684\u539f\u56e0\uff0c\u67d0\u4e9bpixel\u4e0a\u4e00\u5e27\u53ef\u80fd\u91c7\u6837\u5230\u4e86\u9759\u6b62\u7684\u5899\u58c1\uff0c\u8fd9\u4e00\u5e27\u91c7\u6837\u5230\u4e86\u4eba\u7269\uff0c\u8fd9\u4f1a<strong>\u5bfc\u81f4\u524d\u666f\u4e0e\u80cc\u666f\u6df7\u5408<\/strong>\uff0c\u5bfc\u81f4\u80cc\u666f\u7684\u989c\u8272\u6e17\u5165\u524d\u666f\u7684\u8fb9\u7f18\uff0c\u6700\u7ec8\u5bfc\u81f4\u8fb9\u7f18\u7684\u6b8b\u5f71<\/p>\n<ul>\n<li>\u5982\u4f55\u89e3\u51b3<\/li>\n<\/ul>\n<p>\u4e3a\u4e86\u9632\u6b62\u80cc\u666f\u6df7\u5408\u5230\u524d\u666f\uff0c\u53ef\u4ee5<strong>\u8ba1\u7b97\u4e34\u8fd1\u7684\u6700\u8fd1depth\u7684uv<\/strong>\uff0c\u7528\u8fd9\u4e2auv\u4f5c\u4e3a\u5f53\u524dPass\u7684uv<\/p>\n<\/li>\n<li>\n<p>\u8fd0\u52a8\u6216\u8005\u5149\u5f71\u5267\u70c8\u53d8\u5316\u65f6\uff0c\u989c\u8272\u95ea\u70c1<\/p>\n<ul>\n<li>\u4e3a\u4ec0\u4e48<\/li>\n<\/ul>\n<p>\u5982\u679c\u662f<strong>RGB\u7a7a\u95f4<\/strong>\u4f5cclamp\uff0c\u5047\u8bbe\u4e0a\u4e00\u5e27pixel\u662f\u6781\u5176\u9c9c\u8273\u7684\u7ea2\u8272\uff0c\u56e0\u4e3a\u5149\u7167\u53d8\u5316\u7684\u539f\u56e0\u8fd9\u4e00\u5e27pixel\u989c\u8272\u53d8\u4e3a\u975e\u5e38\u6697\u6de1\u7684\u84dd\u8272\uff0c\u5982\u679c\u8fdb\u884cclamp\uff0c\u4f1a\u5bfc\u81f4\u7ea2\u8272\u7684\u5206\u91cf\u90fd\u88ab\u9650\u5236\u5728\u84dd\u8272\u8303\u56f4\u5185\uff0c\u5bfc\u81f4\u989c\u8272\u95ea\u70c1<\/p>\n<ul>\n<li>\u5982\u4f55\u89e3\u51b3<\/li>\n<\/ul>\n<p>\u56e0\u4e3aRGB space\u4e0e\u4eae\u5ea6\u6709\u5173\uff0c\u800c\u6211\u4eec\u53ea\u60f3clamp\u5f71\u54cd\u8272\u5ea6\uff08<strong>\u4eba\u773c\u5bf9\u8272\u5ea6\u8fdf\u949d\uff0c\u5bf9\u4eae\u5ea6\u654f\u611f<\/strong>\uff09\uff0c\u800c\u975e\u4eae\u5ea6\uff0c\u6240\u4ee5\u53ef\u4ee5\u5c06color space\u53d8\u6362\u5230YCoCg  space<br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/a1.boltp.com\/2024\/11\/20\/673da45ab4420.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/a1.boltp.com\/2024\/11\/20\/673da45ab4420.png\" alt=\"\" \/><\/p><\/noscript>\n<\/li>\n<li>\n<p>Fireflies<\/p>\n<ul>\n<li>\u4e3a\u4ec0\u4e48<\/li>\n<\/ul>\n<p>\u5047\u8bbe\u5f53\u524dhistory buffer pixel\u989c\u8272\u4e3a(1, 1, 1)\uff0c\u5f53\u524d\u5e27\u56e0\u4e3ajitter pixel\u91c7\u6837\u5230\u65c1\u8fb9\u975e\u5e38\u4eae\u7684pixel(1000, 1000, 1000)\uff0c\u6839\u636e\u6df7\u5408\u516c\u5f0f\u5f53\u524d\u5e27pixel\u7ed3\u679c\u4e3a<span class=\"katex math inline\">(1,1,1) * 0.95 + (1000, 1000, 1000) * 0.05 = 50.95<\/span>\uff0c\u5bfc\u81f4Fireflies\u7684\u51fa\u73b0<\/p>\n<ul>\n<li>\u5982\u4f55\u89e3\u51b3<\/li>\n<\/ul>\n<p>\u6267\u884ctone map\u5c06\u4eae\u5ea6\u538b\u56de[0,1]\uff0c\u4e3a\u4e86\u6027\u80fd\u6267\u884c\u7b80\u5355\u7684reinhard\u2014\u2014<span class=\"katex math inline\">\\frac{Color}{1.f - Luminance(Color)}<\/span>\u3002\u968f\u540e\u6df7\u5408\uff0c\u6df7\u5408\u5b8c\u540e\u518d\u6267\u884cinverse tone map\u2014\u2014<span class=\"katex math inline\">\\frac{Color_{Mapped}}{1 - Luminance(Color_{Mapped})}<\/span><\/p>\n<\/li>\n<li>\n<p>\u9b3c\u5f71<\/p>\n<ul>\n<li>\u4e3a\u4ec0\u4e48<\/li>\n<\/ul>\n<p>\u7531\u4e8eTAA\u6df7\u5408\u65f6\uff0c\u5386\u53f2\u5e27\u662f\u5360\u7edd\u5927\u90e8\u5206\u7684\uff0c\u90a3\u4e48\u5c31\u4e0d\u80fd\u65e0\u6761\u4ef6\u7684\u4fe1\u606f\u5386\u53f2\u5e27\uff0c\u52a8\u6001\u7269\u4f53\u5c24\u5176\u660e\u663e\uff0c\u51fa\u73b0\u660e\u663e\u7684\u6b8b\u5f71<\/p>\n<ul>\n<li>\u5982\u4f55\u89e3\u51b3<\/li>\n<\/ul>\n<p>\u4e00\u4e2a\u6027\u80fd\u9ad8\u6548\u7684\u65b9\u6cd5\u662f\uff0c\u7edf\u8ba13x3\u6216\u5341\u5b57\u5185\u7684pixel color\uff0c\u5c06\u5386\u53f2\u5e27\u7684color\u9650\u5236\u5728\u7edf\u8ba1\u7684color\u5185\u3002\u867d\u7136\u8fd9\u4e0d\u662f\u7269\u7406\u6b63\u786e\u7684\uff0c\u4f46\u6839\u636e\u56fe\u5f62\u5b66\u7b2c\u4e00\u5b9a\u5f8b\uff0c\u53ea\u8981\u770b\u8d77\u6765\u662f\u5bf9\u7684\uff0c\u90a3\u5b83\u5c31\u662f\u5bf9\u7684<\/p>\n<p>\u9650\u5236\u7684\u65b9\u6cd5\u6709\u4e09\u79cd\uff0c\u4ece\u6700\u65e9\u7684\u7b80\u5355\u7684clamp\uff0c\u5230\u540e\u6765\u7684ClipBox\u3001\u52a0\u5165\u7edf\u8ba1\u5b66\u7684ClipBox<\/p>\n<ul>\n<li>clamp\n<p>\u5982\u4e0b\u56fe\uff0c\u7edf\u8ba1\u4e5d\u4e2apixel\uff0c\u8ba1\u7b97mincolor\u3001maxcolor\uff0c\u5c06\u5386\u53f2\u5e27color clamp\u5728mincolor\u4e0emaxcolor\u4e4b\u95f4<br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic.imgdb.cn\/item\/66826d6ad9c307b7e9a51574.webp\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic.imgdb.cn\/item\/66826d6ad9c307b7e9a51574.webp\" alt=\"\" \/><br \/><\/noscript>\n\u8fd9\u79cd\u65b9\u6cd5\u6bd4\u8f83\u7701\uff0c\u4f46\u6548\u679c\u4e0d\u7b97\u597d\uff0c\u56e0\u4e3a\u65e0\u8111clamp\u4f1a\u4ea7\u751f<strong>\u8272\u504f<\/strong><\/p>\n<\/li>\n<li>\n<p>ClipBox<br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic.imgdb.cn\/item\/66756ad1d9c307b7e945efc2.webp\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic.imgdb.cn\/item\/66756ad1d9c307b7e945efc2.webp\" alt=\"\" \/><br \/><\/noscript>\n\u6839\u636emin Color\u3001max Color\uff0c\u5efa\u7acb\u4e00\u4e2aAABB\uff0cmid Color\u4e3aAABB\u4e2d\u5fc3\uff0ctoEdgeVec\u4e3a\u4e2d\u5fc3\u70b9\u5230max color\u7684\u5411\u91cf\uff0ccurr Color\u4e3a\u4e0a\u56feAABB\u5916\u7684\u6df1\u84dd\u8272\u70b9\uff0c\u8ba1\u7b97curr Color\u5230mid Color\u7684\u5411\u91cfmid Color\uff0c\u518d\u8ba1\u7b97curr Color\u662f\u5426\u5728AABB\u5916\u90e8<span class=\"katex math inline\">unitVec = abs(toSrcVec \/ max(toEdgeVec, FLT_EPS))<\/span>\uff0c\u5982\u679cunitVec\u5176\u4e2d\u4efb\u4e00\u5206\u91cf\u5c0f\u4e8e\u7b49\u4e8e1\uff0c\u8bf4\u660ecurr Color\u5728AABB\u5185\u90e8\uff0c\u5927\u4e8e1\u5728\u5916\u90e8<\/p>\n<p>\u627e\u51facolor\u4e09\u4e2a\u5206\u91cf\u4e2d\uff0c\u79bbAABB\u6700\u8fdc\u7684\u8bb0\u4e3aunit\uff0c\u8ba1\u7b97toSrcVec\u5728AABB\u8fb9\u7f18\u7684\u4ea4\u70b9clipped color\uff0c\u82e5curr Color\u5728AABB\u5185\uff0c\u5219\u8fd4\u56demid Color\uff0c\u82e5curr Color\u5728ABABB\u5916\uff0c\u8fd4\u56declipped color<\/p>\n<pre><code class=\"line-numbers\">float3 midColor = (minColor + maxColor) * 0.5;\nfloat3 toEdgeVec = (maxColor - minColor) * 0.5;\n\nfloat3 toSrcVec = currColor - midColor;\nfloat3 unitVec = abs(toSrcVec \/ max(toEdgeVec, FLT_EPS));\nfloat unit = max(unitVec.x, max(unitVec.y, max(unitVec.z, FLT_EPS)));\nfloat3 res = lerp(currColor, midColor + toSrcVec * rcp(unit), step(1.0, unit));\n<\/code><\/pre>\n<\/li>\n<li>VarianceClip\n<p>VarianceClip\u5728ClipBox\u7684\u57fa\u7840\u4e0a\u52a0\u5165\u4e86\u7edf\u8ba1\u5b66\uff0c\u5b83\u7edf\u8ba1\u6839\u636e3x3\u8303\u56f4\u5185\u7684pixel color\uff0c\u57fa\u4e8e9\u4e2acolor\u8ba1\u7b97\u5747\u503c\u3001\u6807\u51c6\u5dee\uff0c\u82e5\u6807\u51c6\u5dee\u8d8a\u5c0f\uff0c\u8bf4\u660e\u8303\u56f4\u5185\u7684pixel color\u4e92\u76f8\u989c\u8272\u5dee\u8ddd\u8d8a\u5c0f\uff0cAABB\u81ea\u9002\u5e94\u53d8\u5c0f\uff1b\u82e5\u6807\u51c6\u5dee\u8d8a\u5927\uff0c\u8bf4\u660e\u8303\u56f4\u5185\u7684pixel color\u4e92\u76f8\u989c\u8272\u5dee\u8ddd\u8d8a\u5927\uff0cAABB\u81ea\u9002\u5e94\u53d8\u5927<\/p>\n<ul>\n<li>\u6807\u51c6\u5dee\u516c\u5f0f<\/li>\n<\/ul>\n<p>\u4e00\u822c\u7684\u6807\u51c6\u5dee\u516c\u5f0f\uff1a<span class=\"katex math inline\">\\sqrt{\\frac{1}{N} \\sum(x_i - u)^2}<\/span>\uff0c<span class=\"katex math inline\">x_i<\/span>\u4ee3\u8868pixel color\uff0c<span class=\"katex math inline\">u<\/span>\u4ee3\u8868\u5e73\u5747\u503c<\/p>\n<p>\u8fd9\u79cd\u6807\u51c6\u5dee\u516c\u5f0f\u53ef\u4ee5\u7528\u4f46\u6027\u80fd\u4e0d\u592a\u597d\u4f1a<strong>\u6d88\u8017\u5bc4\u5b58\u5668<\/strong>\uff0c\u9700\u8981\u8bb0\u5f559\u4e2apixel color<\/p>\n<p>\u8fd9\u91cc\u4f7f\u7528\u53e6\u4e00\u4e2a\u6807\u51c6\u5dee\u516c\u5f0f\uff0c<span class=\"katex math inline\">\\sqrt{E[x^2] - (E[x])^2}<\/span>\u5373\u5e73\u65b9\u7684\u671f\u671b\u51cf\u671f\u671b\u7684\u5e73\u65b9\uff0c<span class=\"katex math inline\">E[x]<\/span>\u4ee3\u8868\u5e73\u5747\u503c<\/p>\n<pre><code class=\"line-numbers\">float3 VarianceClipBox(float3 m1, float3 m2, float gamma, float3 preColor)\n{\n  float3 mu = m1 \/ 9;\n  float3 sigma = sqrt(abs(m2 \/ 9 - mu * mu));\n  float3 colorMin = mu - gamma * sigma;\n  float3 colorMax = mu + gamma * sigma;\n\n  float3 p_clip = 0.5 * (colorMax + colorMin);\n  float3 e_clip = 0.5 * (colorMax - colorMin) + FLT_EPS;\n\n  float3 v_clip = preColor - p_clip;\n  float3 v_unit = v_clip.xyz \/ e_clip;\n  float3 a_unit = abs(v_unit);\n  float ma_unit = max(a_unit.x, max(a_unit.y, a_unit.z));\n\n  float factor = rcp(max(1.0, ma_unit));\n  return p_clip + v_clip * factor;\n}\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\u52a8\u9759\u7ed3\u5408\n<ul>\n<li>\u4e3a\u4ec0\u4e48<\/li>\n<\/ul>\n<p>\u4e00\u4e2a\u56fa\u5b9a\u7684weight\u662f\u6ca1\u6cd5\u540c\u65f6\u6ee1\u8db3\u52a8\u6001\u7269\u4f53\u3001\u9759\u6001\u7269\u4f53\u7684\uff0c\u5c06\u5386\u53f2\u5e27\u6743\u91cd\u8bbe\u52300.95\u5bf9\u4e8e\u9759\u6001\u7269\u4f53\u6548\u679c\u5f88\u597d\uff0c\u4f46\u52a8\u6001\u7269\u4f53\u4f1a\u6709\u660e\u663e\u7684\u6b8b\u5f71<br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/a1.boltp.com\/2024\/11\/20\/673da6478ec8f.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/a1.boltp.com\/2024\/11\/20\/673da6478ec8f.png\" alt=\"\" \/><\/p><\/noscript>\n<ul>\n<li>\u5982\u4f55\u89e3\u51b3<\/li>\n<\/ul>\n<p>\u9e23\u6f6e\u63d0\u5230\u7684\u65b9\u6848\u662f\u5229\u7528motion vector\u7684\u5927\u5c0f\u5bf9\u5386\u53f2\u5e27\u7684\u6743\u91cd\u63a7\u5236\uff0c\u5f53\u901f\u5ea6\u8d8a\u5feb(motion vector\u8d8a\u5927)\uff0c\u5f53\u524d\u5e27\u7684\u6bd4\u4f8b\u8d8a\u9ad8\uff1b\u5f53\u901f\u5ea6\u8d8a\u6162\uff0c\u5386\u53f2\u5e27\u7684\u6bd4\u4f8b\u8d8a\u9ad8<br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/a1.boltp.com\/2024\/11\/21\/673e0ae1bad30.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/a1.boltp.com\/2024\/11\/21\/673e0ae1bad30.png\" alt=\"\" \/><\/p><\/noscript>\n<\/li>\n<li>\n<p>TAA\u5e26\u6765\u7684\u6a21\u7cca<\/p>\n<ul>\n<li>\u4e3a\u4ec0\u4e48TAA\u4f1a\u53d8\u6a21\u7cca<\/li>\n<\/ul>\n<p>\u56e0\u4e3a\u91c7\u6837\u5386\u53f2\u5e27\uff0cuv\u4e0d\u53ef\u80fd\u6070\u597d\u843d\u5728pixel\u4e2d\u592e\uff0cGPU\u4f1a\u81ea\u52a8\u6267\u884c\u53cc\u7ebf\u6027\u6ee4\u6ce2\uff0c\u968f\u7740\u5e27\u6570\u9012\u589e\uff0c\u5386\u53f2\u5e27\u4e0d\u65ad\u6df7\u5408\uff0c\u4ece\u800c\u5bfc\u81f4\u6a21\u7cca<\/p>\n<ul>\n<li>\u5982\u4f55\u89e3\u51b3<\/li>\n<\/ul>\n<p>\u9510\u5316\u5373\u53ef\uff0c\u53ef\u4ee5\u91c7\u7528\u4e24\u79cd\u65b9\u6848\uff0c\u4e00\u79cd\u6d88\u8017\u8d28\u91cf\u597d\u4f46\u6d88\u8017\u7565\u9ad8\u2014\u2014<strong>Catmull-Rom<\/strong>\uff08\u53cc\u4e09\u6b21\u63d2\u503c\uff09\uff0c\u53e6\u4e00\u79cd\u8d28\u91cf\u7565\u4f4e\u4f46\u6d88\u8017\u4f4e<strong>FidelityFX CAS<\/strong><\/p>\n<p><strong>FidelityFX CAS\u9700\u8981\u7f6e\u4e8eLDR\u7a7a\u95f4\u2014\u2014tonemap pass\u540e<\/strong><\/p>\n<\/li>\n<\/ul>\n<h2>\u6027\u80fd<\/h2>\n<p><img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c227d72cb231a0e8750326.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c227d72cb231a0e8750326.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c228752cb231a0e8751f4e.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c228752cb231a0e8751f4e.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c2288d2cb231a0e8751f50.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c2288d2cb231a0e8751f50.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c229012cb231a0e8751f57.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c229012cb231a0e8751f57.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c229df2cb231a0e8751f59.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c229df2cb231a0e8751f59.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c22a412cb231a0e8751f5c.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c22a412cb231a0e8751f5c.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c22a7d2cb231a0e8751f5e.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c22a7d2cb231a0e8751f5e.png\" alt=\"\" \/><\/p><\/noscript>\n<p>2,688 * 1,296\u5206\u8fa8\u7387\u4e0b\uff0c\u8017\u65f60.22ms\uff0cALU\u3001\u663e\u5b58\u90fd\u6ca1\u6709\u74f6\u9888\uff0cL2\u547d\u4e2d\u7387\u5f88\u9ad8\uff0c\u6d3b\u8dc3\u7684warp\u8f83\u591a\uff0c\u6781\u5c11\u56e0\u4e3a\u5206\u652f\u7b49\u5f85\uff0cSM \u6267\u884c\u6307\u4ee4\u7684\u541e\u5410\u91cf\u9002\u4e2d\u5ef6\u8fdf\u5f88\u4f4e\u662f\u6bd4\u8f83\u5065\u5eb7\u7684<\/p>\n<h1>TAAU<\/h1>\n<h2>\u4e3a\u4ec0\u4e48\u9700\u8981TAAU<\/h2>\n<p>\u5f00\u80c3\u5c0f\u83dc\u4e0a\u9f50\uff0c\u91cd\u5934\u620f\u5f00\u59cb\uff01<\/p>\n<p>\u968f\u7740GPU\u7684\u53d1\u5c55\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u7528\u6237\u5f00\u59cb\u8ffd\u6c42\u9ad8\u5206\u8fa8\u7387\u3001\u597d\u7684\u6e32\u67d3\u6548\u679c\uff0c\u4f46\u4f17\u6240\u5468\u77e5\uff0c\u597d\u7684\u6e32\u67d3\u6548\u679c\u5305\u542b\u5f88\u591a\u9879\uff0c\u8fd9\u4e9b\u57fa\u672c\u90fd\u4e0e\u5c4f\u5e55\u5206\u8fa8\u7387\u76f8\u5173\uff0c\u6548\u679c\u8d8a\u597d\uff0c\u5f00\u9500\u8d8a\u5927\uff0c\u4f46GPU\u7684\u53d1\u5c55\u4e0d\u592a\u66f4\u5f97\u4e0a\u7528\u6237\u7684\u9700\u6c42\uff0c\u5982\u679c\u7528\u4f4e\u5206\u8fa8\u7387\u7684\u6548\u679c\u80fd\u505a\u5230\u9ad8\u5206\u8fa8\u7387\u7684\u6548\u679c\uff0c\u5c31\u80fd\u6ee1\u8db3\u7684\u9700\u6c42\u3002TAAU\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u63d0\u51fa\u4e00\u79cd\u601d\u60f3\u2014\u2014\u964d\u5206\u8fa8\u7387\u6e32\u67d3\u5149\u7167\u3001\u9634\u5f71\uff0c\u5728TAA\u9636\u6bb5\u5bf9\u4f4e\u5206\u8fa8\u7387\u6267\u884c\u4e0a\u91c7\u6837\uff0c\u8fd9\u6837\u81f3\u5c11\u53ef\u4ee5\u8282\u770175%\u7684\u5f00\u9500\uff0c\u975e\u5e38\u4e0d\u9519<\/p>\n<h2>\u4ec0\u4e48\u662fTAAU<\/h2>\n<p>TAAU\u7684jitter\u601d\u60f3\u4e0eTAA\u4e0d\u540c\uff0cTAAU\u7684\u6bcf\u4e2apixel\u901a\u8fc7\u8ba1\u7b97\u4f4e\u5206\u8fa8\u7387\u4e0b\u5b83\u539f\u672c\u7684\u4f4d\u7f6e\uff08\u8fd9\u4e2a\u8fc7\u7a0b\u518d\u53bbjitter\uff09\uff0c\u518d\u5728\u964d\u5206\u8fa8\u7387\u7684\u5149\u7167\u9634\u5f71\u6e32\u67d3\u56fe\u7684\u5bf9\u5e94\u4f4d\u7f6e\u53bb\u91c7\u6837\uff0c\u6700\u540e\u5b89\u653e\u540e\u539f\u751f\u5206\u8fa8\u7387\u7684TAAU RT<\/p>\n<h2>\u964d\u91c7\u6837<\/h2>\n<p>\u5bf9\u4e8eTAA\u524d\u975epostprocess\u7684rt\uff0c\u5982gbuffer\u3001lighting rt\uff0c\u90fd\u9700\u8981\u964d\u91c7\u6837\uff0c\u8fd9\u91cc\u5c31\u964d\u91c7\u68371\/2\uff0c\u968f\u540eTAAU\u540e\u4f1a\u5347\u91c7\u6837\u5230\u539f\u751f\u5206\u8fa8\u7387<\/p>\n<h2>Mipmap bias<\/h2>\n<ul>\n<li>\u95ee\u9898\n<p>\u7531\u4e8egbuffer\u964d\u91c7\u6837\uff0c\u5728gbuffer\u4e2d\u91c7\u6837\u8d34\u56fe\u65f6\uff0csample level\u4f1a\u9009\u62e9\u66f4\u9ad8\u7684mipmap level\uff08\u66f4\u6a21\u7cca\uff09\uff0c\u5bfc\u81f4\u8d34\u56fe\u53d8\u6a21\u7cca\uff0c\u6700\u7ec8\u5149\u7167\u6e32\u67d3\u4e5f\u4f1a\u53d8\u6a21\u7cca<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u89e3\u51b3<\/p>\n<p>\u6839\u636edown sample size \/ display size\u7684\u6bd4\u503c\uff0c\u4e3asample level\u8ba1\u7b97bias\u3002\u516c\u5f0f\uff1a<span class=\"katex math inline\">log_2(\\frac{Down Sample Width }{Display Width})<\/span><\/p>\n<\/li>\n<\/ul>\n<h2>Jitter<\/h2>\n<ul>\n<li>\n<p>\u95ee\u9898<\/p>\n<p>\u7531\u4e8egbuffer\u964d\u91c7\u6837\uff0cjitter\u4ee5\u964d\u91c7\u6837\u7684duv\u4f5c\u4e3a\u5355\u4f4d\uff0c\u4f1a\u5bfc\u81f4\u753b\u9762\u6296\u52a8\u5f02\u5e38\u660e\u663e<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u89e3\u51b3<\/p>\n<p>\u4ee5\u539f\u751f\u7684duv\u4f5c\u4e3a\u5355\u4f4d<\/p>\n<\/li>\n<\/ul>\n<h2>\u6838\u5fc3\u7b97\u6cd5<\/h2>\n<ul>\n<li>\n<p>\u95ee\u9898<\/p>\n<p>\u7531\u4e8e\u964d\u91c7\u6837\u540e\uff0cTAAU 3x3 sample\u4e0d\u80fd\u50cf\u975e\u964d\u91c7\u6837\u90a3\u6837\uff0c11\u5bf9\u5e94\u91c7\u6837<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u89e3\u51b3<\/p>\n<p>\u4e3a\u4e86\u5f25\u8865\u8fd9\u4e2a\u7f3a\u9677\uff0cTAA\u5bf9\u8fd9\u90e8\u5206\u91c7\u7528\u4e86\u52a0\u6743\u5e73\u5747+\u65f6\u7a7a\u6ee4\u6ce2\u7ec4\u5408\u62f3\uff0c\u7c7b\u4f3cDDGI<\/p>\n<p>\u901a\u8fc7\u8fd8\u539f\u6bcf\u6b21\u4f4e\u5206\u8fa8\u7387\u4e0b\u7684jiiter uv\uff0c\u57fa\u4e8e\u6b64uv\u91c7\u6837\u8ba1\u7b97\u5f53\u524dpixel\u7684\u4e2d\u5fc3\u70b9\uff0c\u968f\u540e\u57fa\u4e8e\u6b64\u4e2d\u5fc3\u70b9\u8ba1\u7b97\u4e34\u8fd1\u76843x3pixel\uff0c\u4ee5\u91c7\u6837\u4f4d\u7f6e\u5230jiiter uv\u7684\u5dee\u503c\u4f5c\u4e3a\u6743\u91cd\uff0c\u7edf\u8ba19\u4e2a\u6743\u91cd\uff0c\u6267\u884c\u52a0\u6743\u5e73\u5747<\/p>\n<\/li>\n<\/ul>\n<h3>\u7b97\u6cd5\u6d41\u7a0b<\/h3>\n<ul>\n<li>\u901a\u8fc7\u8fd8\u539f\u6bcf\u6b21\u4f4e\u5206\u8fa8\u7387\u4e0b\u7684jiiter uv<\/li>\n<li>\u57fa\u4e8e\u6b64uv\u91c7\u6837\u4e34\u8fd1\u76843x3pixel<\/li>\n<li>\u4ee5\u91c7\u6837\u4f4d\u7f6e\u5230jiiter uv\u7684\u5dee\u503c\u4f5c\u4e3a\u6743\u91cd\uff0c\u7edf\u8ba19\u4e2a\u6743\u91cd\uff0c\u6267\u884c\u52a0\u6743\u5e73\u5747<\/li>\n<\/ul>\n<h3>\u6743\u91cd\u8ba1\u7b97<\/h3>\n<ul>\n<li>\n<p>\u95ee\u9898<\/p>\n<p>\u7531\u4e8e\u6bcf\u5e27uv\u90fd\u9700\u8981\u8fd8\u539fjitter\u540e\u7684\uff0c\u90a3\u4e48\u6bcf\u5e27uv\u4f4d\u7f6e\u90fd\u4e0d\u76f8\u540c\uff0c\u6bcf\u5e27\u8ba1\u7b973x3pixel\u79bbjitter uv\u7684\u8ddd\u79bb\u4e5f\u4e0d\u4e00\u6837\uff0c\u56e0\u6b64\u9700\u8981\u6839\u636e\u8ddd\u79bb\u6765\u8ba1\u7b97\u5f53\u524dpixel\u7684\u6743\u91cd<\/p>\n<\/li>\n<li>\n<p>\u600e\u4e48\u89e3\u51b3<\/p>\n<p>\u9700\u8981\u4e00\u4e2a\u516c\u5f0f\u6765\u81ea\u52a8\u6839\u636e\u8ddd\u79bb\u6765\u8ba1\u7b97\u6743\u91cd\uff0cUE\u63d0\u51fa\u4e86\u4e00\u4e2a<strong>\u4e94\u6b21\u591a\u9879\u5f0f\u62df\u5408\u66f2\u7ebf<\/strong><\/p>\n<pre><code class=\"line-numbers\">\/\/UpscaleFactor\uff1a\u539f\u751f\u5206\u8fa8\u7387 \/ \u964d\u5206\u8fa8\u7387\n\/\/PixelDelta\uff1a\u91c7\u6837\u70b9\u5230\u4e2d\u5fc3\u70b9\u7684\u8ddd\u79bb\nfloat ComputeSampleWeigth(float UpscaleFactor, float2 PixelDelta)\n{\n  float u2 = UpscaleFactor * UpscaleFactor;\n\n  \/\/ 1 - 1.9 * x^2 + 0.9 * x^4\n  float x2 = saturate(u2 * dot(PixelDelta, PixelDelta));\n  return (0.905 * x2 - 1.9) * x2 + 1;\n}\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u516c\u5f0f\u5c06\u8ddd\u79bb\u9650\u5236\u5728[0,1]\uff0c\u8d85\u8fc71\u7684\u6e05\u96f6\uff0c\u5148\u8fd8\u539f\u9ad8\u5206\u8fa8\u7387\u4e0b\u91c7\u6837\u70b9\u5230\u4e2d\u5fc3\u70b9\u7684\u8ddd\u79bb\uff0c\u518d\u8ba1\u7b97\u6743\u91cd<\/p>\n<p>\u6211\u4eec\u53ef\u89c6\u5316\u8fd9\u4e2a\u5f0f\u5b50\uff0c\u4e0d\u96be\u53d1\u73b0\u8ddd\u79bb\u4e3a0\u6743\u91cd\u8d8a\u9ad8\uff0c\u8ddd\u79bb\u8d8a\u5927\uff0c\u6743\u91cd\u8d8a\u4f4e\uff1a<br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c5651353701b6d63da0619.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c5651353701b6d63da0619.png\" alt=\"\" \/><\/p><\/noscript>\n<\/li>\n<\/ul>\n<h3>\u5386\u53f2\u5e27\u6df7\u5408<\/h3>\n<p>\u4e0e\u4e0a\u8ff0\u95ee\u9898\u4e00\u6837\uff0c\u6bcf\u5e27jitter uv\u90fd\u4e0d\u540c\u4e14\u901f\u5ea6\u53ef\u80fd\u5feb\u3001\u53ef\u80fd\u6162\uff0c\u79bb\u4e2d\u5fc3\u91c7\u6837\u70b9\u53ef\u80fd\u8fdc\u53ef\u80fd\u8fd1\uff0c\u5728\u6df7\u5408\u65f6\u4e5f\u9700\u8981\u6839\u636e\u8ddd\u79bb\u6765\u8ba1\u7b97\u5386\u53f2\u5e27\u7684\u6743\u91cd\uff0c<strong>\u8ddd\u79bb\u8d8a\u8fdc\u5e94\u8be5\u8d8a\u503e\u5411\u5f53\u524d\u5e27\u4ee5\u907f\u514d\u9b3c\u5f71<\/strong><\/p>\n<h3>\u6548\u679c<\/h3>\n<p>\u8fd9\u662f\u5bbd\u9ad8\u964d\u91c7\u6837\u4e00\u534a\u7684\u6548\u679c<\/p>\n<p><img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c5676153701b6d63da1422.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c5676153701b6d63da1422.png\" alt=\"\" \/><\/p><\/noscript>\n<h2>\u989c\u8272\u76f8\u8fd1\u7684\u95ee\u9898<\/h2>\n<ul>\n<li>\u95ee\u9898\n<p>VarianceClipBox\u4f1a\u66f4\u52a0\u4fe1\u4efb\u4e0e\u5f53\u524d\u5e27\u989c\u8272\u76f8\u8fd1\u7684\u5386\u53f2\u5e27pixel\uff0c\u8fd9\u5c31\u5e26\u6765\u4e00\u4e2a\u95ee\u9898\uff0c\u5982\u679c\u524d\u666f\u548c\u540e\u666f\u7684\u989c\u8272\u8fc7\u4e8e\u76f8\u4f3c\uff0c\u5728\u8fd0\u52a8\u65f6\u5f88\u53ef\u80fd\u5bfc\u81f4ghost<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u89e3\u51b3<\/p>\n<p>\u8ba1\u7b97\u4e24\u4e2apixel\u7684\u6df1\u5ea6\u5dee\uff0c\u5224\u65ad\u6df1\u5ea6\u5dee\u662f\u5426\u5927\u4e8e\u9608\u503c\uff0c\u5927\u4e8e\u5219\u964d\u4f4e\u6216\u820d\u5f03\u5386\u53f2\u5e27<\/p>\n<\/li>\n<\/ul>\n<h2>\u7269\u4f53\u592a\u7ec6\u7684\u95ee\u9898<\/h2>\n<ul>\n<li>\n<p>\u95ee\u9898<\/p>\n<p>\u82e5\u67d0\u4e2a\u7269\u4f53\u7279\u522b\u7ec6\uff0c\u6a2a\u5411\u53ea\u5360\u4e00\u4e2apixel\uff0c\u964d\u5206\u8fa8\u7387\u4f1a\u5bfc\u81f4\u5360\u7528\u7ec6\u5c0f\u7269\u4f53\u7684\u50cf\u7d20\u5757\u4f1a\u51cf\u5c11\uff0c\u800c\u4ece\u5bfc\u81f4\u76f8\u6bd4\u4e8e\u539f\u751f\u5206\u8fa8\u7387\u91c7\u6837\u5230\u7ec6\u5c0f\u7269\u4f53\u7684\u50cf\u7d20\u70b9\u51cf\u5c11<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u89e3\u51b3<\/p>\n<ul>\n<li>3x3 closet uv<\/li>\n<li>\u4f7f\u7528\u8d34\u56fe\u6807\u8bb0\u8fd9\u4e2a\u7ec6\u5c0f\u533a\u57df\uff0c\u5982\u679ccloset uv\u91c7\u6837\u5230\u4e86\u5219\u589e\u52a0Variance Clip\u6743\u91cd\uff0c\u653e\u5927AABB\uff1b\u6216\u589e\u52a0\u5386\u53f2\u5e27\u6743\u91cd<\/li>\n<li>\u95ea\u70c1\uff1a\u518d\u505a\u4e00\u6b21ReinhardTonemap\uff0c\u4eae\u5ea6\u8d8a\u9ad8\u7684\u6743\u91cd\u8d8a\u4f4e\uff0c\u4eae\u5ea6\u8d8a\u4f4e\u7684\u6743\u91cd\u8d8a\u9ad8<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>\u534a\u900f\u660e\u7269\u4f53<\/h2>\n<ul>\n<li>\u95ee\u9898\n<p>\u7531\u4e8e\u534a\u900f\u660e\u7269\u4f53\u4e0d\u5199depth\u3001velocity\uff0cTAAU\u6ca1\u6cd5\u5904\u7406\u534a\u900f\u660e\u7269\u4f53<\/p>\n<\/li>\n<li>\n<p>\u5982\u4f55\u89e3\u51b3<\/p>\n<ul>\n<li>\u5148\u4f4e\u5206\u8fa8\u7387\u6e32\u67d3\u534a\u900f\u660e\u5230\u4e00\u5f20\u56fe\uff0c\u4e3b\u56fe\u6e32\u67d3\u4e0d\u900f\u660e\uff0cssr\u53cd\u5c04\u4e0d\u900f\u660e\uff0cTAAU\uff0c\u968f\u540e\u4e3b\u56fe\u4e0e\u534a\u900f\u660e\u6df7\u5408<\/p>\n<\/li>\n<li>\n<p>\u5148\u6e32\u67d3\u4e0d\u900f\u660e\u3001ssr\u53cd\u5c04\u4e0d\u900f\u660e\uff0cTAAU\uff0cGI\u6355\u6349\u534a\u900f\u660e<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Mipmap Bias \u7684\u8ba1\u7b97\u8865\u507f<\/h2>\n<ul>\n<li>What \uff1a\u753b\u9762\u770b\u8d77\u6765\u5f02\u5e38\u6a21\u7cca\uff0c\u8fdc\u8d85 TAA \u7684\u6b63\u5e38\u6a21\u7cca\u611f<\/li>\n<li>Why\uff1aGPU \u9ed8\u8ba4\u6839\u636e\u50cf\u7d20\u5bc6\u5ea6\u9009\u62e9 Mipmap\u3002\u5728 TAAU \u4e2d\uff0c\u4f60\u7684\u6e32\u67d3\u50cf\u7d20\u53d8\u5927\u4e86\uff0c\u786c\u4ef6\u4f1a\u81ea\u52a8\u9009\u62e9\u66f4\u4f4e\u7cbe\u5ea6\uff08\u66f4\u7cca\uff09\u7684 Mip \u5c42\u7ea7\u3002\u4e3a\u4e86\u5728\u9ad8\u5206\u8fa8\u7387\u4e0b\u91cd\u5efa\u7ec6\u8282\uff0c\u4f60\u9700\u8981\u5f3a\u5236\u786c\u4ef6\u53bb\u91c7\u6837\u66f4\u9ad8\u7cbe\u5ea6\u7684\u8d34\u56fe\u5c42\u7ea7\u3002\u4f46\u6ce8\u610f\uff1aBias \u8fc7\u5927\u4f1a\u5bfc\u81f4\u4f4e\u5206\u8fa8\u7387\u9636\u6bb5\u51fa\u73b0\u4e25\u91cd\u7684 Aliasing\uff08\u6ecb\u6ecb\u58f0\uff09\uff0c\u8fd9\u4f1a\u8d85\u51fa TAA \u7d2f\u52a0\u7684\u6291\u5236\u80fd\u529b<\/li>\n<li>How\uff1a\u5fc5\u987b\u5728\u6750\u8d28\u91c7\u6837\u65f6\u624b\u52a8\u8bbe\u7f6e\u4e00\u4e2a\u8d1f\u7684 Mipmap Bias\u3002\u516c\u5f0f\u901a\u5e38\u4e3a\uff1a<code>MipBias = log2(RenderRes.x \/ DisplayRes.x)<\/code><br \/>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69df8477433d142980c7ddde.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/li >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69df8477433d142980c7ddde.png\" alt=\"\" \/><\/li><\/noscript>\n<\/ul>\n<h2>\u6027\u80fd<\/h2>\n<p><img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c6194e32035fabd6870d75.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c6194e32035fabd6870d75.png\" alt=\"\" \/><\/p><\/noscript>\n<p><img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c619b432035fabd6870e73.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/>\u53ef\u4ee5\u770b\u5230gbuffer\u3001AO\u7b49\u8017\u65f6\u4e0b\u964d\u4e86\u8bb8\u591a\uff0c\u4f46TAApass\u4e5f\u5c31\u589e\u52a0\u4e860.03ms<\/p >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c619b432035fabd6870e73.png\" alt=\"\" \/>\u53ef\u4ee5\u770b\u5230gbuffer\u3001AO\u7b49\u8017\u65f6\u4e0b\u964d\u4e86\u8bb8\u591a\uff0c\u4f46TAApass\u4e5f\u5c31\u589e\u52a0\u4e860.03ms<\/p><\/noscript>\n<p><img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c61b1332035fabd6871663.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c61b1332035fabd6871663.png\" alt=\"\" \/><br \/><\/noscript>\n<img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/pic1.imgdb.cn\/item\/69c61b2532035fabd68716b8.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" \/><br \/ >\n<noscript><img decoding=\"async\" src=\"https:\/\/pic1.imgdb.cn\/item\/69c61b2532035fabd68716b8.png\" alt=\"\" \/><br \/><\/noscript>\n\u4f46SM\u5feb\u8fbe\u5230\u74f6\u9888\uff0cWarp Can't Launch\u589e\u52a0\u4e8650%\uff0c\u8bf4\u660e\u5185\u90e8\u8ba1\u7b97\u538b\u529b\u592a\u5927\uff0c\u9700\u8981\u7626\u8eab\uff0c\u8fd9\u5c31\u9700\u8981\u7ec6\u7ec6\u4f18\u5316\u4e86<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 TAA\u7684\u6838\u5fc3\u5728\u4e8e\u5982\u4f55\u6297\u952f\u9f7f\uff0c\u800cTAAU\u7684\u6838\u5fc3\u662f\u6027\u80fd\u63d0\u5347 TAA TAA\u8fd9\u91cc\u53ea\u4f1a\u63d0\u53ca\u5b9e\u73b0\u65f6\u7684\u51e0\u4e2a\u91cd\u70b9\uff0c\u91cd\u70b9\u5728\u540e\u7eedTAAU\u90e8\u5206  &#8230;<\/p>","protected":false},"author":1,"featured_media":374,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,5],"tags":[],"_links":{"self":[{"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/posts\/373"}],"collection":[{"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/chenglixue.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=373"}],"version-history":[{"count":2,"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/posts\/373\/revisions"}],"predecessor-version":[{"id":421,"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/posts\/373\/revisions\/421"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/chenglixue.top\/index.php?rest_route=\/wp\/v2\/media\/374"}],"wp:attachment":[{"href":"http:\/\/chenglixue.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/chenglixue.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=373"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/chenglixue.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}