在某些层面能替代PBR的次世代渲染方案。
效果
动图
视频
https://www.bilibili.com/video/BV1B64y147xc
视频预览
实现
实现原理是,用一张特制的纹理图(采样出来的纹理),加上一段shader代码(法向量映射纹理),模拟出次世代的效果(场景中无需光照)。
代码
参考 https://github.com/nidorx/matcaps 中的核心代码,在 Cocos Creator 3.1.0
中实现的effect
代码如下。
CCEffect %{
techniques:
- name: opaque
passes:
- vert: unlit-vs:vert # builtin header
frag: unlit-fs:frag
properties: &props
mainTexture: { value: white }
- name: transparent
passes:
- vert: unlit-vs:ver