【Unity——模板测试Stencil】

这篇具有很好参考价值的文章主要介绍了【Unity——模板测试Stencil】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是模板测试,可以实现什么效果?

●用模板测试来实现限制渲染区域

unity 模板测试,unity,游戏引擎
●使立方体的不同区域显示不同的画面
图片来自:TA入门笔记(十五)
unity 模板测试,unity,游戏引擎
unity 模板测试,unity,游戏引擎

模板测试的知识点

●顺序

透明度测试->模板测试->深度测试
unity 模板测试,unity,游戏引擎

●简单原理

图片来自:LearnOpenGL——模板测试
unity 模板测试,unity,游戏引擎
以文章开头第一张图为例,透明片元的作用是更新模板缓冲区的值,使模板缓冲区的值为1
后边人物(类比上图中的立方体片元,地板片元)的模板值被设置成了1并且使用了“等于”的判断条件(当模板值等于深度缓冲值时通过测试,渲染时保留片元)
那么在模板测试时,由透明片元决定更新哪一部分的模板缓冲区的值为1,使这一部分区域模板值为1的片元得以渲染出来unity 模板测试,unity,游戏引擎
考虑物体之间的渲染顺序问题
如果场景中用于更新模板缓冲的透明片元在物体之后渲染,物体所有的片元都会因为无法通过模板测试而无法被渲染。所以在实现中需要调整物体的渲染队列,使该透明片元先于物体进行渲染。

●简单实现细节

在Shader中完整的Stencil语法

Stencil
{
    Ref referenceValue 		//当前材质的模板值
    ReadMask  readMask  
    WriteMask writeMask  
    Comp comparisonFunction 	//模板缓冲区的值与当前材质模板值的判断条件
    Pass stencilOperation 		//当模板测试通过时如何处理模板缓冲区的值
    Fail stencilOperation  
    ZFail stencilOperation
}

实际上为了实现简单的效果我们只需要用到其中的三个

Stencil
{
 	Ref 	//设置当前材质的模板值,默认值是0
 	Comp 	//默认值是always,模板测试总是通过,渲染像素
 	Pass 	//默认值是Keep,不更改深度缓冲的值
}

首先,模板缓冲区的默认值是0
在默认情况下,不对Stencil进行手动设置时,所有的片元均由Comp always通过了模板测试,由Pass Keep均不对模板缓冲区进行更改

为了实现限制渲染区域的效果
unity 模板测试,unity,游戏引擎

●模仿效果

unity 模板测试,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-616850.html

到了这里,关于【Unity——模板测试Stencil】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity中Shader的帧缓存区Clear(color+Z+stencil)

    帧缓存区 Alpha测试 模板测试 深度测试 混合 1920 ∗ 1080 ∗ 3 1024 1024 = 5.93 M B frac{frac{1920 * 1080 *3}{1024}}{1024} = 5.93MB 1024 1024 1920 ∗ 1080 ∗ 3 ​ ​ = 5.93 MB Clear(color + Z + stencil)

    2024年02月10日
    浏览(44)
  • Unity vs Godot :哪个游戏引擎更适合你?

    游戏引擎的选择对开发过程和最终产品质量有着重大影响。近年来,Godot和Unity这两款引擎受到广泛关注。本文将从多个维度对两者进行比较,以期为开发者提供正确的选择建议。 Godot和Unity都有各自的优势,没有绝对的好坏之分。Godot开源免费,上手简单,更适合2D和小型游戏

    2024年01月23日
    浏览(94)
  • 30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长

    2024年02月11日
    浏览(69)
  • Unity - Stencil Test 开关,无法通过脚本或是 shader lab 开关来控制

    查看过 shader lab 文档: ShaderLab command: Stencil,没有看到 stencil test 关闭的功能,我真的无语。。。 只能开,不能关,意思一个 shader lab 一旦编写了 stencil { } 的内容,就必须开启。。。 好 low 的设计 在网上同样搜索到对应的 unity 论坛贴图: how to disable the Stencil block via shader pr

    2024年02月16日
    浏览(36)
  • Unity Physics2D 2d物理引擎游戏 笔记

    2d 材质 里面可以设置 摩擦力 和 弹力 Simulated:是否在当前的物理环境中模拟,取消勾选该框类似于Disable Rigidbody,但使用这个参数更加高效,因为Disable会销毁内部产生的GameObject,而取消勾选Simulated只是禁用。 Kinematic 动力学刚体 动力学刚体不受重力和力的影响,而受用户的

    2023年04月24日
    浏览(121)
  • Unity和UE4两大游戏引擎,你该如何选择?

    目录 游戏引擎 2 —— 难易区别 编程语言 3 —— 游戏产品 UE4制作的游戏产品  Unity制作的游戏产品  产品类型 5 —— 资源商店 6 —— 人才需求 平均薪资 总结      Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏开发软件,他们帮我们实现了复杂的底层逻

    2023年04月08日
    浏览(69)
  • Unity 开发人员转CGE(castle Game engine)城堡游戏引擎指导手册

    一、简介 2. Unity相当于什么GameObject? 3. 如何设计一个由多种资产、生物等组成的关卡? 4. 在哪里放置特定角色的代码(例如生物、物品)?Unity 中“向 GameObject 添加 MonoBehaviour”相当于什么? 5.Unity子目录相当于什么Assets? 6. 支持哪些模型格式? 7. 支持FBX模型格式吗? 8.

    2024年02月07日
    浏览(76)
  • SuperMap Hi-Fi 3D SDK for Unity制作游戏引擎材质

    kele     在交通,电力,规划等行业中,有的对象常常具有很强的质感,比如金属质感的 钢轨,电力塔;陶瓷材质的绝缘子;玻璃材质的建筑幕墙等,但常规方式的表现效果 往往差强人意。     游戏引擎(Unity3D)中已有丰富的材质资源库,比如玻璃,金属等材质,这

    2024年02月09日
    浏览(84)
  • 【毕业论文】| 基于Unity3D引擎的冒险游戏的设计与实现

    📢博客主页:肩匣与橘 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 肩匣与橘 编写,首发于 CSDN 🙉 📢生活依旧是美好而又温柔的,你也是✨  基于Unity3D引擎的冒险游戏的设计与实现 📢前言 摘要 Abstract 1 绪论 1.1 选题背景 1.2 研究目的及意义 2 开发工具

    2024年02月05日
    浏览(62)
  • 吐槽laya:H5小游戏开发应该用什么引擎好?laya、cocos还是unity?

    我看有人推荐laya,放在H5小游戏的前三排名,这压根不靠谱。 laya只能算个半成品,整体非常垃圾,如果是首次选择游戏引擎,至少转去cocos,实在选laya,那也没办法了。 下面说说laya有什么问题,如果只是一些简单的bug什么的,我是不会花这个时间吐槽的,但是如下的问题实

    2024年02月13日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包