全息投影特效制作详解

news/2024/10/28 22:30:20/

全息投影制作详解

在这里插入图片描述

实现原理:

1.使用聚光灯的光强值切换模型的显示和消失,当光衰减为0时,模型完全可见,当光衰减为100%时,模型完全消失,光衰减值在0到100%间,则呈现模型渐变显示或消失。
2.使用双Pass处理半透明模型穿插的问题。
3.通过偏移屏幕的Y坐标来做噪波纹理的UV动画,模拟全息投影屏上的噪波效果(类似于电视机屏幕上的噪点和上下滚动的横条纹)。
4.使用菲尼尔制作模型边缘的流光效果。

算法详解:

1.聚光灯的衰减
在这里插入图片描述
WorldSpaceLightPos向量是float4类型数据,XYZ是光向量3个轴坐标,W是光源类型,0是平行光,1是点光源或者聚光灯,这里WorldSpaceLightPos节点的Type即为W分量。我们这里是用的聚光灯,所以Type等于1,1和衰减的乘积还是衰减本身,在经过Smoothstep的灰度遮罩处理,得到了一个光强衰减遮罩(衰减值其实是利用的灯光衰减贴图来模拟的,并非实时灯光衰减,从下面代码中可以很直观的看到底层的操作)。
代码中,由于聚光灯只能在前向叠加Pass(ForwardAdd)拿到衰减值(这和前向渲染规则有关),所以利用前向渲染的双Pass,刚好又可以同时处理半透模型穿插的问题(双Pass处理半透模型在第2条说明)。ForwardAdd的Pass中的灯光衰减判断代码如下:
在这里插入图片描述

2.双Pass解决半透模型穿插
造成半透明模型穿插的原因是:半透明必须关闭深度写入,所以对于一个结构复杂有前后穿插的模型来说,关闭深度写入意味着模型内部顶点的深度错乱。
解决办法:第一个pass写入深度,但不输出颜色。第二个Pass关闭深度写入,做半透明混合输出颜色。
ASE中双Pass步骤:
(1)新建一个shader,修改其Pass选项卡,如图
在这里插入图片描述
(2)取名,如图
在这里插入图片描述
(3)第二个Pass中调用,注意调用的路径和名字一定要正确
在这里插入图片描述
代码写法:

在这里插入图片描述
3.屏幕上滚动的横条纹算法
在这里插入图片描述
(1)屏幕Y坐标随时间偏移
这里的屏幕Y坐标按照常理来说是应该做齐次除法(除以W值)来得到真正的Y值的,但是因为图像连续且循环,所以并不一定要得到正确的Y坐标,因此直接传入Y坐标可以省去齐次除法的计算。
(2)横条纹算法
Tau是2PI的常量值,2PI为正弦函数的一个循环,即一白一黑循环滚动(1到-1,-1到1循环),所以乘以一个lineAmount标量可以控制条纹数量,最后用SmoothStep控制遮罩形状。
对应代码:
在这里插入图片描述
代码里是做了齐次除法的,出来效果一样,这也印证了上面的结论。

4.雪花点噪波算法
噪波纹理很多算法可以在网上找到,这里提供一个网址,有很多程序纹理算法源代码。
程序纹理地址https://docs.unity3d.com/Packages/com.unity.shadergraph@5.10/manual/Procedural-Nodes.html
当然了如果有些朋友觉得代码麻烦,也可以直接用贴图采样(我觉得贴图麻烦,哈哈),效果是一样的,但是程序贴图会省很多资源。直接上算法代码:
在这里插入图片描述

5.菲涅尔反射
老生常谈的菲涅尔,想必大家已经烂熟于心了吧,求模型边缘遮罩算法的一剂老中药,套公式,直接盘它。
在这里插入图片描述
代码:
在这里插入图片描述

最后我们将上述效果混合在一起就得到了最终的全息投影效果。


http://www.ppmy.cn/news/288551.html

相关文章

Vue 3 安装及环境配置

1.安装 Node.js Node.js 官网:Download | Node.js 点击下载后 点击安装,安装路径按需 安装完成后如图所示 安装成功后在 CMD 控制台输入 node -v 和 npm -v 验证是否安装成功 node -v npm -v 2.配置默认安装目录和缓存日志目录 创建默认安装目录和缓存…

十大炒股杠杆平台到底有哪些交易模式?

很多杠杆交易者在面对交易进展的时候,特别需要注意的就是了解清楚杠杆平台的交易模式,小编将交易模式总结为两种,当然十大炒股杠杆平台也可能还有其他新的方式,不过大家应该都了解过杠杆炒股做t,实际就是从t来延伸的&a…

炒股经常用到的几个工具网站

俗话说,工欲善其事,必先利其器。想在这个坑爹的金融市场寻找致富的圣杯,除了掌握基础的金融知识外,你还需要一些掘金取宝的武器装备---金融资讯网站或者软件。我在每天的夜报里都会列举一些数据,很多朋友都问我数据来源…

买入必涨选股公式

N 1 100 43 M 1 150 90 MA111:MA(CLOSE,20); MA112:MA(CLOSE,40); MA113:MA(CLOSE,60); MA13:MA(C,13); MA34:MA(C,34); MA55:MA(C,55); 角度MA13:ATAN((MA13/REF(MA13,1)-1)*100)*180/3.1416; 角度MA34:ATAN((MA34/REF(MA34,1)-1)*100)*180/3.1416; 角度MA55:ATAN((MA55/REF(M…

A股量化股票软件可以支持哪些分析功能?

对于普通投资者来说,研究股票的时间和精力是有限的,很难像专业投资者那样有专门的时间研究股票投资,导致他们经常成被主力割韭菜的对象。 幸运的是,随着技术的进步,越来越多的股票量化分析软件出现了。借助这些量化软件…

选股公式 成功率测试 软件,通达信股票软件选股公式,99%的成功率,你还等什么?...

工具:通达信金融终端 使用方法: 1、通达信软件界面 2、点击“功能”“公式系统”“公式管理器”“条件选股公式”“其他类型”,点击新建 3、使用选股公式,点击ctrlt,弹出条件选股窗口 4、选中公式,点击加入…

六一儿童节-王者连连看

庆祝六一 用java实现的连连看练手小游戏 王者连连看 🤣 游戏介绍😜 核心😮‍💨总结: 🤣 游戏介绍 王者连连看游戏的目标是通过消除相同的图案来得分并进入更高级别的挑战。   游戏分为四个难度   可以自…

cpp: Visitor Pattern

/*****************************************************************//*** \file Gold.h* \brief 访问者模式 Visitor Pattern C 14 行为模式* 2023年6月8日 涂聚文 Geovin Du Visual Studio 2022 edit.文章来源《C新经典设计模式》 王健伟编著 清华大学出版社* \author…