工程放在:https://github.com/aceyan/UnityEffects 使用unity5.4
场景是Scene/(2)ProjectorShadow
实现的原理和shadowMap差不多,只不过不生成深度图,而是使用replaceShader生成一张“轮廓”图,使用untiy自带的Projector组件投影到场景中,在shader中计算从而生成阴影效果。使用replaceShader是为了避免渲染“轮廓”图的时候还是用原来复杂的shader,照成不必要的性能浪费。替换后我们只输出纯色(方便测试)或者alpha值到“轮廓”图。
用unity camera 得到rendertexture,然后用project把rendertexture投影到场景