Unity 中相机大小与相机矩形大小的关系

Unity 中相机大小与相机矩形大小的关系详解

在 Unity 中,相机的大小(Size)与相机矩形大小(Viewport Rect)是两个密切相关但概念不同的属性,它们共同决定了相机的渲染范围和显示效果。

核心概念解析

1. 相机大小(Camera Size)

  • 正交相机:Camera.orthographicSize 属性

    • 定义:相机视图的半高(从中心到顶部的距离)

    • 单位:世界单位(World Units)

    • 实际高度 = orthographicSize * 2

    • 实际宽度 = orthographicSize * 2 * Camera.aspect(aspect 为宽高比)

  • 透视相机:没有直接的 "Size" 属性

    • 通过 Camera.fieldOfView(FOV)控制视角大小

    • FOV 与显示大小的关系取决于物体与相机的距离

2. 相机矩形大小(Viewport Rect)

  • Camera.rect 属性

    • 定义:相机渲染画面在屏幕上的位置和范围

    • 格式:(x, y, width, height),归一化坐标(0-1)

    • 示例:

      • (0,0,1,1):全屏

      • (0,0,0.5,0.5):屏幕左下角四分之一区域

      • (0.5,0.5,0.5,0.5):屏幕右上角四分之一区域

1. 正交相机的关系公式

实际渲染宽度 = 2 * orthographicSize * aspect * rect.width
实际渲染高度 = 2 * orthographicSize * rect.height

2. 透视相机的关系公式

实际视角宽度 = 2 * distance * tan(fieldOfView * 0.5 * Mathf.Deg2Rad) * aspect * rect.width
实际视角高度 = 2 * distance * tan(fieldOfView * 0.5 * Mathf.Deg2Rad) * rect.height

3. 视觉大小对比表

设置正交相机效果透视相机效果
增加 Size/FOV显示更多场景内容显示更多场景内容
增加 Rect 宽度横向拉伸画面横向拉伸画面
增加 Rect 高度纵向拉伸画面纵向拉伸画面
Size 不变,Rect 缩小画面内容不变,显示区域变小画面内容不变,显示区域变小
Rect 不变,Size 增加显示更多内容,物体变小显示更多内容,透视感增强
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值