Unity的StencilMask学习

前面使用SectionCrosss插件,无法获取预期的效果,又不知道怎么改,只能先学习一下相关的知识先。

有些博客和视频资料

资料1:https://www.cnblogs.com/flyingziming/p/12937642.html

资料2:UnityShader学习笔记- Stencil Buffer

资料3:https://www.cnblogs.com/hont/p/6579848.html

官方文档:https://docs.unity3d.com/Manual/SL-Stencil.html

----------------------------------------------------------------------------------------------------------------

视频1:【教程】模板测试原理详解(空间效果实现)(https://www.bilibili.com/video/BV1NJ41167Ec?from=search&seid=5371402051527103699

视频内容吐槽了一下一个视频教程,想到我们公司没有专门的技术美术(TA)(什么是技术美术?),很大关系到效果的细节,都只能我们程序员自己边学边调整,说实话Shader的基础都没学过....,慢慢来吧,补一下。

然后内容是基本的Stencil的原理和基本参数

然后用一个特效例子说明了Stencil的使用,特效包:Magic Effects Pack

在这里才算基本有点怎么使用的概念,需要两个Shader,一个是Mask,一个是Render的内容,Mask的Shader里面的Comp是Always,Render的Shader里面Comp是Equal。

CrossSection里面的x_patch就行Mask,剖切纹理是Render。

CrossSection的Box也是Mask,被剖切的模型则是Render,在包围和外的模型都不显示,和上面的陨石一样。

 

-----------

另外收获了一个RFX4_Material_Queue的脚本,ColorMask 0,ZWrite On。

 

其他知识 作用位置,在透明测试(AlphaTest)和深度测试(DepthTest)之间

个人疑惑:

这样的话,我那个重叠模型剖切面问题,真的能够通过这个处理吗?正反面渲染是哪个测试的?或者说实际上不分正反面,仅仅是深度测试的原因。

我是想在该渲染的渲染后,把剖切再绘制出来的。

对了,剖面实际上是绘制在patch上,那深度应该是最近的吧。

--------------------------------------------------------------------------------------------------------

视频2:Unity Shader 模板缓冲(stencil buffer)简单例子(https://www.bilibili.com/video/BV1MK4y1b7dZ?from=search&seid=14837776400920233768

通过一个和地板一样的Mask,将地板上的粒子效果拦截在地板范围内:

=>

------------------------------------------------------------------------------------------------------------

视频3:2020/07/15.使用Unity的Stencil功能 完成换装 模型切换等特殊效果(https://www.bilibili.com/video/BV135411e7dr?from=search&seid=9695326434311482142

一个模型切换的Demo,两个模型,两个Mask(Cube),Mask位置移动,显示的模型切换

没有讲知识也没将代码,就提了一下,说实话,20多分钟,废话有些多,这些做视频的人还是比较活泼的。

提供了一个博客资料:https://blog.csdn.net/u011047171/article/details/46928463

-----------------------------------------------------------------------------------------------------

三个视频看了,也就是理解了Stencil是什么,能做什么,接下来需要实际操作。

另外感觉CrossSection的剖面部分还是有点其他东西,为什么纹理正好显示在剖面上,它怎么知道显示什么纹理的,纹理的信息存储在哪里?现在看的视频其实都就是模型的显示/隐藏的切换用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值