{"id":127,"date":"2020-10-10T00:20:55","date_gmt":"2020-10-09T16:20:55","guid":{"rendered":"https:\/\/meecarlo.wordpress.com\/?p=127"},"modified":"2020-12-28T18:21:12","modified_gmt":"2020-12-28T10:21:12","slug":"shader%e5%85%a5%e9%97%a8-4-%e5%8d%a1%e9%80%9a%e6%9d%90%e8%b4%a8","status":"publish","type":"post","link":"https:\/\/meecarlo.com\/old\/2020\/10\/10\/shader%e5%85%a5%e9%97%a8-4-%e5%8d%a1%e9%80%9a%e6%9d%90%e8%b4%a8\/","title":{"rendered":"Shader\u5165\u95e8\u20144.\u5361\u901a\u6750\u8d28\uff081.Blinn-Phong\u6a21\u578b\uff09"},"content":{"rendered":"\n<p>1.Blinn-Phong\u9ad8\u5149\u6a21\u578b\u7ed3\u5408\u6f2b\u53cd\u5c04<\/p>\n\n\n\n<p class=\"has-drop-cap\"> \u524d\u6587\u6240\u5199\u7684\u57fa\u672c\u662f\u6bd4\u8f83\u57fa\u7840\u7684\u5149\u7167\u6a21\u578b\uff0c\u6709\u70b9\u6ca1\u610f\u601d\uff0c\u6211\u4eec\u8fd9\u6b21\u6765\u6574\u70b9\u82b1\u8d27\uff0c\u524d\u51e0\u5e74\u6bd4\u8f83\u6d41\u884c\u7684\u5361\u901a\u6750\u8d28\u3002\u9996\u5148\u6211\u4eec\u8981\u4e86\u89e3\u4e00\u4e0b\u5361\u901a\u6750\u8d28\u662f\u4e0e\u4e4b\u524d\u7684\u6f2b\u53cd\u5c04\u5149\u7167\u6a21\u578b\u4e0d\u540c\uff0c\u5361\u901a\u6750\u8d28\u7684\u5149\u7167\u6a21\u578b\u4e3b\u8981\u662f\u57fa\u4e8e\u8272\u8c03\u7684\u5149\u7167\u6a21\u578b\uff0c\u901a\u8fc7\u7528\u6f2b\u53cd\u5c04\u7cfb\u6570\u5bf9\u7eb9\u7406\u8fdb\u884c\u4e00\u5f20\u5f20\u7684\u91c7\u6837\uff0c\u6765\u63a7\u5236\u6f2b\u53cd\u5c04\u7684\u8272\u8c03\u3002\u9ad8\u5149\u5904\uff0c\u6211\u4eec\u7528\u4e00\u5757\u660e\u663e\u7684\u7eaf\u8272\u533a\u57df\u6765\u8868\u793a\u3002\u8fd9\u65f6\u6211\u4eec\u9700\u8981\u7528\u5230\u4e00\u4e2a\u9ad8\u5149\u6a21\u578bBlinn-Phong\u6a21\u578b\u3002\u9664\u4e86\u8fd9\u4e9b\uff0c\u5361\u901a\u6e32\u67d3\u6700\u5177\u4ee3\u8868\u6027\u7684\u5c31\u662f\u4ed6\u660e\u663e\u7684\u8f6e\u5ed3\u7ebf\u3002\u4e3a\u4e86\u5b9e\u73b0\u8fd9\u79cd\u8f6e\u5ed3\u7ebf\uff0c\u6211\u4eec\u6709\u51e0\u79cd\u65b9\u6cd5\uff0c\u6700\u5e38\u7528\u7684\u662f\u901a\u8fc7\u4e24\u4e2aPASS\u6765\u5206\u522b\u6e32\u67d3\uff0c\u4e00\u4e2aPASS\u53ea\u6e32\u67d3\u80cc\u9762\u5e76\u4fbf\u5b9c\u53d1\u73b0\u6765\u5f97\u5230\u8f6e\u5ed3\u9009\uff0c\u800c\u53e6\u5916\u4e00\u4e2a\u53ea\u9700\u8981\u6e32\u67d3\u6b63\u9762\u3002<\/p>\n\n\n\n<p>        \u9996\u5148\u6211\u4eec\u5148\u4e86\u89e3\u4e00\u4e0b\u9ad8\u5149\u6a21\u578b\uff0c\u4f20\u7edf\u7684\u9ad8\u5149\u6a21\u578b\u516c\u5f0f\u5982\u4e0b<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"586\" height=\"66\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/14.png\" alt=\"\" class=\"wp-image-498\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/14.png 586w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/14-300x34.png 300w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><figcaption>Phong\u9ad8\u5149\u6a21\u578b<\/figcaption><\/figure>\n\n\n\n<p>        \u8fd9\u4e2a\u6a21\u578b\u8ddf\u6211\u4e0a\u4e00\u8282\u6240\u5b66\u7684\u6f2b\u53cd\u5c04\u5149\u7167\u6a21\u578b\u6709\u70b9\u7c7b\u4f3c\uff0c<em>m<sub>specular<\/sub><\/em> \u662f\u9ad8\u5149\u533a\u57df\u7684\u989c\u8272\uff0c<em>v<\/em>\u662f\u89c6\u89c9\u65b9\u5411\uff0c<em>r<\/em>\u662f\u53cd\u5c04\u65b9\u5411<em>m<sub>gloss<\/sub><\/em>\u662f\u9ad8\u5149\u7cfb\u6570\uff0c\u7cfb\u6570\u8d8a\u5927\u5219\u4eae\u5ea6\u8d8a\u5c0f\u3002\u5f53\u6211\u4eec\u83b7\u53d6<em>r<\/em>\u7684\u65f6\u5019\uff0c\u9700\u8981\u901a\u8fc7\u7269\u4f53\u8868\u9762\u7684\u6cd5\u7ebf\u5355\u4f4d\u5411\u91cf\u4e0e\u5149\u6e90\u7684\u5355\u4f4d\u5411\u91cf\u901a\u8fc7\u8ba1\u7b97\u5f97\u5230<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"259\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/15.png\" alt=\"\" class=\"wp-image-499\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/15.png 540w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/15-300x144.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><figcaption>phong\u6a21\u578b\u8ba1\u7b97\u9ad8\u5149<\/figcaption><\/figure>\n\n\n\n<p>        \u6211\u4eec\u7684\u8ba1\u7b97\u516c\u5f0f\u5982\u4e0b<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"586\" height=\"138\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/16.png\" alt=\"\" class=\"wp-image-500\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/16.png 586w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/16-300x71.png 300w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><figcaption>\u9ad8\u5149\u53cd\u5c04\u7684\u8ba1\u7b97\u516c\u5f0f<\/figcaption><\/figure>\n\n\n\n<p>        \u5982\u6b64\u6211\u4eec\u4fbf\u53ef\u4ee5\u8ba1\u7b97\u9ad8\u5149\u53cd\u5c04\u90e8\u5206\u3002<\/p>\n\n\n\n<p>        \u5728\u8fd9\u4e4b\u540e\uff0cBlinn\u63d0\u51fa\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u65b9\u6848\u6765\u4fee\u6539\u8fd9\u4e2a\u6a21\u578b\uff0c\u4ed6\u63d0\u51fa\u4e86\u4e00\u4e2a\u5411\u91cf<em>h<\/em>\uff0c\u4ed6\u662f\u901a\u8fc7<em>v<\/em>\u4e0e<em>l<\/em>\u53d6\u5e73\u5747\u7136\u540e\u5f52\u4e00\u5316\u540e\u5f97\u5230\u7684<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"336\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/17-1.png\" alt=\"\" class=\"wp-image-502\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/17-1.png 577w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/17-1-300x175.png 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><figcaption><em>h<\/em>\u7684\u8ba1\u7b97\u8fc7\u7a0b<\/figcaption><\/figure>\n\n\n\n<p>        \u4fee\u6539\u8fc7\u540e\u7684Blinn-Phong\u9ad8\u5149\u6a21\u578b<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"68\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/18.png\" alt=\"\" class=\"wp-image-503\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/18.png 566w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/18-300x36.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/figure>\n\n\n\n<p>        \u6211\u4eec\u5206\u522b\u6765\u5728\u7a0b\u5e8f\u4ee3\u7801\u4e2d\u5b9e\u73b0\u8fd9\u4e24\u4e2a\u9ad8\u5149\u5149\u7167\u6a21\u578b\u3002<\/p>\n\n\n\n<p>        \u6f2b\u53cd\u5c04\u90e8\u5206\u4e0e\u4e0a\u7bc7\u7c7b\u4f3c\uff0c\u8fd9\u8fb9\u91cd\u70b9\u8bf4\u4e0b\u9ad8\u5149\u7684\u4ee3\u7801<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fixed3 reflectDir=normalize(reflect(-worldLightDir,worldNormal));<br>fixed3 viewDir=normalize(_WorldSpaceCammeraPos.xyz-unity_ObjectToWorld(v.vertex).xyz);<\/code><\/pre>\n\n\n\n<p>        \u8fd9\u91cc\u6211\u4eec\u4ecb\u7ecd\u4e0breflect\u51fd\u6570\uff0creflect\uff08i,n\uff09\uff0ci\u662f\u6307\u5165\u5c04\u65b9\u5411\uff0cn\u662f\u6307\u6cd5\u7ebf\u65b9\u5411\uff0c\u5176\u4e2d\u7684\u53c2\u6570\u7c7b\u578b\u53ef\u4ee5\u662ffloat,float2,float3\uff0c\u8fd9\u91cc\u6211\u4eec\u901a\u8fc7\u5bf9\u5149\u6e90\u65b9\u5411\u53d6\u53cd\uff0c\u5f97\u5230\u4ed6\u7684\u5165\u5c04\u65b9\u5411\uff0c\u8fd9\u91cc\u53d6\u53cd\u7684\u539f\u56e0\u662f\uff0c\u5728\u6211\u4eec\u7528_WorldSpaceLightPos0\u8fd9\u4e2a\u51fd\u6570\u6765\u53d6\u5f97\u5149\u6e90\u65b9\u5411\u7684\u65f6\u5019\uff0c\u4ed6\u662f\u57fa\u4e8e\u7269\u4f53\u7684\u8868\u9762\u53cd\u5c04\u800c\u5f97\u5230\u7684\u503c\uff0c\u6240\u4ee5\u5728\u7528\u5165\u5c04\u5149\u6e90\u7684\u65b9\u5411\u7684\u65f6\u5019\uff0c\u53ea\u9700\u8981\u53d6\u53cd\u5c31\u53ef\u4ee5\u4e86\u3002worldNormal\u5219\u662f\u6b63\u5e38\u901a\u8fc7mul\uff08v.normal,(float3x3)unity_WorldToObject)\u6765\u8ba1\u7b97\uff0c\u8fd9\u91cc\u6211\u4eec\u5f97\u5230\u7684v.normal\u662f\u57fa\u4e8e\u7269\u4f53\u5750\u6807\u6240\u5f97\u5230\u7684\u6cd5\u7ebf\u5411\u91cf\uff0c\u6211\u4eec\u7528\u6cd5\u7ebf\u7a7a\u95f4\u8f6c\u6362\u77e9\u9635\u8fdb\u884c\u53cd\u4e58\uff0c\u5c31\u80fd\u591f\u5f97\u5230\u5728\u7a7a\u95f4\u4e2d\u7684\u6cd5\u7ebf\u5750\u6807\uff0c\u540c\u6837\uff0c\u6cd5\u7ebf\u662f\u4e00\u4e2axyz\u5411\u91cf\uff0c\u6211\u4eec\u53ea\u9700\u8981\u53bb\u77e9\u9635\u7684\u524d\u4e09\u884c\u524d\u4e09\u5217\u5c31\u53ef\u4ee5\u4e86\uff0c\u7136\u540e\u8fdb\u884c\u5f52\u4e00\u5316\u3002\u8fd9\u91cc\u6211\u63d0\u4e00\u4e0bviewDir\u7684\u8ba1\u7b97\u8fc7\u7a0b\uff0c\u7b80\u5355\u7684\u6765\u8bf4\u5c31\u662f\u7a7a\u95f4\u76f8\u673a\u5750\u6807\u51cf\u53bb\u7269\u4f53\u5750\u6807\uff0c\u5982\u679c\u4e0d\u591f\u5177\u8c61\u5316\uff0c\u6211\u4eec\u753b\u4e00\u4e0b\u5c31\u80fd\u591f\u975e\u5e38\u6e05\u6670\u7684\u7406\u89e3\u8fd9\u4e2a\u51e0\u4f55\u610f\u4e49\uff0c<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/13-1-1024x600.png\" alt=\"\" class=\"wp-image-497\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/13-1-1024x600.png 1024w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/13-1-300x176.png 300w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/13-1-768x450.png 768w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/13-1-1536x900.png 1536w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/13-1-2048x1201.png 2048w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/13-1-1568x919.png 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>viewDir\u7684\u5177\u8c61\u5316<\/figcaption><\/figure>\n\n\n\n<p>\u5176\u4e2d\u5411\u91cfC\u662f\u7a7a\u95f4\u76f8\u673a\u5750\u6807\uff0c\u5411\u91cfO\u662f\u7a7a\u95f4\u7269\u4f53\u5750\u6807\uff0c\u4e24\u4e2a\u76f8\u51cf\uff0c\u5c31\u5f97\u5230\u4e86\u5411\u91cfV\uff0c\u4e5f\u5c31\u662f\u6211\u4eec\u7684\u89c6\u89d2\u5411\u91cf\uff0c\u5728\u5bf9\u4ed6\u8fdb\u884c\u5f52\u4e00\u5316\u3002\u6709\u4e86\u8fd9\u4e24\u4e2a\u503c\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u8fdb\u884c\u9ad8\u5149\u7684\u4ee3\u7801\u7f16\u5199\u4e86<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fixed3 specular=_LightColor0.rgb*_Specular.rgb*pow(saturate(dot(viewDir,reflectDir)),_Gloss)\uff1b<\/code><\/pre>\n\n\n\n<p>        \u4e4b\u540e\u518d\u52a0\u4e0a\u6211\u4eec\u4e0a\u7bc7\u6240\u5f97\u5230diffuse\u4e0eambient\u5c31\u80fd\u5f97\u5230\u4e00\u4e2a\u5b8c\u6574\u7684Phong-\u9ad8\u5149\u6a21\u578b\u7684\u6f2b\u53cd\u5c04\u6a21\u578b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Shader&nbsp;\"Custom\/DiffuseShader\"<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Properties<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Diffuse(\"Diffuse&nbsp;Color\",Color)=(1,1,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Specular(\"Specular&nbsp;Color\",Color)=(1,1,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Gloss(\"Gloss\",Range(8,255))=20<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;SubShader<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tags{\"LightModel\"=\"ForwardBase\"}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CGPROGRAM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;vertex&nbsp;vert<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;fragment&nbsp;frag<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#include&nbsp;\"Lighting.cginc\"<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed4&nbsp;_Diffuse;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed4&nbsp;_Specular;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;_Gloss;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;a2v{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float4&nbsp;vertex&nbsp;:&nbsp;POSITION;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float3&nbsp;normal&nbsp;:&nbsp;NORMAL;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;v2f{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float4&nbsp;pos:SV_POSITION;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float3&nbsp;color:COLOR;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v2f&nbsp;vert(a2v&nbsp;v){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v2f&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.pos=UnityObjectToClipPos(v.vertex);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;ambient=UNITY_LIGHTMODEL_AMBIENT.xyz;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;worldNormal=normalize(mul(v.normal,(float3x3)unity_WorldToObject));<br><br>                                fixed3 worldLightDir=normalize(_WorldSpaceLightPos0.xyz);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;lightNormal=normalize(_WorldSpaceLightPos0);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;diffuse=_LightColor0.rgb*_Diffuse.rgb*saturate(dot(worldNormal,lightNormal));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;reflectDir=normalize(reflect(-WorldLightDir,worldNormal));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;viewDir=normalize(_WorldSpaceCameraPos.xyz-unity_ObjectToWorld(v.vertex).xyz);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;specular=_LightColor0.rgb*_Specular*pow(saturate(dot(viewDir,reflectDir)),_Gloss);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.color=ambient.rgb+diffuse.rgb+specular;<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed4&nbsp;frag(v2f&nbsp;i):SV_TARGET{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fixed4(i.color,1.0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDCG<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;FallBack&nbsp;\"Diffuse\"<br>}<br><\/code><\/pre>\n\n\n\n<p>        \u81f3\u6b64\u6211\u4eec\u5f97\u5230\u4e86\u4e00\u4e2a\u57fa\u4e8ephong\u9ad8\u5149\u6a21\u578b\u7684\u6f2b\u53cd\u5c04\u6a21\u578b\u3002<\/p>\n\n\n\n<p>        \u540c\u7406\uff0c\u6211\u4eec\u5c06Blinn-Phone\u9ad8\u5149\u6a21\u578b\u8fdb\u884c\u4ee3\u7801\u5316\uff0c\u9996\u5148\u6211\u4eec\u9700\u8981\u4ec0\u4e48\uff1f\u518d\u6765\u770b\u4e00\u4e0b\u6211\u4eec\u7684Blinn-Phong\u6a21\u578b\u516c\u5f0f<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"586\" height=\"66\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/14.png\" alt=\"\" class=\"wp-image-498\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/14.png 586w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/14-300x34.png 300w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"336\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/17.png\" alt=\"\" class=\"wp-image-501\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/17.png 577w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/17-300x175.png 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/figure>\n\n\n\n<p>        n\u662f\u7269\u4f53\u8868\u9762\u6cd5\u7ebf\u5411\u91cf\uff0ch\u662f\u65b0\u5b9a\u4e49\u7684\u5149\u6e90\u5411\u91cf\u4e0e\u89c6\u89c9\u65b9\u5411\u53d6\u5e73\u5747\u540e\u7684\u5f52\u4e00\u5316\u3002\u5728\u4ee3\u7801\u4e2d\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u5c06worldLightDir\u4e0eviewDir\u76f8\u52a0\u7136\u540e\u8fdb\u884c\u5f52\u4e00\u5316\u8ba1\u7b97\u5c31\u884c\u4e86\u3002\u6240\u4ee5\u8fd9Blinn-Phong\u7684\u9ad8\u5149\u90e8\u5206\u5982\u4e0b\u4ee3\u7801\u5448\u73b0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fixed3 viewDir=normalize(_WorldSpaceCameraPos.xyz-unity_ObjectToWorld(v.normal).xyz);<br>fixed3 halfDir=normalize(worldLightDir,viewDir);<\/code><\/pre>\n\n\n\n<p>        \u5f97\u5230\u8fd9\u4e24\u4e2a\u53c2\u6570\u6211\u4eec\u5c31\u53ef\u4ee5\u76f4\u63a5\u5957\u7528\u516c\u5f0f\u6765\u8ba1\u7b97\u9ad8\u5149\u90e8\u5206\u4e86<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fixed3 diffuse=_LightColor0.rgb*_Specular*pow(max(0,dot(worldNormal,halfDir)),_Gloss);<\/code><\/pre>\n\n\n\n<p>        \u6240\u4ee5\u6211\u4eec\u7684Blinn-Phong\u9ad8\u5149\u6f2b\u53cd\u5c04\u6a21\u578b\u5706\u6ee1\u4e86\u3002\u4e0b\u9762\u662f\u6211\u4eec\u7684\u5b8c\u6574\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Shader&nbsp;\"Custom\/Blinn-PhongSpecularDiffuseShader\"<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Properties{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Diffuse(\"Diffuse&nbsp;Color\",Color)=(1,1,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Specular(\"Specular&nbsp;Color\",Color)=(1,1,1,1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Gloss(\"Gloss\",Range(8,255))=20<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;SubShader{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pass{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tags{\"LightMode\"=\"ForwardBase\"}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CGPROGRAM<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;vertex&nbsp;vert<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;fragment&nbsp;frag<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#include&nbsp;\"Lighting.cginc\"<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed4&nbsp;_Diffuse;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed4&nbsp;_Specular;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;&nbsp;_Gloss;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;a2v{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float4&nbsp;vertex:POSITION;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float3&nbsp;normal:NORMAL;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;v2f{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float4&nbsp;pos:SV_POSITION;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;color:COLOR;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v2f&nbsp;vert(a2v&nbsp;v){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v2f&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.pos=UnityObjectToClipPos(v.vertex);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;worldNormal=normalize(mul(v.normal,(float3x3)unity_WorldToObject));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;lightDir=normalize(_WorldSpaceLightPos0.xyz);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;diffuse=_LightColor0.rgb*_Diffuse*saturate(dot(worldNormal,lightDir));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;ambient=UNITY_LIGHTMODEL_AMBIENT.xyz;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;viewDir=normalize(_WorldSpaceCameraPos.xyz-UnityObjectToWorld(v.normal).xyz);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;halfDir=normalize(lightDir+viewDir);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed3&nbsp;specular=_LightColor0.rgb*_Specular*pow(max(0,dot(worldNormal,halfDir)),_Gloss);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.color=ambient+diffuse+specular;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;o;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed4&nbsp;frag(v2f&nbsp;i):SV_TARGET{<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fixed4(i.color,1.0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDCG<br><br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;FallBack&nbsp;\"Diffuse\"<br>}<br><\/code><\/pre>\n\n\n\n<p>        \u4ee5\u4e0a\u662f\u6211\u4eec\u5b8c\u6574\u7684Blinn-Phong\u9ad8\u5149\u6f2b\u53cd\u5c04\u6a21\u578b\uff0c\u4f46\u6ce8\u610f\uff0c\u8fd9\u90e8\u5206\u4ee3\u7801\u6211\u4eec\u662f\u5728\u9876\u70b9\u7740\u8272\u5668\u4e2d\u6240\u5b9e\u73b0\u7684\uff0c\u5728\u7247\u5143\u7740\u8272\u5668\u4e2d\u5982\u4f55\u5b9e\u73b0\u7f51\u4e0a\u6709\u633a\u591a\u7684\u8d44\u6599\u7684\uff0c\u8fd9\u91cc\u5c31\u4e0d\u5728\u8d58\u8ff0\uff0c\u539f\u7406\u8ddf\u8fd9\u4e2a\u5dee\u4e0d\u591a\uff0c\u53ea\u662f\u5728\u7247\u5143\u7740\u8272\u5668\u4e2d\u5c11\u4e86\u4e00\u6b65\u4e16\u754c\u5750\u6807\u4e0b\u7684\u7269\u4f53\u6cd5\u7ebf\u53cd\u8f6c\u6362\u3002<\/p>\n\n\n\n<p>        \u5728ShaderGraph\u4e0eUE4\u4e2d\u5982\u4f55\u5b9e\u73b0BlinnPhong\u9ad8\u5149\u6f2b\u53cd\u5c04\u6a21\u578b\u3002\u7531\u4e8e\u65f6\u95f4\u592a\u665a\u4e86\u3002\u5148\u7761\u4e00\u89c9\u3002\u3002\u3002\u3002\u3002\u660e\u5929\u770b\u770b\u80fd\u4e0d\u80fd\u5728\u6478\u9c7c\u7684\u65f6\u5019\u505a\u6210\u3002\u3002\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"560\" src=\"http:\/\/meecarlo.com\/wp-content\/uploads\/2020\/12\/12-1024x560.png\" alt=\"\" class=\"wp-image-495\" srcset=\"https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/12-1024x560.png 1024w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/12-300x164.png 300w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/12-768x420.png 768w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/12-1536x840.png 1536w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/12-2048x1120.png 2048w, https:\/\/meecarlo.com\/old\/wp-content\/uploads\/2020\/12\/12-1568x858.png 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Blinn-Phong\u9ad8\u5149\u6f2b\u53cd\u5c04\u6a21\u578b<\/figcaption><\/figure>\n\n\n\n<p>        \u8fd9\u662f\u4e0a\u5348\u7684\u6478\u9c7c\u6210\u679c\u3002\u9700\u8981\u6ce8\u610f\u7684\u662fshadergraph\u53ef\u4ee5\u76f4\u63a5\u83b7\u53d6viewDirection\uff0c\u800c\u4e0d\u5fc5\u50cf\u4e0a\u8ff0\u4ee3\u7801\u90a3\u6837\u901a\u8fc7<code>_WorldSpaceCameraPos.xyz-unity_ObjectToWolrd(v.normal).xyz<\/code> \u6765\u83b7\u53d6\uff0c\u5176\u4ed6\u7684\u601d\u8def\u8ddf\u4ee3\u7801\u601d\u8def\u4e00\u6837\uff0c\u5c31\u4e0d\u518d\u8d58\u8ff0\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.Blinn-Phong\u9ad8\u5149\u6a21\u578b\u7ed3\u5408\u6f2b\u53cd\u5c04 \u524d\u6587\u6240\u5199\u7684\u57fa\u672c\u662f\u6bd4\u8f83\u57fa\u7840\u7684\u5149\u7167\u6a21\u578b\uff0c\u6709\u70b9\u6ca1\u610f\u601d\uff0c\u6211\u4eec\u8fd9\u6b21\u6765\u6574\u70b9\u82b1 &hellip; <a href=\"https:\/\/meecarlo.com\/old\/2020\/10\/10\/shader%e5%85%a5%e9%97%a8-4-%e5%8d%a1%e9%80%9a%e6%9d%90%e8%b4%a8\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">Shader\u5165\u95e8\u20144.\u5361\u901a\u6750\u8d28\uff081.Blinn-Phong\u6a21\u578b\uff09<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":336,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,1],"tags":[],"class_list":["post-127","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-study-note","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/posts\/127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/comments?post=127"}],"version-history":[{"count":3,"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/posts\/127\/revisions"}],"predecessor-version":[{"id":568,"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/posts\/127\/revisions\/568"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/meecarlo.com\/old\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/media?parent=127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/categories?post=127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meecarlo.com\/old\/wp-json\/wp\/v2\/tags?post=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}