是否可以在Unity的HDRP中创建DepthMask效果?

2024-02-08



我已经为此努力了一段时间,但我不知道是否有可能创建一个深度掩模着色器HDRP (如此处所述) http://wiki.unity3d.com/index.php/DepthMask.

对于我的确切用途,我试图在应用了材质的任何形状上创建一个“洞”,以显示在所有内容后面渲染的不同相机的内容。

我尝试摆弄着色器内的渲染队列、不同的 ZTest 和 ZWrite 组合,以及我发现的着色器的一些变体。最重要的是,我尝试摆弄我能想到的基本 HDRP 着色器的每个配置,这可能会有所作为。

我能得到的最接近的结果是使物体后面的透明材料消失。这确实意味着,如果我将所有不透明材质设置为透明,我会得到我想要的效果,但这并不理想,因为它破坏的东西比解决的东西多。理想情况下,我能够以某种方式在不透明材质上使用 HDRP 透明优先级系统,但我不确定这是否可能。

我不太确定下一步要尝试什么,任何帮助将不胜感激!


所以我设法找到一种方法来实现这一点,它是使用自定义通行证:

HDRP Unity 深度掩模概述 https://i.stack.imgur.com/C6flO.png

该场景中有三个对象:

  1. 一架飞机将被遮蔽,并且其一部分消失(这是黄色的)。它确实使用 HDRP Lit 着色器作为透明,这是他的着色器:

使用 HDRP Lit 着色器遮罩对象 https://i.stack.imgur.com/ZnjM8.png

  1. 一架不​​会被掩盖的飞机。它确实使用 HDRP Lit 着色器作为不透明的(它是红色的)。这只是基本的。

  2. 一架飞机将成为面具。它有一个自定义图层,我将此图层命名为“Mask”。该飞机的 HDRP Lit 着色器是透明的,并且使用深度测试:从不。这里是 :

具有 HDRP Lit 着色器的 Mask 对象 https://i.stack.imgur.com/gr3Md.png

最终,您将需要一个具有自定义通道体积组件的对象。此自定义通道体积将以您创建的自定义图层为目标:“蒙版”图层,并在渲染透明通道之前将其材质替换为自定义材质。这里是 :

自定义通行证设置 https://i.stack.imgur.com/zdKau.png

最后,这是在自定义通道中插入的材质上使用的着色器代码(自定义通道中名为 StencilMask 的材质):

Shader "Custom/Stencil/MaskStencil"
{
    SubShader {
        // Render the mask after regular geometry, but before masked geometry and
        // transparent things.
 
        Tags {"Queue" = "Geometry+10" }
 
        // Don't draw in the RGBA channels; just the depth buffer
 
        ColorMask 0
        ZWrite On
 
        // Do nothing specific in the pass:
 
        Pass {}
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在Unity的HDRP中创建DepthMask效果? 的相关文章

  • AngularJS ng-重复重新渲染

    我正在使用 AngularJS 构建一个简单的应用程序 应用程序向服务器发出异步 AJAX 调用 服务器返回一个如下所示的数组 paragraphs content content one content cnt two content r
  • Firefox 渲染出错 - 看到一些非常奇怪的东西

    我的以下情况真的很奇怪 基本上 当我查看页面的源代码时 一切看起来都很好 但页面看起来完全错误 所以我决定使用 firebug 查看源代码 而 firebug 显示了一个非常不同的故事 但是 如果我刷新页面 页面看起来很好 并且源和萤火虫匹
  • 创建对话框/弹出窗口

    有这样的代码 bool b EditorUtility DisplayDialog Test Reset or continue Reset Continue if b ResetGame 但它仅在编辑器中有效 在游戏中无效 如何将 Edi
  • sklearn pipeline + keras顺序模型-如何获取历史记录?

    Keras https keras io模型 当 fit被调用时 返回一个历史对象 如果我将此模型用作 sklearn 管道的一步 是否可以检索它 顺便说一句 我正在使用 python 3 6 提前致谢 History 回调记录每个时期的训
  • 在哪里指定图像尺寸以实现最快渲染:在 HTML 中还是在 CSS 中?

    我了解到 明确指定图像尺寸是最佳实践 然后 浏览器可以在仍然下载图像本身的同时布局页面 从而缩短 感知的 页面渲染时间 这是真的 如果是这样 在 HTML 或 CSS 中指定尺寸是否有区别 HTML img src width 200 he
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • Unity Transform.LookAt 仅在一个轴上

    我一直在开发一款游戏 进展非常顺利 从这里得到了一些帮助 我再次需要它 所以我正在制作一个 2D 自上而下的射击游戏 我需要我的敌人看着玩家 显然敌人会在所有轴上旋转 因此是无敌的 或者看起来很奇怪 那么 如何让它只在Z轴上旋转呢 另外 如
  • matplotlib 后端对渲染格式有什么限制?

    我对 matplotlib 使用的后端在确定可以呈现哪些格式方面所扮演的角色感到困惑 例如 文件说 http matplotlib org faq usage faq html what is a backend agg 后端生成 PNG
  • 如何从spark管道逻辑模型中提取变量权重?

    我目前正在尝试学习 Spark Pipeline Spark 1 6 0 我将数据集 训练和测试 导入为 oas sql DataFrame 对象 执行以下代码后 生成的模型是oas ml tuning CrossValidatorMode
  • 除了在 Unity3D 中使用“Assets/Gizmos”之外,如何拥有自定义脚本图标

    我知道这个问题可能被问过很多次了 但它经常被回答错误 我想要的是 Use a custom icon for specific components scripts in the Inspector e g Figure 2 and Fig
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • unity3d 游戏上的 Facebook AppRequest 句柄

    我正在尝试使用新的 facebook unity sdk 在 Unity3D 中制作游戏 我可以向列表中的朋友发送 AppRequest 但我的疑问是 当我的朋友下载了同一个游戏后 我如何使用AppRequest与朋友进行交流 例如 如果我
  • Unity3D如何连接NavMesh和NavMeshAgent

    我在编辑器中收到此错误 SetDestination can only be called on an active agent that has been placed on a NavMesh 这些是我在解决问题时尝试的步骤 将 Nav
  • 如何找到子游戏对象?

    我想说一些诸如 Gameobject find child gameobject of specific parent Gameobject 谁能帮我 谢谢 GameObject Find将在场景中搜索游戏对象 要从父级搜索游戏对象 请使用
  • 优化 - 步进可能表现奇怪:iOS/Unity

    我正在尝试将 Unity 集成到 iOS 应用程序中 我已经遵循了这个教程http www agnosticdev com blog entry swift integrating unity and vuforia ios swift p
  • 如何让游戏音频在某个点循环播放

    我的游戏中有一场风暴 所以我制作了一个环境音频文件 它慢慢成长为一场风暴 雨逐渐消失 然后变成一个可循环的风暴音频文件 我是这样做的 Play intro clip and merge into main loop var introTim
  • 在 QML 中控制纹理 3D 对象的不透明度

    我对 QML 中的 Qt 3D 有点陌生 我正在尝试控制 Qt 3D 的不透明度textured3D 对象 我正在使用简单qml3d https github com tripolskypetr simpleqml3d测试项目来做到这一点
  • 如何在Unity Inspector中创建多维数组?

    如何在 Unity Inspector 中创建枚举多维数组并使其可序列化 以便我可以从不同的脚本调用它 public enum colors red blue green yellow cyan white purple public in
  • 将旧的 Unity 代码升级到 Unity 5

    在触发按钮上播放动画的代码似乎不起作用 我在 Youtube 上看到了一个视频 内容很简单animation Play 它可以在该视频上运行 但我无法让它在我的计算机上运行 我做错了什么还是团结改变了它 请帮助我在网上找不到解决方案 所有

随机推荐

  • 如何注入实现相同接口的两个不同类的两个实例?

    在java中处理CDI时 我想注入两个不同类的两个实例 实现相同的接口 据我了解 我可以注入不实现接口的类的实例 例如 class MyClass class XY Inject MyClass myClass 当我的类实现一个接口时 我必
  • Acumatica - 在销售订单行中添加图像

    我正在努力在选择 InventoryID 时在销售订单行上为文档详细信息制作缩略图 然而 每当我在行中选择 InventoryID 时 图像不会填充到网格中 这是我到目前为止所拥有的 DAC 扩展 namespace PX Objects
  • 存档选项在 xcode 4.5.2 中呈灰色

    我已经使用 Xcode 创建了应用程序 它已准备好在 iTunes 连接上上传 但应用程序加载器似乎太慢了 另一种归档方法看起来很好用 但该选项在 Xcode 4 5 2 中被禁用 行动 我尝试编辑方案并选择存档 发布选项 以及我的设备的目
  • 如何在 libgdx 中沿 x 轴旋转图像?

    我试图在其 x 轴上旋转图像 但它不起作用 Texture one new Texture Gdx files internal img one jpg oneImg new Image one oneImg setOrigin oneIm
  • iOS 11.2.1 Xcode 9.2 BoringSSL SSL_ERROR_ZERO_RETURN(6)

    我在有 WKWebView 显示页面的项目中突然遇到此错误 该页面像以前一样加载良好 但现在当我尝试从该页面导航到另一个页面时 我收到此错误 BoringSSL Function boringssl session errorlog lin
  • primefaces:对话框不显示

    我的问题是p dialog没有显示 监听器被解雇 没有错误消息 我的要求是 当我选择一行时 该行的详细信息必须显示在对话框中 请帮助我 提前致谢
  • 在 Pandas 中将两个 MultiIndex 级别合并为一个

    我有一个多索引的 Pandas 数据框 第二级包含年份 2014 2015 第三级包含月份编号 1 2 12 我想将这两个合并为一个级别 例如 1 2014 2 2014 6 2015 这怎么可能做到呢 我是熊猫新手 搜索了很多但找不到任何
  • X 天内从 http 页面调用时,FB.api 方法将停止工作。请更新您的网站以使用 https 进行 Facebook 登录

    我正在本地主机中开发一个应用程序 突然收到此错误 X 天内从 http 页面调用时 FB api 方法将停止工作 请更新您的网站以使用 https 进行 Facebook 登录 时间用完后我还能在本地主机上开发吗 根据 Facebook 公
  • 将 MeiYan 哈希函数移植到 Go

    我想将最先进的哈希函数 MeiYan 从 C 移植到 Go 据我所知 就速度和冲突率而言 这即使不是哈希表的最佳哈希函数 也是最好的哈希函数之一 它至少击败了 MurMur 我是 Go 新手 刚花了一个周末 想出了这个版本 func mei
  • Solidity:ParserError:预期的编译指示、导入指令或合约/接口/库定义

    当我编写简单合约时 我也遇到了最新的 solc 0 5 2 版本 和 0 4 25 的错误 我尝试过以下步骤 已卸载的 Solc npm uninstall solc 安装的目标版本 npm install save 电子邮件受保护 cdn
  • 使用 dapper,为什么在一次使用连接中创建的临时表在第二次使用同一连接时不可用

    我正在尝试使用 C 中的 dapper 执行一系列 SQL Server 步骤 第一步创建一个临时表并填充它 以下步骤从临时表中查询数据 创建 填充似乎运行成功 但临时表中的第一个查询失败 并显示 对象名称 GetPageOfGlobalU
  • 验证隐藏字段

    我正在使用 MVC3 进行不引人注目的验证 我有一个字段 用户需要填写一些数据 然后按 搜索 按钮 如果从未按下搜索或用户在按下搜索后更改了输入字段 则不应提交表单 我添加了一个隐藏字段 设置为true by the click 按钮的事件
  • 在 shell 脚本中获取 2 个数组中的公共值[重复]

    这个问题在这里已经有答案了 我有一个 array1 20 30 40 50 array2 10 20 30 80 100 110 40 我必须从数组 3 中的这两个数组中获取共同值 如下所示 array3 20 30 40 按升序排列 Sh
  • Facebook PHP SDK Graph API 发布到页面无法正常运行

    我正在尝试向我的应用程序添加一项功能 该功能会将状态发布到管理员用户的页面时间线 其详细信息与他们在 Facebook com 上发布的内容相同 我关注的主要功能是链接共享和缩略图 例如当您将链接粘贴到状态中时 它会自动检测缩略图 为您提供
  • HttpServletRequest 和 getHeader():如何正确处理不区分大小写的标头?

    由于我发现根据 RFC HTTP 标头不区分大小写 因此我想知道如何使用 Servlet 以不区分大小写的方式访问 HTTP 标头 有一个 getHeader String 方法来获取标头 但事实证明该方法对标头字段区分大小写 是否有一种
  • 获取UIScrollView的当前位置

    我来自 Android 但在 IOS 上我感到很头疼 我需要制作一个像电影片尾字幕一样的滚动菜单 我使用了下面的代码 rol scroll view contentOffset y timer NSTimer scheduledTimerW
  • 在 Web 浏览器控件中捕获 Javascript 警报

    使用网络浏览器控件浏览站点 有时会出现涉及 javascript 弹出框的错误 当这种情况发生时 我想做一些事情 了解 JavaScript 警报何时弹出 我使用 LostFocus 事件取得了一些成功 但每当它失去焦点时 代码都会运行 这
  • Swift 将多个类分配给 UI 元素

    是否可以将多个自定义类分配给 Swift 中的同一个 UI 元素 我有一个 UITextField 我需要使用 Spring 动画库 对其进行动画处理 并且我还需要在同一个 UITextField 上使用一些其他库来提供一些其他功能 我通常
  • 用于(合法)欺骗 SMS 消息的 SMS 网关

    我正在寻找一个 SMS 网关来通过 HTTP 接口发送短信 但有些短信网关不允许设置发件人ID 允许设置的短信网关要么要求用户证明发件人ID是自己的手机号码 要么手动检查每个发件人ID 以防止出现问题 短信欺骗 http en wikipe
  • 是否可以在Unity的HDRP中创建DepthMask效果?

    我已经为此努力了一段时间 但我不知道是否有可能创建一个深度掩模着色器HDRP 如此处所述 http wiki unity3d com index php DepthMask 对于我的确切用途 我试图在应用了材质的任何形状上创建一个 洞 以显