【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;
           }

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...