Unity Camera

news2024/9/17 9:24:35

课程目标

1. 了解摄像机(camera)不同视角的设计与实现;2. 感受在不同摄像机视角下观察虚拟场景。

喜欢玩游戏或者看3D动漫的朋友可以回忆在虚拟场景中摄像头的运动变化带来的视觉感受,例如:摄像头给场景中的主角来个特写镜头,或者摄像头距离主角的距离越来越远,视觉或者故事叙述会给观者带来怎样的感觉呢?

Camera设置的参数

属性:功能:
Clear Flags确定将清除屏幕的哪些部分。使用多个摄像机来绘制不同游戏元素时,这会很方便。
Background在绘制视图中的所有元素之后但没有天空盒的情况下,应用于剩余屏幕部分的颜色。
Culling Mask包含或忽略要由摄像机渲染的对象层。在检视面板中将层分配到对象。
Projection切换摄像机模拟透视的功能。
        Perspective摄像机将以完整透视角度渲染对象。
        Orthographic摄像机将均匀渲染对象,没有透视感。注意:在正交模式下不支持延迟渲染。始终使用前向渲染。
Size__(选择 Orthographic 时) |设置为 Orthographic 时摄像机的视口大小。 | |FOV Axis__(选择 Perspective 时)视野轴。
        Horizontal摄像机使用水平视野轴。
        Vertical摄像机使用垂直视野轴。
Field of view__(选择 Perspective 时) |摄像机视角(以沿着 FOV Axis__ 下拉选单中指定轴的度数为单位)。
Physical Camera勾选此复选框可为此摄像机启用 Physical Camera 属性。

启用 Physical Camera 属性后,Unity 将使用模拟真实摄像机属性的属性(Focal LengthSensor Size 和 Lens Shift)计算 Field of View

在勾选此复选框之前,Physical Camera 属性不会显示在 Inspector 中。
        Focal Length设置摄像机传感器和摄像机镜头之间的距离(以毫米为单位)。

较小的值产生更宽的 Field of View,反之亦然。

更改此值时,Unity 会相应自动更新 Field of View 属性。
        Sensor Type指定希望摄像机模拟的真实摄像机格式。从列表中选择所需的格式。

选择摄像机格式时,Unity 会自动将 Sensor Size > X 和 Y 属性设置为正确的值。

如果手动更改 Sensor Size 值,Unity 会自动将此属性设置为 Custom
        Sensor Size设置摄像机传感器的大小(以毫米为单位)。

选择 Sensor Type 时,Unity 会自动设置 X 和 Y 值。如果需要,可以输入自定义值。
                X传感器的宽度。
                Y传感器的高度。
        Lens Shift从中心水平或垂直移动镜头。值是传感器大小的倍数;例如,在 X 轴上平移 0.5 将使传感器偏移其水平大小的一半。

可使用镜头移位来校正摄像机与拍摄对象成一定角度时发生的失真(例如,平行线会聚)。

沿任一轴移动镜头均可使摄像机视锥体倾斜。
                X传感器水平偏移。
                Y传感器垂直偏移。
        Gate Fit用于更改分辨率门大小(Game 视图的大小/宽高比)相对于胶片门大小(物理摄像机传感器的大小/纵横比)的选项。

有关分辨率门和胶片门的更多信息,请参阅关于物理摄像机的文档。
                Vertical使分辨率门适应胶片门的高度。

如果传感器宽高比大于 Game 视图宽高比,Unity 会在两侧裁剪渲染的图像。

如果传感器宽高比小于 Game 视图宽高比,Unity 会在两侧对渲染的图像进行过扫描。

选择此设置时,更改传感器宽度(Sensor Size > X 属性)不会影响渲染的图像。
                Horizontal使分辨率门适应胶片门的宽度。

如果传感器宽高比大于 Game 视图宽高比,Unity 会在顶部和底部对渲染的图像进行过扫描。

如果传感器宽高比小于 Game 视图宽高比,Unity 会在顶部和底部裁剪渲染的图像。

选择此设置时,更改传感器高度(Sensor Size > Y 属性)不会影响渲染的图像。
                Fill使分辨率门适应胶片门的宽度或高度(以较小者为准)。这会裁剪渲染的图像。
                Overscan使分辨率门适应胶片门的宽度或高度(以较大者为准)。这会过扫描 (overscan) 渲染的图像。
                None忽略分辨率门,仅使用胶片门。这会拉伸渲染的图像以适应 Game 视图宽高比。
Clipping Planes开始和停止渲染位置到摄像机的距离。
        Near相对于摄像机的最近绘制点。
        Far相对于摄像机的最远绘制点。
Viewport Rect通过四个值指示将在屏幕上绘制此摄像机视图的位置。在视口坐标中测量(值为 0–1)。
        X绘制摄像机视图的起始水平位置。
        Y绘制摄像机视图的起始垂直位置。
        W_(宽度) |屏幕上摄像机输出的宽度。 | |        H_(高度)屏幕上摄像机输出的高度。
Depth摄像机在绘制顺序中的位置。具有更大值的摄像机将绘制在具有更小值的摄像机之上。
Rendering Path定义摄像机将使用的渲染方法的选项。
        Use Player Settings此摄像机将使用 Player Settings 中设置的任何渲染路径 (Rendering Path)。
        Vertex Lit此摄像机渲染的所有对象都将渲染为顶点光照对象。
        Forward每种材质采用一个通道渲染所有对象。
Target Texture引用将包含摄像机视图输出的渲染纹理。设置此引用将禁用此摄像机的渲染到屏幕功能。
Occlusion Culling为此摄像机启用遮挡剔除 (Occlusion Culling)。遮挡剔除意味着隐藏在其他对象后面的对象不会被渲染,例如,如果对象在墙后面。请参阅遮挡剔除 (Occlusion Culling) 以了解详细信息。
Allow HDR为此摄像机启用高动态范围渲染。请参阅高动态范围渲染以了解详细信息。
Allow MSAA为此摄像机启用多重采样抗锯齿。
Allow Dynamic Resolution为此摄像机启用动态分辨率渲染。请参阅动态分辨率以了解详细信息。
Target Display定义要渲染到的外部设备。值为 1 到 8 之间。

练习项目

打开项目

1. 下载附带项目,在unity hub 中打开该项目

2. 在打开项目中,在Project窗口中点击Assets>CreativeCore_Camera>Scenes, 在右边窗口中双击选择Camera_Intro_Scene,打开该场景,见下图:

切换摄像机

3. 点击上述窗口中中间上方的play三角形)按键,运行该场景,鼠标点击左下方的游戏窗口,然后在按键盘上的 C 按键(可以连续按),切换游戏窗口中的摄像机,可以看到如下不同的摄像机场景:

4.  熟悉上述变换camera视角感受场景后,重新选择一个新的场景,开始尝试设置Camera参数,在Project窗口中点击Assets>CreativeCore_Camera>Scenes, 在右边窗口中双击选择Camera_Projection_Scene,打开该场景:

Projection设置

5. 在Hierarchy 窗口中找到 PlayerArmature,然后按一下 F 键,左上方的虚拟场景将近景显示该虚拟任务,见上图。

6. 再在Hierarchy 窗口中点击 MainCamera (在上述PlayerArmature的下方),按住 Ctrl+Shift+F 组合按键(或者選擇菜單 GameObject > Align With View),這樣左下方的游戲窗口和上方場景窗口的視角一致。

7. 选择MainCamera,可以在最右侧的 Inspector窗口中看到Camera参数, 例如:Projection 设置为 PerspectiveField of View 设置了一个数值,可以左右滑动该按钮,改变Field of View 数值,左下方游戏窗口的视野会相应变大或变小。

也可以选择最左侧场景窗口的左边的旋转按键,这时场景中的Camera将会高亮(白色)显示,并有绿色和蓝色等圆环环绕,鼠标选中绿色圆环,左右移动,可以看到场景中Camera旋转,同时下方的游戏场景中的视角也相应移动。

8. 再回到最右侧的 Inspector窗口中看到Camera参数,将 Projection 设置为 Orthographic,可以看到游戏窗口中视角变得很大,可以在上方场景中适当调节MainCamera的位置和角度,让你几乎可以看到全景,然后点击上图正中间顶端的 运行(三角形)按键, 运行游戏。鼠标点击左下方的游戏窗口,然后按键盘上ASDW按键,操作机器人在场景中漫游。

可以改变 Camera参数Size值,可以看到游戏窗口变大或变小。

Clipping & Culled Planes

9. 再次点击(三角形)按键,退出游戏。

下面认识 Clipping Planes 定义摄像机能够看到的平面,包含 近(near) 和远 (far)两个平面:

near, which defines how close an object is able to get to the camera while still rendering,

far, which defines how far away an object can be before it’s no longer visible on screen

A white wireframe in the Scene view shows you the locations of these planes. For perspective cameras, the wireframe is a pyramid shape, and for orthographic cameras, the wireframe is a rectangle.

10. 在Project窗口, Assets>CreativeCore_Camera>Scenes目录中双击选择  Camera_Limits_Scene,打开这个场景,在Hirarchy窗口单击选择 Main Camera.

11. 在右侧的Inspector窗口中,看到Clipping Plane的两个参数near 0.3 和 far 1000, 可以尝试改变这个far 的数值,例如改为 10,可以看到左下方的Game窗口中所有物体消失了,只剩下天空图像。(自己思考一下为什么变成这样了)

12. 将far参数改回1000,在尝试更改一下near 0.3 的参数,例如改为 20,在Game窗口中会看到一些地面不显示,好像地面被割掉了。

通过更改clipping plan的far和near数值,可以定义摄像机能够看到(渲染)的场景范围。尝试不同数值后,改为原先的数值。

13. 下面设置culling masks在摄像机看到的范围内隐藏或显示物体。

在左边的Scene场景窗口中,选中红色的Capsule,然后在右侧Inspector窗口中,点击Layer参数边的下三角,在下拉菜单中选择 Add Layer..

14. 在显示的 Tags & Layers 窗口中, User Layer 6的右边输入 “Culled”,定义了一个新的层

15. 再次在Scene场景窗口中选择红色的Capsule,然后在右侧Inspector窗口中,点击Layer参数边的下三角,在下拉菜单中选择刚刚新建的 Culled 层

16. 在Hirarchy窗口点击Main Camera, 可以先查看一下左下方的Game窗口中红色Capsule是显示的,然后在右侧的Inspector窗口,点击 Rendering部分的Culling Mask右侧的下拉菜单(当前显示everything),在菜单中点击Culled,将该层选择取消。这是可以查看左下方Game窗口中红色Capsule消失了!

再次点击Culled,消失的红色Capsule又再次显示了。

体验多个摄像场景

在下面的场景中,有多个摄像头的转换场景,在场景中漫游的时候,摄像头会自动切换。

17. 在Scenes文件夹中打开Camera_Views_Scene 场景文件,然后点击正中间上方play(三角形)按键,进入游戏模式,使用键盘 W A S D 按键在场景中开始漫游,首先进入3rd Person Camera view (第三人称的摄像头)区域。

3rd Person Camera 可以让玩家从控制的游戏人物后方观察所控制的游戏人物和其周围所能看到的场景。

18 操控W A S D 按键将游戏人物走到最左方的位置,进入First-Person Camera View (第一人称摄像视角),即透过游戏人物的眼睛观察周围场景。

19. 操控W A S D 按键将游戏人物走到右边一点的 Ortho View,显示 Isometric camera views (等轴测摄像机视图),通常在2D动画显示,缺少一些深度信息。

20 操控W A S D 按键将游戏人物再走到右边一点的迷宫,进入迷宫后,摄像头显示一个天空俯视向下(Top-Down view)的一个上帝视角所看的场景,这样是否可以帮助你快速走出迷宫呢?

22 操控W A S D 按键走出迷宫后,来到 “See behind the building"的标志下,进入建筑的后方通道后,稍微停顿一下,等待摄像头切换到固定摄像头场景,然后控制游戏人物向摄像头走来。

固定摄像头场景(Fixed-Camera View)

23. 完成上述漫游后,可以自己再尝试一遍,体验不同摄像场景。一般游戏场景设置第三人称视角,并且允许用户切换为第一人称视角。

体验摄像机拍摄角度

24. 在Scenes文件夹中打开Camera_Shots_Scene 场景文件,然后点击正中间上方play(三角形)按键,进入游戏模式,游戏中显示的是一个广角(wide angle)场景,按 1 键激活这个场景(如果没有看到如下游戏场景的话)

广角(wide angle)场景

25.在游戏场景中,按 2 键激活近景的镜头(close-up shot),见下图。该镜头能够清晰看到游戏角色的腰部到头的躯干部分。如果把摄像机位置放在游戏角色身后的位置,该近景的镜头通常称为 过肩镜头(over-the-shoulder shots).

26. 在游戏场景中,按 3 键激活鸟瞰图(bird's-eye view),见下图。改图是在上述两个图之间的显示场景,给与玩家对场景及角色位置有一个更好的了解。

27. 在游戏场景中,按 4 键激活仰视图(worm's-eye view),见下图,该镜头从下往上看游戏中的角色,通常是警告玩家游戏中遇到一些问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创客项目秀|基于XIAO SAMD21的多功能笔筒

作者:Arnov Sharma 来自:MIT 发表日期: 2024年6月17日 这个多功能笔筒项目是使用3D打印零件进行搭建的,在笔筒的前端添加了XIAO扩展板,给这个笔筒添加一个显示器,可以在显示器上显示许多内容&#xff0c…

【Devops】CertD 完全免费、自动申请、自动部署SSL证书一站式管理工具 | 自动化HTTPS | 3个月SSL自动轮换

CertD CertD 是一个免费全自动申请和自动部署更新SSL证书的工具。 后缀D取自linux守护进程的命名风格,意为证书守护进程。 关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签 一、特性 本项目不仅支持证书申请过程自动化,还…

P2048 [NOI2010] 超级钢琴(纪念紫题)

原题 题面 具体实现讲解 首先想到用 s u m sum sum记录 a a a数组的前缀和,把每种和弦都试一遍,很明显会超时。 定义 c a l ( s , l , r ) cal(s,l,r) cal(s,l,r)代表以 s s s为左端点,右端点在 l l l到 r r r的范围内,能得到的…

css:grid的使用(部分)

一&#xff1a;grid的使用&#xff08; 平分宽度 &#xff09; <template><view class""><view class"main"><view class"main-item">1</view><view class"main-item">2</view><view cl…

Can ‘t connect to local MySQL server through socket ‘/tmp/mysql.sock ‘(2) “;

Can t connect to local MySQL server through socket /tmp/mysql.sock (2) "; 目录 Can t connect to local MySQL server through socket /tmp/mysql.sock (2) "; 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到…

Python 【机器学习】 进阶 之 【实战案例】房价数据中位数分析 [ 项目介绍 ] [ 获取数据 ] [ 创建测试集 ]| 1/3(含分析过程)

Python 【机器学习】 进阶 之 【实战案例】房价数据中位数分析 [ 项目介绍 ] [ 获取数据 ] [ 创建测试集 ]| 1/3&#xff08;含分析过程&#xff09; 目录 Python 【机器学习】 进阶 之 【实战案例】房价数据中位数分析 [ 项目介绍 ] [ 获取数据 ] [ 创建测试集 ]| 1/3&#x…

118页|2023大模型落地应用案例集

大语言模型开放平台旨在为大语言模型技术的研究和应用提供一个开放、可扩展、可协作的环境。该平台不仅为开发者提供大型语言模型、大规模数据集、模型微调工具以及大型语言模型应用开发工具等资源&#xff0c;还加速了大型语言模型的训练过程&#xff0c;促进了大型语言模型在…

论文复现丨带时间窗和服务顺序的多车辆路径问题:联合优化遗传算法

路径优化系列文章&#xff1a; 1、路径优化历史文章2、路径优化丨带时间窗和载重约束的CVRPTW问题-改进遗传算法&#xff1a;算例RC1083、路径优化丨带时间窗和载重约束的CVRPTW问题-改进和声搜索算法&#xff1a;算例RC1084、路径优化丨复现论文-网约拼车出行的乘客车辆匹配及…

Linux命令行 复制模式/扩展模式 调用系统功能切换

问题背景 公司软件需要从window 适配国产操作系统&#xff0c;目前使用wine方案。在我们软件有个切换屏幕模式的功能&#xff0c;需要支持用户在我们软件内&#xff0c;切换复制模式/扩展模式。 在linux 下 uos/deepin 等系统。如果要从复制模式设置为扩展模式使用命令行时&a…

零基础入门转录组数据分析——机器学习算法之SVM-RFE(筛选特征基因)

零基础入门转录组数据分析——机器学习算法之SVM-RFE&#xff08;筛选特征基因&#xff09; 目录 零基础入门转录组数据分析——机器学习算法之SVM-RFE&#xff08;筛选特征基因&#xff09;1. SVM-RFE基础知识2. SVM-RFE&#xff08;Rstudio&#xff09;——代码实操2. 1 数据…

从零到一:用Go语言构建你的第一个Web服务

使用Go语言从零开始搭建一个Web服务&#xff0c;包括环境搭建、路由处理、中间件使用、JSON和表单数据处理等关键步骤&#xff0c;提供丰富的代码示例。 关注TechLead&#xff0c;复旦博士&#xff0c;分享云服务领域全维度开发技术。拥有10年互联网服务架构、AI产品研发经验、…

【Git-驯化】一文搞懂git中rm命令的使用技巧

【Git-驯化】一文搞懂git中rm命令的使用技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#xff1a;微信公…

Day12--Servlet实现前后端交互(案例:学生信息管理系统登录页面)

&#xff08;在一个完整的项目架构中&#xff0c;servlet的角色和位置&#xff09; Servlet、GenericServlet和HttpServlet三者之间的关系是Java Web开发中的一个重要概念&#xff0c;它们共同构成了基于Java的服务器端程序的基础。以下是具体分析&#xff1a; 1. Servlet接口…

Windows下nmap命令及Zenmap工具的使用方法

一、Nmap简介 nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用以评…

算法-DFS-树形DP

题目一 解题思路 比较标准的深搜&#xff0c;难点主要在题目的理解&#xff0c;通俗的说就是要找到一个树结构中的点&#xff0c;使之在去掉该点后剩余数的结构最均等&#xff08;剩余连接节点的最大值最小&#xff09;。 无向图邻接表 使用代码实现需要一个数组存储数值、一…

速看!2024年5月软考通过率解析

根据湖南省工业和信息化厅最新发布的《2024年上半年软考湖南考区工作总结报告》及《考试安全顺利完成的通报》&#xff0c;我们了解到湖南地区在2024年上半年度的软件与信息技术专业人才考试&#xff08;简称“软考”&#xff09;中&#xff0c;报名人数达到了13,762人&#xf…

无人机1公里WiFi图传遥控模组,飞睿智能无延迟传输方案,高效稳定告别卡顿

在信息众多的时代&#xff0c;我们享受着科技带来的便利&#xff0c;同时也期待着更多前沿技术的出现。今天&#xff0c;就让我们一起走进一个充满神秘与可能性的领域——飞睿智能1公里WiFi图传遥控模组。这个看似简单的设备&#xff0c;却蕴含着巨大的能量&#xff0c;它正在悄…

深度学习-感知机

目录 感知机训练感知机感知机模型感知机学习算法 收敛定理XOR问题总结 多层感知机学习XOR隐藏层单隐藏层---单分类激活函数Sigmoid激活函数Tanh 激活函数ReLU 激活函数 多类分类---单隐藏层多类分类---多隐藏层总结 多层感知机从零开始多层感知机的简洁实现总结 感知机 给定输…

智慧通信|IEEE Trans. Commun. 论文解读:延迟敏感的能量收集无线传感器的最佳调度、结构特性和近似分析

原文信息 Sharma, Nikhilesh, Nicholas Mastronarde, and Jacob Chakareski. “Delay-sensitive energy-harvesting wireless sensors: Optimal scheduling, structural properties, and approximation analysis.” IEEE Transactions on Communications 68.4 (2019): 2509-25…

OZON如何查询销量,OZON查销量哪里可以看

在竞争激烈的电商市场中&#xff0c;了解商品销量是每位卖家优化销售策略、提升竞争力的关键。作为俄罗斯领先的跨境电商平台&#xff0c;Ozon为卖家提供了丰富的数据支持&#xff0c;帮助卖家更好地掌握市场动态。然而&#xff0c;对于新手卖家来说&#xff0c;如何在Ozon上查…