草庐IT

【Unity3D】正交视图与透视视图 ( 正交视图概念 | 透视视图概念 | 观察点 | 正交视图作用 | 摄像机广角设定 | 透视畸变效果 )

韩曙亮 2023-12-01 原文

文章目录





一、正交视图与透视视图概念



1、透视视图

透视视图 ( Perspective View ) : 近大远小 , 符合正常人眼观察 3D 世界的规律 ;

  • 近大 : 物体 距离 观察点 ( 视点 ) 比较近时 , 显示效果比较大 ;
  • 远小 : 物体 距离 观察点 ( 视点 ) 比较远时 , 显示效果比较小 ;

下图就是利用了 透视视图 原理 , 照像机离鸟很近 , 离人很远 ;

在 Unity 编辑器 中 , Scene 场景窗口 默认就是 透视视图 模式 ; 下图中 , 两个立方体的大小是一样大的 , 但是在 Scene 场景 中 , 离 观察点 ( 视点 ) 近的 立方体 显示的比较大 , 离 观察点 ( 视点 ) 远的 立方体 显示的比较小 ;

在 Scene 场景窗口 中的 导航器 Gizmo 下方 , 显示的是当前的视图模式 , Persp 表示透视视图 ;


2、正交视图

正交视图 ( Orthographic View ) : 又称为 " 等距视图 " , 在视图中 显示的 游戏物体 的大小 与 当前的视点距离无关 ;

Unity 编辑器 Scene 场景窗口 切换 正交视图 : 点击 导航器 Gizmo 下方的 Persp 文字 , 即可切换成 正交视图 模式 ;

  • 切换前 : 切换前 导航器 Gizmo 下方显示的是 " Persp " , 表示 透视视图 ;

  • 切换后 : 此时 导航器 Gizmo 下方显示的是 " Iso " , 表示 正交视图 ;


3、视点 ( 观察点 ) 概念

视点概念 : 人眼的位置 , 在 Unity 中视点也可以理解成摄像机 ;





二、正交视图作用



透视视图 模式下 , 由于有 " 近大远小 " 的视觉误差 , 想要将 游戏物体 GameObject 整齐的摆放 很难 ;

正交视图 主要用于 在 Unity 开发过程中 , 对 Scene 场景 中的 游戏物体 GameObject 进行 布局 | 对齐 操作 ;

常用的正交视图有 :

  • 正交顶视图 :导航器 Gizmo 显示 正交视图 " Iso | Right | Front " 时 , 点击 y 轴 , 可以切换到 顶视图 , 导航器 Gizmo 下方显示 " Top " ; 此时在 导航器 中看不到 y 轴 , 该轴垂直与当前 视图 的观察面 ; 此时 没有近大远小 的视觉误差 , 对齐两个物体就很容易 ;

  • 正交右视图 : 在 导航器 Gizmo 显示 正交视图 " Iso | Top | Front " 时 , 点击 x 轴 , 可以切换到 顶视图 , 导航器 Gizmo 下方显示 " Right " ;

  • 正交前视图 : 在 导航器 Gizmo 显示 正交视图 " Iso | Top | Right " 时 , 点击 y 轴 , 可以切换到 顶视图 , 导航器 Gizmo 下方显示 " Front " ;


如果不需要正交视图时 , 可以直接点击 导航器 Gizmo 下方的 Iso , 切换成 透视视图 ;

如果当前处于 正交顶视图 | 正交右视图 | 正交前视图 状态时 , 先按住鼠标右键 随意滑动几下 , 切换成 Iso 正交视图 状态 , 再切换成 透视视图 ;

通常如果不需要 游戏物体 GameObject 对齐操作时 , 不需要使用 正交视图 , 常规状态下都是在 透视视图 模式下工作的 ;





三、摄像机广角设定 ( 透视畸变 )



摄像机广角 默认设置时 60 度 ;

透视存在 " 透视畸变 " 效果 , 摄像机广角设置越大 , 透视畸变 越严重 ; 下图中的圆球 , 由于透视畸变 效果 , 看起来是个椭圆 ;

在 Scene 场景窗口 中 , 点击 工具栏 中的 摄像机 下拉菜单 , 可以看到 " Field of View " 选项 , 该设置就是摄像机广角设置 ;

将 摄像机广角 设置为 30 度 , 效果如下 , 透视畸变 效果降低了 ;

有关【Unity3D】正交视图与透视视图 ( 正交视图概念 | 透视视图概念 | 观察点 | 正交视图作用 | 摄像机广角设定 | 透视畸变效果 )的更多相关文章

  1. ruby - 简单的 ruby 守卫观察者 - 2

    有没有办法制作一个简单的守卫watch?我想在特定目录中的文件更改时运行rake任务,并且完成所有这些步骤对于这个一次性任务来说太多了。https://github.com/guard/guard/wiki/Create-a-guard我尝试将它添加到Guardfile中,但它不起作用。guard:docdowatch(%r{^documentation}){"rakedoc:build"}endwatch("/documentation"){"rakedoc:build"}那么当文件更新为guard时,您是否知道一种运行rake任务的简单方法?? 最佳答案

  2. WebSocket的那些事(1-概念篇) - 2

    目录一、什么是Websocket二、WebSocket部分header介绍三、HTTPVSWebSocket四、什么时候使用WebSockets五、关于SockJS和STOMP一、什么是Websocket根据RFC6455标准,Websocket协议提供了一种标准化的方式在客户端和服务端之间通过TCP连接建立全双工、双向通信渠道。它是一种不同于HTTP的TCP协议,但是被设计为在HTTP基础上运行。Websocket交互始于HTTP请求,该请求会通过HTTPUpgrade请求头去升级请求,进而切换到Websocket协议。请求报文如下:GET/spring-websocket-portfoli

  3. 半个月狂飙1000亿,ChatGPT概念股凭什么? - 2

    ChatGPT掀起了AI股历史上最疯狂的一轮市值狂飙。自春节后至今,ChatGPT概念股开始了暴走模式,短短半月时间,海天瑞声、开普云等ChatGPT概念股市值累计增加了近1400亿。如此的爆炸效应,得益于ChatGPT所展现出商业化落地的巨大潜力。要知道,在此之前,无论是十年AI投入超千亿的百度,还是困在硬件化里的AI四小龙,都在重复着AI商业化难落地的故事。ChatGPT的出现,让AI从生产力的赋能者直接成为一种创造生产力的工具。随着订阅模式的推出,ChatGPT已经成为第一个以AI技术为核心直接变现的消费者应用。本文持有以下核心观点:1、ChatGPT是AI技术迭代的受益者。过去受限技术

  4. ruby - 事件/观察者驱动的 Ruby on Rails - 2

    我有一个适用于事件/监听器模型的应用程序。发布了几种不同类型的数据(事件),然后许多不同的事情可能需要也可能不需要对该数据(监听器)采取行动。监听器的发生没有特定的顺序,每个监听器将决定是否需要对事件采取行动。Rails应用程序有哪些工具可以完成此任务?我希望自己不必这样做(尽管我可以。这没什么大不了的。)编辑:观察者模式可能是更好的选择 最佳答案 查看EventMachine.它是一个非常流行的Ruby事件处理库。它看起来相当不错,而且很多其他库似乎都在利用它(Cramp)。这是一个很好的介绍:http://rubylearnin

  5. ruby - Octopress 错误 - rake 预览、观察或生成 - 2

    我遵循了OctopressDocumentation中的所有说明:sddhrthrt@thinkpad:~/octopress$rakegenerate##GeneratingSitewithJekylldirectorysource/stylesheets/createsource/stylesheets/screen.cssConfigurationfrom/home/sddhrthrt/octopress/_config.yml/home/sddhrthrt/octopress/plugins/pygments_code.rb:5:warning:alreadyinitializ

  6. ruby - 在 Ruby 的正则表达式中,前瞻和后视概念如何支持这种零宽度断言概念? - 2

    我刚刚经历了这个概念Zero-WidthAssertions从文档中。我想到了一些快速的问题-为什么这样的名字Zero-WidthAssertions?Look-ahead怎么了和look-behind概念支持这样的Zero-WidthAssertions概念?什么这样的?,,=s,-4个符号在模式内指示?你能帮我集中精力了解实际发生的事情我还尝试了一些小代码来理解逻辑,但对它们的输出没有那么自信:irb(main):001:0>"foresight".sub(/(?!s)ight/,'ee')=>"foresee"irb(main):002:0>"foresight".sub(/(?

  7. 萤石开放平台——怎么通过API接口远程添加摄像头? - 2

    高科技摄像头特别是海康萤石摄像头,已经不再只局限于简单的视频功能,特别是智能AI的普及,摄像头也华丽变身成了一个个独立的智能个体,可以实现人脸抓拍,人形检测,客流统计等店铺值守场景,也可以实现安全帽识别,车辆识别,非法入侵识别等智慧工地场景。但用户也许会问,摄像头又不会说话,他得知的这些信息怎么告诉我们,还是说需要配一个主机去处理,这成本又有点太高了。这点正是萤石云要为大家解决的,下面来介绍下如何让设备更简便智能的说话。API(应用程序编程接口)提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。形象一点API可以理解为一个管道,通过该管道,可以传入约定好的命令,来获得摄像头的反馈,

  8. ruby - 如何观察YARV执行的Ruby字节码 - 2

    我想观察YARV执行的Ruby字节码,事后分析。我怎样才能得到这个?其他人here告诉这是不可能的。但是,有hotruby似乎执行ruby字节码的框架,所以我很困惑......非常感谢! 最佳答案 你可以很好地使用解释器将一大块Ruby代码编译成字节码(当然,只有RubyMRI1.9可以工作,因为它是唯一使用YARV虚拟机的实现),并得到它的Ruby-ish表示:ruby-1.9.2-p180:007>require'pp'=>trueruby-1.9.2-p180:008>ppRubyVM::InstructionSequence

  9. 涡旋光束基本概念介绍 - 2

    涡旋光束及其MATLAB实现前言涡旋光束的基本概念常见的涡旋涡旋光束涡旋光束的产生方法前言笔者新开一块专栏,专门用于讨论整理总结涡旋光束的相关内容,从基本的概念出发,推导相关的公式,并结合MATLAB进行相关的仿真,不清楚这个专栏会更新多少期,我会分享部分的代码,全部的代码有需要的话可以私聊我。当然大家对这个专栏感兴趣的话,欢迎积极交流。涡旋光束的基本概念​涡旋光束(vortexbeam)是指携带光学涡旋,具有exp(imϕ)exp(im\phi)exp(imϕ)相位分布的光束,其中mmm表示相位拓扑电荷数,ϕ\phiϕ是柱坐标下的方位角。之前的分享中笔者已经说明了部分的激光光束的表达式,想要

  10. 在所有移动屏幕尺寸上支持设计两个卡视图和瓷砖网格 - 2

    我需要设计下面的视图。解释:前两个视图是卡片视图。顶部将包含下面的图表是4个瓷砖,该图像在其底部具有图像和文本问题:我能够获得这样的设计,但并不适合所有手机和屏幕类型。我怎样才能解决这个问题?代码:看答案尝试这个:您需要使用线性布局并将重量分配给两个卡布局50-50。

随机推荐