Unity Camera Orthographic Size 摄像机大小

部署运行你感兴趣的模型镜像

如图,Unity的Camera的投影(Projection)设置有如下两种,正交(Orthographic)和透视(Perspective)。

正交模式下的话,摄像机是以一个固定的大小(Size),平行观察。被观察的物体不会因离摄像机的远近,而导致最终显示在屏幕的大小位置不同。物体旋转的话,在屏幕上的效果只会边长或变短,并不会有前大后小的效果(2D效果)

透视模式下的话,摄像机是以一个角度(Field of View),扩散观察。被观察的物体会因离摄像机的远近,而导致最终显示在屏幕的大小位置不同。物体旋转会有离摄像机近的部位显示的偏大,远的部位偏小的效果(3D效果)

 

这个时候,有一个问题是,在被观察的物体不动的情况下,当我用正交摄像机投影出一个画面的时候,此时将摄像机的投影模式改为投影模式,该如何设置参数,从而保证看到的画面不变。(实际情景是,FairyGUI的Stage Camera的正交摄像头,但是美术那边想要实现3D UI 的效果,所以想把Stage Camera改为透视摄像头,但是如何设置角度与位置使得UI可以完整的显示在屏幕上)

我们可以看出透视摄像机在不同距离的横切面是不同的屏幕大小,所以我们要找到其中一个距离的屏幕大小,正好和正交摄像机的屏幕大小一样即可。

所以我们先要来了解下所谓的摄像机屏幕大小的概念Orthographic Size

Orthographic Size

在正交模式下,我们设置Size的值,摄像机的大小会随之变动,那么这个值和摄像机的大小是什么关系呢?

简单的理解就是,size的值是正交摄像机高度的一半。当你拉伸屏幕窗口的时候,摄像机的高度不变,宽度改变。比如,我们Size设置的为7,表示屏幕的高度为14unit。

我们可以通过建立几个单位为1unit的cube进行验证,如图,我们用七个单位为1unit的cube,排成一排,正好是屏幕高度的一半。

知道Size的概念后,我们如果要使透视摄像机也一样显示Size=7的屏幕大小的话,只需要使得,当透视摄像机Field of View 为α时,在距离x的情况下,横切面的高度的一半为7即可,如图

根据三角函数我们可以得出 x = 7÷ tan(α÷2)

为了方便计算,我们可以把Field of View设为90度,则,tan45=1,所以我们只要将摄像机的z轴位置设置为-7,即可达到和正交摄像机size=7时,一样的屏幕效果(被观察的物体z轴为0)。

您可能感兴趣的与本文相关的镜像

EmotiVoice

EmotiVoice

AI应用

EmotiVoice是由网易有道AI算法团队开源的一块国产TTS语音合成引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值