「游戏开发」游戏后期特效 2:相交高亮(扫描效果) | 火星时代教育

发布时间:2024-05-04 20:47:57 浏览量:231次

关注“indienova”,挖掘独立游戏的更多乐趣

1介绍

作为一名学生党,对图形学和渲染技术的理解尚比较肤浅,若有不明确或错误之处,烦请前辈们斧正。

OK,我们进入Warming Up环节。

2相交高亮是个啥

相交高亮是一种附加在Mesh上的着色器特效,用于在科幻类游戏中将所有穿过Mesh表面的截面轮廓绘制出来,实现类似于扫描效果的展示。

相交高亮特效在诸如《杀戮地带》、《质量效应》、《泰坦陨落》和《死亡空间》等游戏中频繁出现,展现出独特的视觉效果。

3我们要干啥?

根据摄像机的CameraDepthTexture,绘制相交区域的高亮颜色。

4想看懂这篇文章,我得知道啥?

对着色器的混合模式、深度测试和点元着色器有一定了解,同时大萌喵会附上一些可供查阅的资料。

下一篇文章将讲解坐标转换的原理,需要一定的线性代数基础。

5看完了这篇文章,我能得到啥?

你将掌握一种优雅地使用DepthBuffer的方法,并提供源代码供参考。

6相交高亮着色器工作原理

通过获取当前摄像机渲染的场景的DepthBuffer,判断每个经过坐标变换的片元的世界坐标Z与DepthBuffer对应点的深度关系,从而实现特定颜色渲染。

7首先,假设我们什么都不知道

通过场景中的水壶和黄色正方体的展示,解释了Blend Mode和RenderQueue的设定原理,引导读者理解处理相交截面的方法。

8如何优雅地比较坐标

介绍了如何通过DepthBuffer、摄像机参数等计算屏幕上每个点的世界坐标,并展示了相关代码及计算原理。

8如何获取一个片元所在屏幕位置的DepthBuffer

介绍了通过Unity的ComputeScreenPos函数获取片元的屏幕位置深度信息的方法。

10如无需要可略过

解释了顶点坐标转化和屏幕位置计算的过程,指出需要对片元的坐标进行标准化操作。

11千呼万唤始出来的点元着色器函数

展示了点元着色器函数的代码,指导读者理解深度信息比较的插值处理过程。

12实际上非常简单的片元着色器函数

阐述了在片元着色器中提取屏幕位置深度信息并进行比较的逻辑,展示了插值操作的过程。

13最终成果

14后记

相交高亮特效的原理并不复杂,通过DepthTexture获取像素深度信息来决定模型颜色,同时详细解释了ComputeScreenPos函数的奇怪外观。

15FIN

欢迎交流学习,若有任何疏漏或错误,敬请指正!

想了解更多?请点击下方点击咨询

热门课程推荐

热门资讯

请绑定手机号

x

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定