基本思路:unity有一种很容易实现光影效果的神器,那就是unity自带的projector。 首先需要用到两张贴图: 一张投影需要的光圈贴图,如下: 一张根据远近距离显示暗淡的贴图(左至右,白渐变黑),如下: 主要用到两个参数:_Projector 和 _ProjectorClip mul(_Projector, vertex):用于计算要投影的图片正确的显示到场景上接受投影的位置 mul(_ProjectorClip, vertex)://用于计算投影位置和投影器之间的距离 1 Shader "xj/ModelEffect/ProjectorLight" { 2 Properties { 3 _Color ("Main Color", Color) = (1,1,1,1) 4 _ShadowTex ("Cookie", 2D) = "" {} 5 _FalloffTex ("FallOff", 2D) = "" {} 6 _intensity ("Intensity", float) = 1.0 7 } 8 9 Subshader { 10 Tags {"Queue"="Transparent"} 11 Fog {Mode Off} 12 13 Pass { 14 ZWrite Off 15 //Fog { Color (0, 0, 0) } 16 ColorMask RGB