摄像机可视化范围

相机可视范围
图片展示为 unity 实际代码为creator
在这里插入图片描述
如图所示 只显示相机 可以看见的范围 大一圈 避免不不要的性能浪费 这是所有地图游戏必须具备的一个功能

实现思路 从相机 四个角 画出直线 与 平面相交的点 就是 可视范围的点 注意俯视图 与平面 相交的点 是梯形或者是不规则四边形的所以 判断是否在 区域内 要自己写代码 判断

spet 1 获取 相机与 平面的四个交点
creator 实现方式

/**
 creator 实现方式     creator 相机里面以一个属性是  camera.camera.frustum.vertices  这里面是 摄像机 
 锥形体的八个顶点  分别是 进裁剪面 和元裁剪面的 顶点  ray_plane  射线与平面相交的点   点乘
 就是  射线的原点 点乘平面的法向量 / 射线的方向 点乘 平面的 法向量 得到距离 然后 原点 -   射线向量 * 比例 就的到相交的点了 这里代码就不写了  
*/
    public static GetCameraVisibleRange(camera: Camera): Vec3[] {
        let vs = camera.camera.frustum.vertices;
        // 右上
        let rightUp = vs[0].clone();
        // 左上
        let liftUp = vs[1].clone();
        let liftDown = vs[2].clone();
        let rightDown = vs[3].clone();
        //  原点
        let oRightUo = vs[4].clone();
        let oLiftUp = vs[5].clone();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值