网上做的好金融网站,网站内容建设招标,怎么查看一个网站是不是伪静态,做外贸网站在项目中一个完成的游戏场景一般都会有成千上百的物体#xff0c;假如都去让GPU全部渲染一遍#xff0c;那带来的消耗其实是挺大的#xff0c;很多不在摄像机范围内的物体其实没有必要去渲染#xff0c;尽管GPU自带剔除#xff0c;但是如果从CPU阶段就提交给GPU指令——哪…在项目中一个完成的游戏场景一般都会有成千上百的物体假如都去让GPU全部渲染一遍那带来的消耗其实是挺大的很多不在摄像机范围内的物体其实没有必要去渲染尽管GPU自带剔除但是如果从CPU阶段就提交给GPU指令——哪些物体出现在摄像机中哪些不在那场景的负担也会小很多视锥体剔除就是处理这样的问题。说明一下在这里只是简单实现说一下大致思路实际大型项目开发中会更复杂。先看效果
没剔除的时候 剔除后的效果 代码实现
public class MyCull : MonoBehaviour
{private Camera _camera;public Transform parentTrans;private Renderer[] meshRenders;void Start(){_camera GetComponentCamera();meshRenders parentTrans.GetComponentsInChildrenMeshRenderer();}// Update is called once per framevoid Update(){
Plane[] cameraPlane GeometryUtility.CalculateFrustumPlanes(_camera);//得到摄像机的视锥平面foreach (var item in meshRenders){Bounds bounds item.bounds;bool isShow GeometryUtility.TestPlanesAABB(cameraPlane,bounds);//判断是否在摄像机的视锥体中item.enabled isShow;}}
}