序:上篇详细介绍了PBR(PBS),今天讲一下MatCap。PBR虽然渲染效果真实,但是性能要求较高。尤其是在移动平台,计算能力有限,采用MatCap思想的Shader,用较低的计算成本,就可以达到类似PBR一样真实的渲染效果,可谓是在移动平台实现次时代渲染效果的一种优秀解决方案。(上个星期买了行李架去装了一下,本来以为很简单,螺丝固定一下就好了,结果找店里的人装了一下午,而且还把车划了。。。还没装好,塑胶垫不是很齐,贼气。所以这种安装的大家一定得找个装过的,会装的大一点的店面去装,网上指定的店都装成这样子。。。与文无关。。。)
MatCap (Material Capture):材质捕获, 使用特定材质球的贴图,作为当前材质的视图空间环境贴图,从而实现具有均匀表面着色的反射材质物体的显示。
优点:不用提供光照,只要一张或多张MatCap贴图作为光照结果就好。
缺点:不适合相机频繁旋转和角度调节。需要结合一些光照交互,才能弥补不足,比如结合一个光照反射的Reflection Cube Map。
MatCap + CubeMap 的实现:
Shader "Custom/MatCap" {
Properties
{
_MainColor("Main Color", Color) = (1.0, 1.0, 1.0, 1.0)
_DetailColor("Detail Color", Color) = (1.0, 1.0, 1.0, 1.0)
_DetailTex("Detail Texture", 2D) = "white" {}
_DetailTexDepthOffset("Detail Tex Depth Offset", Float) = 1.0
_DiffuseColor("Diffuse Color", Color) = (0.0, 0.0, 0.0, 0.0)
_DiffuseTex("Diffuse Texture", 2D) = "white" {}
_MatCap("Mat Cap", 2D) = "white" {}
_ReflectionColor("Reflection Color", Color) = (0.2, 0.2, 0.2, 1.0)
_ReflectionMap("Reflec