参考自:
描边效果
静态:
动态:
马赛克效果
静态:
动态
材质编辑器分别如下:
描边
马赛克
或
HLSL代码分别如下:
描边
//input SceneTexSize //input UV //input NotUse //input OutLineSize //input MaxZ //input OutLineColor float3 w=float3(0.2125,0.7154,0.0721); float2 Sampler[]={float2(-1,-1),float2(-2,0),float2(-1,1), float2(0,-2),float2(0,0),float2(0,2), float2(1,-1),float2(2,0),float2(1,1)}; float2 UVOffset[]={float2(-1,-1),float2(0,-1),float2(1,-1), float2(-1,0),float2(0,0),float2(1,0), float2(-1,1),float2(0,1),float2(1,1),}; float2 Edge=0; for(int i=0;i<9 ;i++) { Edge+=Sampler[i]*dot(SceneTextureLookup(UV+UVOffset[i]*SceneTexSize*OutLineSize,14,false).xyz,w); } //最后的length可以改成1-abs(Edge.x)-abs(Edge.y),这样可以减少运算量 return lerp( SceneTextureLookup(UV,14,false),OutLineColor,length(Edge));
马赛克
//input BaseUV 屏幕UV //intput Tiling //input Ratio //input NotUse float2 UV=BaseUV; UV*=Tiling; UV.y*=Ratio; UV=ceil(UV); UV/=Tiling; UV.y/=Ratio; return SceneTextureLookup(UV,14,false);
(完)