【Unity】双摄像机叠加渲染

一、前言

之前我在做我的一个Unity项目的时候,需要绘制场景网格的功能,于是就用到了UnityEngine.GL这个图形库来绘制,然后我发现绘制的网格线是渲染在UI之后的,也就是说绘制出来的图形会遮盖在UI上面,也就导致一旦这些网格线密集之后,UI就看不清楚了。

前些天成功问到了自己身边的Unity老师,告诉我可以用双摄像机渲染来解决,也就是一个摄像机负责渲染UI,另一个摄像机负责渲染场景。经过十几分钟的调试,总算是成功解决了这个之前遗留的问题。

这里我把我这个双摄像机叠加渲染的参数方案提供给大家,希望会对一些朋友有所帮助。

二、实现步骤

1.在已有MainCamera的情况下,创建一个新的Camera

2.修改两个Camera的Culling Mask选项。UICamera选择只渲染UI层,MainCamera去除渲染UI层

3.调整两个Camera的Depth(深度)值。深度值越大,越渲染在后面 。因此UICamera的Depth值是要比MainCamera的Depth值要大的。比如MainCamera的Depth设置为1,UICamera的Depth设置为2

4.修改Camera的Clear Flags选项。UICamera选择Depth Only , MainCamera选择Skybox

5.选中Hierarchy窗口中的Canvas对象,在其Inspector窗口中,将Render Camera选择为UICamera(因为Canvas里面是用来放UI对象的,因此需要选择的相机就是专门渲染UI的相机

6.将两个相机的Target Display属性都设置为同一个Display,这样就可以实现叠加渲染了。

相关推荐
zyh______40 分钟前
关于unity的序列化
unity·游戏引擎
IT小哥哥呀1 小时前
基于windows的个人/团队的时间管理工具
windows·c#·wpf·时间管理
weixin_409383121 小时前
godot碰撞测试的学习
学习·游戏引擎·godot
电子云与长程纠缠1 小时前
Godot学习06 - AnimationPlayer内置动画
学习·游戏引擎·godot
JosieBook2 小时前
【C#】C# 访问修饰符与类修饰符总结大全
前端·javascript·c#
星夜泊客3 小时前
C# : 引用类型都存在堆上吗
unity·c#
chiwei_hua3 小时前
如何在 Blazor Web 前端中使用 C# 进行数据交互?
前端·c#·交互
点量云实时渲染-小芹3 小时前
Unity模型数字孪生虚拟仿真webgl推流卡实时云渲染推流
unity·webgl·数字孪生·实时云渲染·虚拟仿真·云推流
wenroudelang88887 小时前
Visual Studio的C#实例--2个窗体之间跳转
ide·c#·visual studio
荔枝吻7 小时前
【AI总结】C#与.NET:一段跨越20年的命名纠葛与共生传奇
开发语言·c#·.net