【Shader/简单/unity】面片图案消隐/FaceFade

面片图案消隐/FaceFade


== 仅供学习、笔记积累之用 ,如有错误望指正==

前言

效果:面片随着视线角度增大图案会被消隐,类似光栅立体卡片的效果。
本篇介绍实现方式的一种。

在这里插入图片描述

原理

类似视差映射的其中一步。这里把切线空间的视线的z分量作为fade的控制量。在切线空间中,z轴与表面normal对齐,当视线与平面平行时,视线的z值接近0,相互垂直时接近1。

实现

           real4 frag(v2f i) : SV_TARGET
           {
                real4 col = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
                //=====> Mask <=====//
                float3 ViewDirW = normalize(_WorldSpaceCameraPos.xyz - i.posW);
                float3 NormalW = i.normalW;
                float3 BinormW = i.binormW;
                float3 TangentW = i.tangentW;
                float3x3 TBN = float3x3(TangentW, BinormW, NormalW);
                float3 ViewDirT = normalize(mul(ViewDirW, TBN));
                float fade_mask =pow(max(ViewDirT.z,0),_FadeRange);

                col = lerp(_BaseColor, col, fade_mask);
                return col;
           }

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...