{"id":2542,"date":"2021-09-22T03:49:55","date_gmt":"2021-09-21T19:49:55","guid":{"rendered":"https:\/\/www.clonefactor.com\/wordpress\/?p=2542"},"modified":"2021-09-22T03:57:57","modified_gmt":"2021-09-21T19:57:57","slug":"%e9%a0%ad%e9%ab%aeshader","status":"publish","type":"post","link":"https:\/\/www.clonefactor.com\/wordpress\/program\/unity3d\/shader\/2542\/","title":{"rendered":"Study: URP Hair Shader"},"content":{"rendered":"\n<p>\u525b\u5f9e assetStore \u628a\u4eba\u5f62\u8cb7\u56de\u4f86\u653e\u5230 URP \u4e0a\u7684\u6642\u5019. \u4e0d\u77e5\u9053\u8981\u82b1\u591a\u4e45\u6642\u9593\u4f86\u8a2d\u5b9a\u7684\u72c0\u614b.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2543\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00.png\" alt=\"\" width=\"1623\" height=\"1000\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00.png 1623w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00-300x185.png 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00-1024x631.png 1024w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00-768x473.png 768w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00-1536x946.png 1536w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/ShaderStudy00-359x221.png 359w\" sizes=\"auto, (max-width: 1623px) 100vw, 1623px\" \/><\/p>\n\n\n\n<p>\u6b7b\u9b5a\u773c&#8230;. \u628a\u9ad8\u5149\u90fd\u8abf\u4e00\u4e0b, \u982d\u9aee\u9019\u500b\u5f88\u6709\u554f\u984c&#8230;\u76ae\u819a\u4e5f\u5f88\u6697\u555e<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00-1024x600.png\" alt=\"\" data-id=\"2545\" data-full-url=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00.png\" data-link=\"https:\/\/www.clonefactor.com\/wordpress\/?attachment_id=2545\" class=\"wp-image-2545\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00-1024x600.png 1024w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00-300x176.png 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00-768x450.png 768w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00-359x210.png 359w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00-512x300.png 512w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish00.png 1342w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"716\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01-1024x716.png\" alt=\"\" data-id=\"2546\" data-full-url=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01.png\" data-link=\"https:\/\/www.clonefactor.com\/wordpress\/?attachment_id=2546\" class=\"wp-image-2546\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01-1024x716.png 1024w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01-300x210.png 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01-768x537.png 768w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01-359x251.png 359w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish01.png 1095w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"637\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02-1024x637.png\" alt=\"\" data-id=\"2547\" data-full-url=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02.png\" data-link=\"https:\/\/www.clonefactor.com\/wordpress\/?attachment_id=2547\" class=\"wp-image-2547\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02-1024x637.png 1024w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02-300x187.png 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02-768x478.png 768w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02-359x223.png 359w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/eyeShader_deadFish02.png 1326w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>\u7814\u7a76\u4e00\u4e0b\u982d\u9aee\u7684\u5beb\u6cd5.<br>Ref : 2004 \u5e74\u7684 Kajiya-Kay light model.<br><a rel=\"noreferrer noopener\" href=\"https:\/\/developer.amd.com\/wordpress\/media\/2012\/10\/Scheuermann_HairSketchSlides.pdf\" target=\"_blank\">https:\/\/developer.amd.com\/wordpress\/media\/2012\/10\/Scheuermann_HairSketchSlides.pdf<\/a><\/p>\n\n\n\n<p>Ref : <a href=\"https:\/\/zhuanlan.zhihu.com\/p\/363829203\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/zhuanlan.zhihu.com\/p\/363829203<\/a><\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"657\" src=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair-1024x657.png\" alt=\"\" data-id=\"2550\" data-full-url=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair.png\" data-link=\"https:\/\/www.clonefactor.com\/wordpress\/?attachment_id=2550\" class=\"wp-image-2550\" srcset=\"https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair-1024x657.png 1024w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair-300x193.png 300w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair-768x493.png 768w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair-359x230.png 359w, https:\/\/www.clonefactor.com\/wordpress\/wp-content\/uploads\/2021\/09\/Kajiya-Kay-style-hair.png 1190w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>\u4f7f\u7528 Kajiya-Kay \u7684\u6563\u5c04\u904b\u7b97\u4ee5\u53ca\u80fd\u53cd\u6620\u9aee\u8cea\u7684\u9ad8\u5149\u984f\u8272.<\/p>\n\n\n\n<p>\u52a0\u4e0a Rim Light \u611f\u89ba\u597d\u591a\u4e86.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Week 08, Hair shader, Kajiya-Kay model\" width=\"1260\" height=\"945\" src=\"https:\/\/www.youtube.com\/embed\/Okof7rUzYBQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Kajiya-Kay \u7684\u5beb\u6cd5\u5f88\u7c21\u55ae\u91cd\u8981\u7684\u5c31\u90a3 2,3 \u53e5. <br>\u9019\u908a\u662f\u6211\u7684\u5beb\u6cd5.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">struct HighLight\n{\n    half4 color;\n    half shift;\n};\n\nstruct Specular\n{\n    half width;\n    half power;\n    half scale;\n};\n            \nhalf HairHighLight(Specular specular, half3 T, half3 V, half3 L)\n{\n    half3 H = normalize(V + L);\n    half HdotT = dot(T, H);\n    half sinTH = sqrt(1 - HdotT * HdotT);\n    half dirAtten = smoothstep(-specular.width, 0, HdotT);\n    return dirAtten * saturate(pow(sinTH, specular.power)) * specular.scale;\n}\n            \nhalf3 ShiftTangent(half3 T, half3 N, float shift)\n{\n    return normalize(T + shift * N);\n}\n\nhalf3 SpecularStrandLighting(HighLight primary, HighLight secondary, Specular specular, half shiftTex,\n    half3 N, half3 TB, half3 V, half3 L)\n{\n    \/\/ TB := Tangent\/Bitangent to define the direction of hair highlight specular\n    half3 t1 = ShiftTangent(TB, N, primary.shift + shiftTex);\n    half3 t2 = ShiftTangent(TB, N, secondary.shift + shiftTex);\n\n    half3 highLight = half3(0.0, 0.0, 0.0);\n    highLight += primary.color.rgb * primary.color.a * HairHighLight(specular, t1, V, L);\n    highLight += secondary.color.rgb * secondary.color.a * HairHighLight(specular, t2, V, L);\n    return highLight;\n}\n\n\/\/ Simple subsurface scattering approximation\n\/\/ https:\/\/developer.amd.com\/wordpress\/media\/2012\/10\/Scheuermann_HairSketchSlides.pdf\nhalf3 KajiyaKayLightTerm(Light light, half3 N)\n{\n    return light.color * light.shadowAttenuation * light.distanceAttenuation * \n        max(0.0, 0.75 * dot(N, light.direction.xyz) + 0.25);\n}<\/pre>\n\n\n\n<p>\u76ee\u524d\u7d50\u679c\u4e0d\u751a\u6eff\u610f, \u6240\u4ee5\u7e7c\u7e8c\u627e\u8cc7\u6599. \u591a\u8b1d Jason \u63d0\u4f9b\u7684\u6e05\u55ae<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Real-Time Hair Rendering on the GPU, SIGGRAPH2008<br><a rel=\"noreferrer noopener\" href=\"https:\/\/developer.download.nvidia.com\/presentations\/2008\/SIGGRAPH\/RealTimeHairRendering_SponsoredSession2.pdf\" target=\"_blank\">https:\/\/developer.download.nvidia.com\/presentations\/2008\/SIGGRAPH\/RealTimeHairRendering_SponsoredSession2.pdf<\/a><\/li><li>A Data-Driven Light Scattering Model for Hair<br><a rel=\"noreferrer noopener\" href=\"https:\/\/graphics.pixar.com\/library\/DataDrivenHairScattering\/paper.pdf\" target=\"_blank\">https:\/\/graphics.pixar.com\/library\/DataDrivenHairScattering\/paper.pdf<\/a><\/li><li>Hair In tomb raider<br><a href=\"https:\/\/www.slideshare.net\/WolfgangEngel\/hair-intombraider-final\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.slideshare.net\/WolfgangEngel\/hair-intombraider-final<\/a><\/li><li><a href=\"https:\/\/www.taylorfrancis.com\/chapters\/edit\/10.1201\/b16721-14\/tressfx-advanced-real-time-hair-rendering-timothy-martin-wolfgang-engel-nicolas-thibieroz-jason-yang-jason-lacroix\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.taylorfrancis.com\/chapters\/edit\/10.1201\/b16721-14\/tressfx-advanced-real-time-hair-rendering-timothy-martin-wolfgang-engel-nicolas-thibieroz-jason-yang-jason-lacroix<\/a><\/li><\/ul>\n\n\n\n<p>Extra Study Ref<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Alpha To Coverage<br><a href=\"https:\/\/bgolus.medium.com\/anti-aliased-alpha-test-the-esoteric-alpha-to-coverage-8b177335ae4f\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/bgolus.medium.com\/anti-aliased-alpha-test-the-esoteric-alpha-to-coverage-8b177335ae4f<\/a><\/li><\/ul>\n\n\n","protected":false},"excerpt":{"rendered":"<p>\u525b\u5f9e assetStore \u628a\u4eba\u5f62\u8cb7\u56de\u4f86\u653e\u5230 URP \u4e0a\u7684\u6642\u5019. \u4e0d\u77e5\u9053\u8981\u82b1\u591a\u4e45\u6642\u9593\u4f86\u8a2d\u5b9a\u7684\u72c0\u614b.  &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[88],"tags":[],"class_list":["post-2542","post","type-post","status-publish","format-standard","hentry","category-shader"],"_links":{"self":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2542"}],"version-history":[{"count":9,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2542\/revisions"}],"predecessor-version":[{"id":2558,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/posts\/2542\/revisions\/2558"}],"wp:attachment":[{"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clonefactor.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}