Unity如何使摄像机视锥体外的物体不被剔除

在默认情况下,Unity在渲染场景时会剔除掉摄像机视椎体以外的所有物体,这就会导致某些特殊情况下,我们希望显示在场景中的物体反而被剔除了,比如用Shader制作顶点动画时,如果物体本身的位置在摄像机以外,而顶点变换后的位置在摄像机内,那我们是希望该物体不被剔除的。然而,Unity并没有为某个物体或者摄像机提供禁止视椎体剔除的功能,所以我们就要自己想办法了!!!

研究Unity的官方文档发现,视椎体剔除是通过检测视椎体或与物体渲染器的Bounds是否包含或相交来决定是否剔除的,所以我们只要把渲染器的Bounds设置为一定与视椎体包含或相交即可。我这里的就设置为:

csharp 复制代码
Vector3 pos = Camera.main.transform.position + Camera.main.transform.forward * Camera.main.nearClipPlane;
renderer.bounds = new Bounds(pos, Vector3.one);

至于是否要在Update中更新就取决你是否会移动、旋转、缩放该物体以及摄像机是否移动,因为这些操作会使渲染器更新他的Bounds或摄像机重新计算剔除

相关推荐
玉梅小洋20 分钟前
Unity 2D游戏开发 Ruby‘s Adventure 2:主角和第一脚本
游戏·unity·游戏引擎·游戏程序·ruby·游戏开发
CG_MAGIC26 分钟前
3D 烘焙资产导出:多引擎(Unity/Unreal)适配技巧
3d·unity·游戏引擎·效果图·建模教程·渲云
云上空17 小时前
腾讯云使用对象存储托管并分享WebGL小游戏(unity3d)(需要域名)
unity·腾讯云·webgl·游戏开发·对象存储·网页托管
小贺儿开发19 小时前
Unity3D VR党史主题展馆
unity·人机交互·vr·urp·展馆·党史
TopGames19 小时前
Unity实现10万人同屏动态避障和导航寻路系统 支持3D地形
unity·性能优化·游戏引擎
在路上看风景1 天前
01. GUIContent
unity
托洛夫斯基扎沙耶1 天前
Unity中状态机与行为树的简单实现
unity·游戏引擎
TrudgeCarrot1 天前
unity打包使用SPB管线出现 DontSava错误解决
unity·游戏引擎·dontsave
3D霸霸1 天前
unity 创建URP新场景
unity·游戏引擎
玉梅小洋2 天前
Unity 2D游戏开发 Ruby‘s Adventure 1:课程介绍和资源导入
游戏·unity·游戏引擎·游戏程序·ruby