当不要脸已成习惯,当山峰也没有了棱角,当招人这么困难的时候,我还是在篇头植入的招聘。
坐标山东青岛市北,招聘日系画师,其他岗位目前公司没有说,有意思的可以入群私聊。
然后再说一下QQ群,山东手游研发聚集地335772557,进群先看公告,要是抱着我要学习的心态进群的话,那你就失望了,因为是个死群。
偶尔心情好的是时候会发个技术链接。
接下来进入正题!!
这篇文章我只是写个想法,如果想360度的立体,自己根据思路自己实现一下吧,可以跟帖讨论,反正我的博客也是个坟。
原理在下面的链接里,老外在08年就出paper了。。。这么久了。。
Shader "ShaderStore/LUT/DualParaboloidMapping1_ForReflect" { Properties { _FrontTex ("Front Texture", 2D) = "white" {} _BackTex ("Back Texture", 2D) = "white" {} _Bias("Bias Offset",Range(0,1)) = 0.0 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; float3 R : TEXCOORD1; }; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); float4 worldPos = mul(unity_ObjectToWorld,v.vertex); float3 worldNorm = mul(v.normal,unity_WorldToObject); float3 worldView = normalize(worldPos.xyz - _WorldSpaceCameraPos.xyz); o.R = reflect(worldView,worldNorm); return o; } sampler2D _FrontTex,_BackTex; fixed _Bias; fixed4 frag (v2f i) : SV_Target { float3 vR = normalize(i.R); if(vR.z > 0.0) { float2 frontUV; frontUV = (vR.xy / (2.0*(1.0+_Bias+vR.z))) +0.5; frontUV.y = 1- frontUV.y; return tex2D(_FrontTex,frontUV); } else { float2 backUV; backUV = (vR.xy / (2.0*(1.0+_Bias-vR.z))) +0.5; backUV.x = 1- backUV.x; backUV.y = 1- backUV.y; return tex2D(_BackTex,backUV); } } ENDCG } } }
这是篇老外的paper,本来不想收积分的,但是最低也得2分,没有积分的百度谷歌搜一下吧,一把一把的
https://download.csdn.net/download/u012871784/10319252
接下来说一下矫正的matcap的实现思路这里就不着手实现了
思路1:
弄一个球,贴上一个贴图,找个相机单独看它出个rt就是个matcap。然后常规matcap采样就可以了,这样就是实时光照的感觉。
思路2:
弄一张贴图
红框部分spherize一下然后采样。然后滚动uv,相当于思路1转球,这样就省去了rt
要是懒,spherize部分也可以不做,就直接滚动uv就可以了
目前就这么两种思路。