基于CUBEmap的折射效果,本质上物体还是不透明的实体.只是在映射CUBEmap时,加入一个折射比的计算.对cubemap映射到物体上的效果做一个折射扭曲算法.并不是通常意义上的光穿过透明物体后产生的折射效果.
当折射比为1时,就是无折射效果,模拟一个透明的物体.但如果场景中有个其他物体,产生了遮挡深度关系.那么这个效果就非常的假了,引申下,如果实时抓取环境效果,比如利用反射探针,那么应该会有可以接受的美术表现.
Shader"wx/Refraction"{
Properties{
_Color("Color Tint",Color)=(1,1,1,1)
_RefractColor("Refraction Color",Color)=(1,1,1,1)
_RefractAmount("Refraction Amount",Range(0,1))=1
_RefractRatio("Refraction Ratio",Range(0.1,1))=0.5
_Cubemap("Refraction Cubemap",Cube)="_Skybox"{}
}
SubShader {
Pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Lighting.cginc"