新闻详情

新闻详情

首页 / 资讯中心 / 详情

【unity shader】误打误撞做出来了一个简单全息投影shader。。。

发布时间:2026/9/2 13:31:38来源:尧图网络
【unity shader】误打误撞做出来了一个简单全息投影shader。。。
(提示:只看代码请跳过这里)情况是这样的。。。在学习一位大佬的全息shader时出了意外大佬文章链接,作者:晨蓝fk就算是将代码全部复制过来,也无法复原大佬原文图里的效果。查了一下资料,可能是因为没有对ComputeScreenPos()函数返回值的结果做齐次除法运算?(该函数返回的结果是屏幕空间下顶点的齐次坐标,需要除以w分量或用tex2Dproj函数来采样纹理)尝试的结果要么扫描线不动要么扫描线移动方式很奇怪(如图)因为扫描线的原理主要依靠采样纹理后的结果做一次片元剔除,再加上没有原博主的纹理图我无法确定原文的纹理采样结果,就会剔除掉不应该剔除的片元。同时,扫描线的流向和粗细也不好控制,以飞机模型为例,虽然都是y轴上从低到高,但从头看和从飞机顶上向下看扫描线流向是不一样的(因为原文是计算模型顶点在屏幕空间的位置,流向会随着视角的改变而发生改变,尽管代码上都是uv.y值升高)就这样改了半天,最后发觉直接放弃在屏幕空间计算顶点的思路,改用模型UV来实现的效果。。。居然还可以?正文开始OK,将思路改为用模型UV采样动画纹理上代码!Shader"Unlit/HolographicShader"{Properties{_MainTex("Texture",2D)="white"{}_LightTex("全息贴图",2D)="white"{}_NoiseTex("噪音贴图",2D)="white"{}[HDR]_Color("主颜色",Color)=(1,1,1,1)[HDR]_RimColor("边缘光",Color)=(1,1,1,1)_Alpha("透明度",Range(0,1))=0_Speed("扫描线速度",Range(0,15))=1_RandomSpeed("闪一闪的速度",float)=1_CutOut("阙值",Range(0,1.1))=0.1}SubShader{Tags{"RenderType"="Transparent""Queue"="Transparent""IgnoreProjector"="true"}//这个Pass只负责深度写入,看过冯乐乐的《入门精要》就明白//如果没有单独的深度写入就会让渲染出来的模型顶点前后顺序出错Pass{ZWriteonColorMask0}Pass{ZWrite off Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM#pragmavertex vert#pragmafragment frag#include"UnityCG.cginc"structa2v{float4vertex:POSITION;float3normal:NORMAL;float2uv:TEXCOORD0;};structv2f{float2uv:TEXCOORD0;float3worldPos:TEXCOORD1;float3worldNormal:TEXCOORD2;float4vertex:SV_POSITION;};sampler2D_MainTex;float4_MainTex_ST;sampler2D_LightTex;float4_LightTex_ST;sampler2D_NoiseTex;float4_NoiseTex_ST;fixed4_Color;fixed4_RimColor;half_Alpha;half_Speed;half_RandomSpeed;half_CutOut;//顶点着色器部分没什么新鲜事v2fvert(a2vv){v2fo;o.vertex=UnityObjectToClipPos(v.
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

航拍图像序列拼接实战:从特征提取到全景图融合的完整技术链 2026/9/2 14:28:50

航拍图像序列拼接实战:从特征提取到全景图融合的完整技术链

简介:面向航拍图像序列拼接需求者,这份代码提供基于递归分组策略的C实现,适用于测绘、环境监测等无人机影像处理场景。算法刻意避开光束平差等高计算量步骤,通过分块、逐层拼接降低复杂度,并针对NPU硬件做优化&#xf…

阅读更多 →
Muse Spark与Apache Spark区别:AI编程助手如何提升大数据开发效率 2026/9/2 14:28:50

Muse Spark与Apache Spark区别:AI编程助手如何提升大数据开发效率

Muse Spark 周榜冲入前三,这个消息在开发者圈子里传播得很快。作为一个长期关注 AI 编程工具的人,我的第一反应是:这已经不是“AI 能不能写代码”的问题了,而是“AI 编程助手已经进入了拼版本、拼体验、拼场景深度”的新阶段。 但…

阅读更多 →
Qdrant向量数据库实战指南:RAG检索不准怎么破,如何落地生产级集群 2026/9/2 14:28:50

Qdrant向量数据库实战指南:RAG检索不准怎么破,如何落地生产级集群

Qdrant向量数据库实战指南:RAG检索不准怎么破,如何落地生产级集群 【免费下载链接】qdrant Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://…

阅读更多 →
免费开源的 Czkawka 磁盘清理指南:14 种扫描一次找出重复文件、相似图片和空文件夹 2026/9/2 14:28:50

免费开源的 Czkawka 磁盘清理指南:14 种扫描一次找出重复文件、相似图片和空文件夹

免费开源的 Czkawka 磁盘清理指南:14 种扫描一次找出重复文件、相似图片和空文件夹 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka Czk…

阅读更多 →
如何上手 Ryujinx Switch 模拟器:在 PC 上运行 Switch 游戏 2026/9/2 14:28:50

如何上手 Ryujinx Switch 模拟器:在 PC 上运行 Switch 游戏

如何上手 Ryujinx Switch 模拟器:在 PC 上运行 Switch 游戏 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx(Switch 模拟器)是一个用 C# 编写…

阅读更多 →
写论文软件哪个好?避开通用AI大坑,云智变AI才是毕业论文专属刚需工具 2026/9/2 14:25:46

写论文软件哪个好?避开通用AI大坑,云智变AI才是毕业论文专属刚需工具

每到毕业季,几乎所有大学生都会纠结同一个问题:写论文软件哪个好。打开网络搜索,五花八门的AI写作工具层出不穷,有的主打极速出稿,有的主打免费生成,很多同学跟风试用后,最终只剩满盘皆输的挫败…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞