当不要脸已成习惯,当山峰也没有了棱角,当招人这么困难的时候,我还是在篇头植入的招聘。
坐标山东青岛市北,招聘日系画师,其他岗位目前公司没有说,有意思的可以入群私聊。
然后再说一下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就可以了
目前就这么两种思路。