Unity透视镜透视效果——Shader

news2024/11/25 11:09:09

一、效果示意图

请添加图片描述

二、透视的过程

要看的效果:【相机】借助【球体】,透过【圆柱】看到【红色的方块】
在这里插入图片描述
请添加图片描述

三、实现原理-Shader

借助shader,两个挂有特殊shader的物体,当他们在视线里重叠的时候,重叠的部分变成透明。

shder清单见附录部分

(1)透镜的shader设置

在这里插入图片描述

(2)障碍物的shader设置

在这里插入图片描述

四、附录-shader清单

(1)透镜挂在的shader

Shader "Custom/MaskShader4"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Color", Color) = (1,1,1,1)  // 添加颜色属性
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" "Queue"="Geometry-1" }
        ColorMask 0
        ZWrite Off
        
        Stencil
        {
            Ref 1
            Comp Always
            Pass Replace
        }
        CGPROGRAM
        #pragma surface surf Lambert alpha

        sampler2D _MainTex;
        fixed4 _Color;  // 声明颜色变量

        struct Input
        {
            float2 uv_MainTex;
        };

        void surf (Input IN, inout SurfaceOutput o)
        {
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;  // 应用颜色
            o.Albedo = c.rgb;
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

(2)障碍物挂在的shader

Shader "Custom/MaskedObjectShader4"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _Color ("Color", Color) = (1,1,1,1)  // 添加颜色属性
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" "Queue"="Geometry" }
        
        Stencil
        {
            Ref 1
            Comp NotEqual
            Pass Keep
        }

        CGPROGRAM
        #pragma surface surf Lambert

        sampler2D _MainTex;
        fixed4 _Color;  // 声明颜色变量

        struct Input
        {
            float2 uv_MainTex;
        };

        void surf (Input IN, inout SurfaceOutput o)
        {
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;  // 应用颜色
            o.Albedo = c.rgb;
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

五、鸣谢

感谢chatGpt公公和Claude婆婆的慷慨大方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2045312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android NDK开发入门

目录 1. 创建 C 代码2. 定义 JNI 接口3. 在 Java 中声明本地方法4. 创建 CMakeLists.txt 文件5. 配置 build.gradle6. 编译和运行7.项目结构8.总结 在 Android 开发中,编写 JNI (Java Native Interface) 接口使得应用层能够调用 C 代码,涉及到几个步骤&a…

光流运动估计教程

文章目录 概要什么是光流?稀疏光流与密集光流实现稀疏光流1. 设置环境2.配置OpenCV读取视频并设置参数3. Grayscaling 3. 灰度化4. Shi-Tomasi 角点检测器 – 选择要跟踪的像素5. Lucas-Kanade:稀疏光流6. 可视化实现密集光流1. 设置环境2. 配置 OpenCV 读取视频3. 灰度4. Fa…

从力扣中等+困难题+表白HTML测试 -- 文心快码(Baidu Comate)

0 写在前面 官网地址:Baidu Comate Step1 打开文心快码(Baidu Comate)官网,点击「免费使用」/「下载安装」 Step2 可以根据官网步骤快速唤起VS Code; 也可以直接在VS Code、Visual Studio扩展管理搜索“文心快码”/…

Xshell 连接服务器

Xshell 连接服务器 安装 Xshell7 天免费试用永久免费试用 连接服务器 安装 Xshell 双击运行安装程序 点击 下一步 同意用户协议, 点击下一步 选择安装位置, 点击下一步 设置程序文件夹名, 点击安装 等待软件安装完毕 ## 软件激活 7 天免费试…

怎样在线免费音频转文字?放心交给这4款音频转文字能手

从会议记录到个人笔记,从播客到讲座录音,大家是否有考虑过如何将这些宝贵的音频信息快速转化为文字,以便更好地保存、分享和分析呢?其实我这倒是有一个不错的解决方案,那便是利用音频转文字软件免费来进行转换~ 想知道…

安全课堂开课了,不容小觑的暗水印来啦!数据防泄密管理新趋势——添加暗水印!

数据泄露的风险日益加剧,为了有效保护企业的敏感信息,防止数据被非法复制、传播或泄露,一种名为“暗水印”的技术逐渐走进了企业的视野,并成为了数据防泄密管理的新趋势。 今天,我们就来深入探讨一下这一不容忽视的技…

BurpSuite

如果只能用一个Web渗透工具,我选BurpSuite。 Web应用程序(Web Application) 不同于传统的静态网站所有程序的特点是接收、处理用户输入并返回结果服务器端是个程序,需要程序代码实现业务功能(java、php、asp.nse&…

智慧社区新视界:EasyCVR视频汇聚平台下的数字化治理实践

在当今科技飞速发展的时代,“数字城市智慧社区”这个概念正逐渐走进我们的生活。那么,数字城市智慧社区到底是什么样子的呢? 随着城市化的不断推进,数字城市建设已成为提升城市管理效率、改善居民生活质量的重要手段。智慧社区作…

简单回归模型建立(下)

目录 数据准备 特征选择 目标变量 模型选择 示例代码 ​编辑分析结果 上部分对数据进行了分析以及可视化 选择不同的目标变量,例如“Cost of Living Index”作为我们要预测的目标。然后,我们可以使用其他相关的指标作为特征来训练模型。例如&…

邮件系统安全管家:CACTER SMC2的全面升级

根据Coremail邮件安全人工智能实验室监测,2024年Q2全国企业级用户遭受超过21.4亿次暴力破解,相比于Q1的39.1亿次暴力破解,环比降幅约为45%,无差别的暴力破解攻击大幅下降,但数据显示暴力破解攻击成功次数正在回升。 20…

搭配Intel第13代酷睿处理器

高性能内存硬盘这么买 intel第13代酷睿已经于2022年10月底正式上市。相比于第12代酷睿性能大涨,内置20条PCle通道(16条PCle 5.0和4条PCle 4.0)、可最多支持128GB DDR5 5600/DDR4 3200双通道内存,搭配Z790系列主板组建高端性能平台,满足未来设计、游戏、专业应用等需求。如…

Web前端开发【新手入门指南】

Web前端开发入行门槛低、薪资高,是互联网行业的紧俏岗位之一。 目前Web前端开发人员年薪基本都在10万以上,一线城市的薪资会更高,这也吸引了很多人进入Web前端行业。对于完全不了解行业的人来说,他们对Web前端知之甚少。下面小菌…

怎么去掉U盘的写保护

要去除U盘的写保护,可以尝试以下几种方法: 检查U盘的物理写保护开关:部分U盘具有物理写保护开关,如果开关被切换到写保护状态,U盘就会被写保护。找到并关闭这个开关即可使用DiskPart命令:通过命令提示符工…

【C++11】右值引用的深度解析(什么是右值引用?它有什么作用?能应用在那些场景?)

目录 一、前言 二 、什么是左值什么是右值? 🔥左值🔥 🔥右值 🔥 三、什么是右值引用? 💧左右引用的“引出”💧 💧左值引用 💧 💧右值引用…

C# 不一样的洗牌算法---Simd指令

洗牌算法&#xff0c;以随机打乱数组中元素的位置 测试数据创建 int[] _data; Random rng new Random(); protected override void CreateData() {_data new int[_size];for (int i 0; i < _data.Length; i){_data[i] i;} } 普通打乱数组元素位置 protected overrid…

VBA学习(27):在筛选数据中复制可见单元格

在筛选数据中复制数据时&#xff0c;可以按原结构粘贴所复制的数据。具体如下文&#xff1a; 下图所示为示例数据。 我们对列C进行筛选&#xff0c;如下图所示 复制单元格区域B2:B10&#xff0c;然后粘贴到以单元格E2开始的区域&#xff0c;结果如下图所示。正如所见&#xff…

LLM之RLHF:Karpathy视角来对比RLHF技术和RL技术—RLHF is just barely RL(RLHF只是勉强算作强化学习)

LLM之RLHF&#xff1a;Karpathy视角来对比RLHF技术和RL技术—RLHF is just barely RL(RLHF只是勉强算作强化学习) 导读&#xff1a;2024年8月8日&#xff0c;Karpathy发表了一个有意思的观点&#xff0c;RLHF is just barely RL. 强化学习从人类反馈(RLHF)训练方法只是勉强属于…

怎么将音乐转为mp3格式?7种简单的手机音频转换方法!

怎么将音乐转为mp3格式&#xff1f; mp3是一种运用比较广泛的格式&#xff0c;几乎所有的音频设备、播放器和操作系统都可以播放MP3音乐。如果你的音频文件不是mp3格式&#xff0c;那么可以通过专业的mp3格式转换器进行转换。这样就不会出现格式不兼容&#xff0c;无法正常使用…

第四范式发布AI+5G视频营销产品 助力精准获客与高效转化

产品上新 Product Release 今天&#xff0c;第四范式AI5G视频电话互动营销产品全新发布。 相较于以往销效率低、互动差、转化差的传统电话外呼和短信营销方式&#xff0c;视频电话互动营销基于AI、5G等技术&#xff0c;可让用户接听电话时观看个性化视频广告并实时互动&#xf…

Fortify三种扫描模式有什么区别?分别怎么用?

一、通过“Audit Workbench”进行测试 “Audit Workbench”支持Java语言源代码的测试。 二、通过“Scan Wizard”进行测试 “Scan Wizard”支持Java、Python、C/C、.Net、Go、PHP、Flex、Action Script、HTML、XML、JavaScript、TypeScript、Kotlin、SQL、ABAP、ColdFusion语言…