| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity - RenderDoc 分析为何 UGUI ScrollView 下 Stencil 不能与 其他 3D 层的对象有交互?(Mask 组件的问题) -> 正文阅读 |
|
[游戏开发]Unity - RenderDoc 分析为何 UGUI ScrollView 下 Stencil 不能与 其他 3D 层的对象有交互?(Mask 组件的问题) |
问题之前做过一些实验,直接放一些:Image 和 ParticleSystem
Image 材质 ParticleSystem 的材质 经过上面的配置后,实现 UGUI 简单的 Image 与 ParticleSystem 的 Mask 交互效果,如下图:
正常的效果,与不正常的效果,区别在于:
当时我唯一的怀疑就是:Mask 组件会再绘制完子对象后会 重新的 绘制自己一遍,并将 原来的 Stencil 重置了 抱着怀疑的心态,我使用了 RenderDoc 来查看了绘制过程,显示找到了 绘制的 EventID 每个 Event ID 对象的绘制 发现其中的猫腻: EID : 814-828 和 EID : 838-844 的绘制网格的都是同一个(意思那个带有 第一次,是 Stencil Write 的部分:(如下图,只看绿色箭头的部分) 第二次,是 Stencil Clear 的部分:(如下图) 的枚举可以参考 MSDN 上的 DX11 文档又描述: 所以,这就导致了在后续的 ParticleSystem 中,无法显示的原因了(因为 ParticleSystem 要 Stencil Equals 1 的才显示,但是因为被 Mask 清理之后,导致后续那部分的像素对应的 Stencil 都被重置为0了,那么,后续的 ParticleSystem 的 Stencil Test 肯定是不成功的) 解决方法不使用 Mask 组件,但是也是需要在适当的地方清理 Stencil 值,这样我们可以在头尾不添加 Stencil Write, Stencil Clear 的 Image,再调整对应的 Sorting Layer, Order In Layer, RenderQueue 来配置绘制顺序的控制,即可达到我们想要的 UI & 3D 层级的对象的绘制时 Stencil 交互的效果了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/19 5:33:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |