UnityShaderLab 实现黑白着色器效果

实现思路:取屏幕像素的RGB值,将三个通道的值相加,除以一个大于值使颜色值在0-1内,再乘上一个强度值调节黑白强度。

在URP中实现需要开启Opaque Texture

ShaderGraph实现:

ShaderLab实现:

Shader "BlackAndWhite"
{Properties{}SubShader{Tags { "RenderType"="Transprent" "Queue"="Geometry" }Pass{HLSLPROGRAM#pragma vertex vert#pragma fragment frag#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"TEXTURE2D_X(_CameraOpaqueTexture);SAMPLER(sampler_CameraOpaqueTexture);float3 SampleSceneColor(float2 uv){return SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, UnityStereoTransformScreenSpaceTex(uv)).rgb;}float4 ComputeScreenPos (float4 pos, float projectionSign){float4 o = pos * 0.5f;o.xy = float2(o.x, o.y * projectionSign) + o.w;o.zw = pos.zw;return o;}struct appdata{float4 vertex : POSITION;};struct v2f{float4 vertex : SV_POSITION;float4 ScreenPosition : TEXCOORD0;};v2f vert (appdata v){v2f o;o.vertex = mul(UNITY_MATRIX_MVP,v.vertex);o.ScreenPosition = ComputeScreenPos(TransformWorldToHClip(mul(unity_ObjectToWorld, v.vertex)),_ProjectionParams.x);return o;}float4 frag (v2f i) : SV_Target{float4 _ScreenPosition_Out_0 = float4(i.ScreenPosition.xy / i.ScreenPosition.w, 0, 0);float3 col = SampleSceneColor(_ScreenPosition_Out_0.xy);float c = (col.x + col.y + col.z) / 3;return float4(c,c,c,1);}ENDHLSL}}
}

实现效果:

对比将物体只变成透明:

参考链接:

Black & White Shader - Unity (URP/HDRP) Shader Graph (youtube.com)

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

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

相关文章

开发者如何使用GCC提升开发效率 Windows下Cmake + NDK 交叉编译 Libyuv

最近在导入其他项目的libyuv库,编译时发现如下问题,刚好想做一期libyuv编译与安装到AS中的文章,故记录集成的全过程 报错如下 error: no member named ABGRToNV21 in namespace libyuv; did you mean ARGBToNV21? error: no member named UYVYToY in namespace libyuv; d…

EDI系统与业务系统集成:选择中间数据库还是REST API方案?

EDI项目中,对外企业可以借助专业的EDI系统,基于AS2、OFTP等国际通用的EDI传输协议搭建传输通道,并基于这些传输通道实现安全、可靠地数据传输。对内企业如何实现业务系统和EDI系统之间的数据同步呢? 企业可以通过中间数据库、RES…

ASP.NET Core实现鉴权授权的几个库

System.IdentityModel.Tokens.Jwt 和 Microsoft.AspNetCore.Authentication.JwtBearer 是两个常用的库,分别用于处理 JWT(JSON Web Token)相关的任务。它们在功能上有一定重叠,但侧重点和使用场景有所不同。 1. System.IdentityM…

No.4 笔记 探索网络安全:揭开Web世界的隐秘防线

在这个数字时代,网络安全无处不在。了解Web安全的基本知识,不仅能保护我们自己,也能帮助我们在技术上更进一步。让我们一起深入探索Web安全的世界,掌握那些必备的安全知识! 1. 客户端与WEB应用安全 前端漏洞&#xff1…

LeetCode 热题 100_环形链表(25_141_简单_C++)(哈希表;快慢指针)

LeetCode 热题 100_环形链表(25_141) 题目描述:输入输出样例:题解:解题思路:思路一(哈希表):思路二(快慢指针): 代码实现代码实现&…

GTC2024 回顾 | 优阅达携手 HubSpot 亮相上海,赋能企业数字营销与全球业务增长

从初创企业入门到成长型企业拓展,再到 AI 驱动智能化运营,HubSpot 为企业的每步成长提供了全方位支持。 2024 年 11 月下旬,备受瞩目的 GTC2024 全球流量大会(上海)成功举办。本次大会汇聚了全国内多家跨境出海领域企业…

在VSCode 的终端或虚拟环境中运行git --version 无法识别,但是在电脑上已经装了git

刚刚在我的电脑上安装了 Git,装完最后有个报错弹窗,之后在 VSCode 的终端或虚拟环境中无法识别 git,上网查阅了资料,发现通常是由于以下原因引起的: 一. Git 未添加到系统的 PATH 环境变量 问题描述 安装 Git 后,系…

Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战

Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战 前言1.何为Text2SQL(NL2sql)2.Text2SQL结构与挑战3.金融领域实际业务场景4.注意事项5.总结 前言 随着信息技术的迅猛发展,人机交互的方式也在不断演进。…

Tongweb7049M4有关SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱的处理方案(by lqw)

前提条件:Tongweb7049M4已在http通道里配置了https(如何配置https可以参考这个帖子:东方通TongWEB添加Https证书,开启SSL) 遇到客户在配置了https后,扫描漏洞提示: 有关SSL/TLS 服务器瞬时 Dif…

Jenkins部署svn项目

下载 Jenkins 的安装和设置 加载插件太慢,更换镜像地址 http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 安装svn插件 安装Deploy to container Plugin 工具配置jdk和maven 后端部署 源码管理添加svn地址和认证 增加构建步骤 Invoke to…

嵌入式入门Day27

IO day3 文件IO文件描述符分配过程 相关函数 作业 文件IO 文件IO:基于系统调用的API函数接口特点:每一次调用文件IO,系统都会从用户态到内核态之间切换,效率很低作用:后期学习进程间通信,管道,…

复现论文:PromptTA: Prompt-driven Text Adapter for Source-freeDomain Generalization

github:zhanghr2001/PromptTA: Source-free Domain Generalization 论文:[2409.14163] PromptTA: Prompt-driven Text Adapter for Source-free Domain Generalization 自己标注:PromptTA: Prompt-driven Text Adapter for Source-free Domai…

在Windows上安装NVM(Node Version Manager)

NVM(Node Version Manager)是一个非常实用的工具,可以帮助开发者在同一台机器上管理多个Node.js版本。本文将介绍如何在Windows上安装NVM,并提供一些常用命令的说明。 一、下载和安装NVM 下载NVM安装程序 访问NVM for Windows的发…

记录 idea 启动 tomcat 控制台输出乱码问题解决

文章目录 问题现象解决排查过程1. **检查 idea 编码设置**2. **检查 tomcat 配置**3.检查 idea 配置文件4.在 Help 菜单栏中,修改Custom VM Options完成后保存,并重启 idea 问题现象 运行 tomcat 后,控制台输出乱码 解决排查过程 1. 检查 id…

《HTML 的变革之路:从过去到未来》

一、HTML 的发展历程 图片: HTML 从诞生至今,经历了多个版本的迭代。 (一)早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准,提供了表格、文字绕排和复杂数学元素显示等新特性,但因实现复杂且缺乏浏览器…

鸿蒙手机文件目录

最近在开发鸿蒙,想把文件从电脑上发送到鸿蒙上我的手机APP的根目录,但是试了几次目录都不对,最后终于找到了,在这里记录一下 鸿蒙手机路径: /storage/media/100/local/files/Docs 将文件从电脑发送到手机:hdc file s…

SQL注入--堆叠注入

一.基本概念 堆叠注入概念:在 SQL 中, 分号(;) 是用来表示一条 sql 语句的结束。 试想一下我们在 ; 结束一个 sql语句后继续构造下一条语句, 会不会一起执行? 因此这个想法也就造就了堆叠注入。 二.堆叠注入…

lspci简介

lspci命令用于列出系统中所有pci设备信息,其输出信息包括设备的bdf地址(总线号、设备号和功能号)、设备类型、厂商信息等。 lspci命令的基本用法: lspci:列出所有pci设备的详细信息 参数: -v:显示详细信息,包括驱动程序、总线和端口等信息 -t:以属性结构显…

【论文阅读】PRIS: Practical robust invertible network for image steganography

内容简介 论文标题:PRIS: Practical robust invertible network for image steganography 作者:Hang Yang, Yitian Xu∗, Xuhua Liu∗, Xiaodong Ma∗ 发表时间:2024年4月11日 Engineering Applications of Artificial Intelligence 关键…

Linux DNS域名解析服务器

DNS简介 DNS ( Domain Name System )是互联网上的一项服务,它作为将域名和 IP 地址相互映射的一个分 布式数据库,能够使人更方便的访问互联网。 DNS 使用的是 53 端口, 通常 DNS 是以 UDP 这个较快速的数据传输协议…