Unity3D Shader 使指定颜色过滤成透明

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

该Shader能够实现以下效果:
绿板过滤,将视频的某颜色过滤成透明,甚至你们可以以该代码为前提去实现各种颜色方面的效果实现。

Shader "MyShader/FilterfColor" { 
    Properties { 
        _MainTex ("Base (RGB)", 2D) = "white" {} 
        _FilterfColor("Ridof (RGB)",Color)=(1,1,1,1) 
    } 
    SubShader { 
        Tags { "RenderType"="Opaque" } 
        Blend SrcAlpha OneMinusSrcAlpha 
        pass 
        { 
            CGPROGRAM 

            #pragma vertex vertext_convert
            #pragma fragment fragment_convert
            #include "UnityCG.cginc" 

            sampler2D  _MainTex; 
            sampler2D  _MainTex1; 
            float4  _FilterfColor; 
            struct Inputvrite 
            { 
                float4 vertex : POSITION; 
                float4 texcoord : TEXCOORD0; 
            }; 
            struct Inputfragment 
            { 
                float4 pos : SV_POSITION; 
                float4 uv : TEXCOORD0; 
            }; 

            float ColorLerp(float3 tmp_nowcolor,float3 tmp_FilterfColor) 
            { 
                float3 dis = float3(abs(tmp_nowcolor.x - tmp_FilterfColor.x),abs(tmp_nowcolor.y - tmp_FilterfColor.y),abs(tmp_nowcolor.z - tmp_FilterfColor.z)); 
                float dis0 =sqrt(pow(dis.x,2)+pow(dis.y,2)+pow(dis.z,2)); 
                float maxdis = sqrt(3); 
                float dis1 = lerp(0,maxdis,dis0); 
                return dis1; 
            } 

            Inputfragment vertext_convert(Inputvrite i) 
            { 
                Inputfragment o; 
                o.pos = mul(UNITY_MATRIX_MVP,i.vertex); 
                o.uv = float4(i.texcoord.xy,1,1); 
                return o; 
            } 

            float4 fragment_convert(Inputfragment o) : COLOR 
            { 
                float4 c = tex2D(_MainTex,o.uv); 
                c.a *=ColorLerp(c.rgb,_FilterfColor.rgb); 
                return c; 
            } 


        ENDCG 
        } 
    } 
    FallBack "Diffuse" 
}
unity地面添加材质球_为Unity3D创建素材(1):图片、着色器、材质球 图片Unity3D支持使用大部分位图格式作为图片素材,甚至包括带图层和图层效果的.psd格式文件。但在实际使用中,并不推荐直接使用非通用的文件格式。这是因为对于任何格式的图片素材,Unity3D在导入时都会自动执行一个转换过程,如果面对的是非通用格式,则会调用相应的第三方软件功能来执行转换,所以实际转换过程会比较慢,而且有些特殊文件格式,如果没有安装对应的软件,甚至根本不能识别。因此,推荐先使用P... 阅读详情

相关推荐

Unity透明视频播放全攻略:从WebM编码到多平台渲染实战

视频编码中的Alpha通道是实现透明效果的核心技术,它通过在RGB色彩信息基础上增加透明度信息,使像素能够呈现半透明或完全透明状态。其原理在于编码格式对RGBA四通道数据的支持,这直接决定了视频能否在渲染时保留透明信息。在Unity等实时渲染引擎中,透明视频的技术价值在于实现动态UI特效、AR场景融合、动态Logo等高级视觉效果,极大提升了应用的视觉表现力与沉浸感。应用场景广泛覆盖游戏开发、移动应用、广告传媒及虚拟现实等领域。本文聚焦Unity平台,深入解析如何通过VP9编码的WebM格式实现透明视频播放,

weixin_30633405的博客 385

Unity播放带透明通道视频

视频需要带黑白通道,用shader处理通道叠加,实现视频透明。发挥一下可运用于模仿增强现实的功能。

Unity Android透明背景实现:从原理到兼容性实战指南

在移动应用开发中,实现透明或半透明界面是创建沉浸式用户体验、AR应用和系统级悬浮工具的关键技术。其核心原理涉及图形渲染管线的Alpha通道处理与操作系统窗口管理机制的协同工作。通过合理配置渲染目标的透明度和窗口属性,开发者可以让应用内容与设备桌面或其他应用界面无缝融合,从而提升视觉表现力和交互灵活性。这一技术在Unity引擎与Android平台的结合中尤为重要,能够支持创建从AR背景抠除到灵动岛式悬浮组件的多样化应用场景。本文聚焦于Unity Android透明背景的实现,深入探讨了OpenGL ES图形A

weixin_33691817的博客 516

【猫猫的Unity Shader之旅】之混合效果

【猫猫的Unity Shader之旅】之混合效果博文用到的工程

unity 过滤UI纯色背景

unity 过滤UI纯色背景

weixin_41798071的博客 982

UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

【代码】UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

LST329的博客 2775

Unity Shaders】使用Unity Render Textures实现画面特效——画面特效中的类似Photoshop的基本混合模式...

本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓展。这里是本书所有的插图。这里是本书所需的代码和资源(当然你也可以从官网下载)。========================================== 分割线==========================================写在...

weixin_33786077的博客 645

Unity中如何修改Sprite的渲染网格

记录Unity中修改Sprite渲染网格

weixin_50702814的博客 711

[GUI] 图片背景是黑色的,在unity中怎么变透明

1. 导入图片,texture type为Texture,勾选上Alpha from GrayScale,Alpha Is Transparent 2. 创建一个Material, Shader选为Standard,它的Rendering Mode为Transparent, 把刚才的图片拖给Albedo。 3. 使用这个Material。

RainsSoft 2万+

Unity3d Shader篇(十二)— 透明度测试(AlphaTest)

在计算机图形学中,透明度测试(Alpha Test)是一种常用的技术,用于在渲染过程中根据像素的Alpha值进行裁剪或者过滤。通过透明度测试,可以实现在渲染物体时只显示符合一定透明度要求的像素,从而达到特定的视觉效果。本篇博客将介绍透明度测试在Shader中的应用。透明度测试是一种在渲染过程中根据像素的Alpha值进行裁剪或过滤的技术。在渲染物体时,每个像素都有一个Alpha值,用来表示其透明度。透明度测试通过比较像素的Alpha值与设定的阈值,来决定是否保留该像素或者丢弃该像素。

脚踏实地,实事求是。 2969

【转载】Unity3D导入图片属性信息和默认shader介绍

本篇博文转载自:https://www.jianshu.com/p/e2aa4d898fb7 作者:shimmery 图片 Unity3D支持使用大部分位图格式作为图片素材,甚至包括带图层和图层效果的.psd格式文件。 但在实际使用中,并不推荐直接使用非通用的文件格式。这是因为对于任何格式的图片素材,Unity3D在导入时都会自动执行一个转换过程,如果面对的是非通用格式,则会调用相应的第...

孙君的空间站 2416

Unity3D-Shader-人物残影效果

【旧博客转移 -2016年1月7日 00:24】 前面的话 上一篇讲了一下人物边缘发光效果,链接:Unity-ShaderLab-实现X光效果,这次我们利用这个Shader来实现人物残影效果 先来看一下效果 →_→ 大概的原理 创建残影:拷贝人物当前Mesh数据作为残影,用MeshFilter+MeshRenderer渲染出来 残影有生命周期、创建间隔:...

1135

Unity3D Android透明背景实现全攻略:从原理到实战避坑指南

在移动应用开发中,实现透明背景是构建沉浸式AR应用、悬浮窗口和动态桌面组件的关键技术需求。其核心原理涉及图形渲染管线的Alpha通道处理与Android窗口系统的图层合机制。Unity引擎默认使用高性能的SurfaceView进行渲染,但其不透明特性会导致透明像素被忽略,因此需要切换至支持透明的TextureView或配置SurfaceView的透明属性。这一技术调整对于实现应用与系统UI的无缝融合、打造无边框视觉体验具有重要工程价值。在实际开发场景中,开发者常遇到背景变黑、性能下降或设备兼容性问题,这通

weixin_33901926的博客 384

Unity3d Shader篇(七)— 纹理采样

纹理采样是一种常用的图形学技术,它可以让我们在渲染物体表面时,使用一张图片来提供颜色信息,从而增强物体的细节和真实感 纹理采样,就是通过 uv 获取贴图对应位置的颜色。uv 是一种二维坐标系,它的取值范围是 [0,1],表示了贴图上的相对位置。例如,uv 值是 (0.5,0.5),此时采样到的就是贴图中心点的颜色值。

脚踏实地,实事求是。 3324

【贪玩巴斯】Unity3D初学圣经(三)—— unity中的基础概念——scene场景,component组件,assets文件夹和Material材质,Mesh Renderer与shader

【贪玩巴斯】Unity3D初学圣经 三—— unity中的基础概念——scene场景,component组件与assets文件夹和Material材质以及Mesh Renderer 和 shader 全解 「1-8 到 2-3」—— 2022年1月23日本文对应视频P8 1-8 到P7 1-7对应视频1-8unity中的基础概念1.坐标2.scene场景3.游戏对象 Gameobject4.组件 Component5.相应的练习6.小回顾对应视频2-17. Assets文件夹对应视频2-28.材质 Ma

D16100的博客 4055

Unity3D游戏对象显示层级控制:从渲染队列到排序层的完整指南

在3D图形渲染中,渲染顺序是决定物体遮挡关系和视觉表现的核心机制。其原理基于深度缓冲(Z-Buffer)和透明混合算法,不透明物体利用深度测试实现高效渲染,而透明物体则必须按从后往前的顺序进行混合。这一技术对于保证渲染正确性和提升视觉效果至关重要,尤其在游戏开发、AR/VR应用和工业可视化等场景中。通过合理设置渲染队列、排序层和摄像机遮罩,开发者可以精确控制游戏对象的显示层级,有效解决模型穿插、粒子特效叠加和UI整合等问题。本文结合solidworks模型导入unity3dunity3d平台ar与vr开发

weixin_34059951的博客 281

透明效果(八)--模板测试实现透明效果

【本系列文章系学习 唐福幸《Unity ShaderLab 新手宝典》的笔记,包含个人理解,如有错误欢迎批评指出 透明效果7.5 模板测试 一句话总结: 7.5 模板测试

weixin_43598617的博客 434

Unity3D消除视频绿幕

PS:本文首发于简书,系本人文章,再在CSDN发布。 以前主管就告诉我们,做一个专门的技术博客,对以后长有很大帮助,但是一直没有去做,工作一年,知识杂且乱,感觉收获不大,决定从写技术博客开始。 最近因工作原因,需要用unity实现 播放 消除 了 绿幕的视频。 首先从游戏蛮牛里面找到一个相关的文章,从文章中,大致了解到,可以使用shader来进行绿幕消除,但是CG语言小弟以前从

an050602的博客 3751
上一篇: H5 实现酷炫水滴效果
下一篇: Unity高光着色器在Editor中显示正常,andorid中出现曝光问题
macjeson
博客等级 码龄12年 2粉丝 7原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值