首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 学习教程>>正文
Unity3D场景搭建5:相机(Cameras)
2012年3月28日    评论:    分享:

    来源:第三维度

    Unity3D场景搭建5:相机(Cameras)

    相机是一个能够捕获并为玩家显示世界的设备。通过设置和操纵相机,你可以真实而独特的显示你的游戏。在一个场景中你可以有无限的相机。它们可以被设置为任意的渲染顺序,任意的的渲染位置,或者特定的场景部分。

    属性

    • 清除标记(Clear Flags):决定场景的哪个部分需要清除。当需要使用多个相机以显示不同的游戏元素时这是非常有用的。

    • 背景颜色(Background color):在所有的元素这之后的屏幕颜色,没有天空盒

    • 正规化视口矩形(Normalized View Port Rect):在屏幕坐标系下使用四个值来确定相机的哪些部分将显示在屏幕上。

    • Xmin:相机视开始绘制的开始水平坐标

    • Ymin:相机视开始绘制的开始垂直坐标

    • Xmax:相机视结束绘制的开始水平坐标

    • Ymax:相机视结束绘制的开始垂直坐标

    • 近裁剪面(Near Clip Plane):相对于相机昀近绘制点

    • 远裁剪面(Far Clip Plane):相对于相机昀远的绘制点

    • 视野(Field of view):沿着局部 Y轴的相机视角宽度

    • 正视(Is ortho graphic):打开或关闭相机的景深效果

    • 正交视大小(Orthographic size):在正交模式下的视口大小

    • 深度(Depth):相机的绘制顺序。具有较高深度的相机将绘制在较低深度相机的上面

    • 裁剪蒙版(Culling Mask):包含或忽略物体层,可以在监视面板中将一个物体赋给一个层

    • 渲染目标(Render Target)(Pro only):指示一个渲染纹理,相机视将输出到该纹理上。使用这个参数将使得相机不会渲染到屏幕上。

Unity3D场景搭建5:相机(Cameras)
Unity中可以扩展的相机

    细节相机是将你的游戏显示给玩家的必不可少的方法。它们可以被定制,脚本化或父子化以取得任何可以想象的效果。对于解谜游戏,你可以保持一个显示全部视的静态相机。对于一个 FPS游戏,你应该将相机作为玩家角色的子物体,并将其放置在角色的视平面上。对于竞赛游戏,你需要使得相机能够跟随玩家的交通工具。

    你可以创建多个相机并赋予它们不同的深度(Depth)。相机将从低深度想高深度绘制。换句话说,一个具有深度 2的相机将绘制在具有深度 1的相机之上。你可以调整正规化视口矩阵 (Normalized View Port Rectangle)属性以调整相机视在屏幕上的大小和位置。这可以创建多个小视图,例如导弹控制器,地图视图和后视镜等等。

    清除标志每个相机在渲染时都存储了颜色和深度信息。屏幕上没有绘制的部分将为空,并在缺省情况下显示天空盒。当你使用多个相机的时候,每一个都将缓存它的颜色和深度信息,并积累每一个相机的渲染数据。当一个相机在你的屏幕上渲染它的视时,你可以设置 Clear Flags来清除不同的缓存数据集。这个可以通过选择如下的四个选项之一来完成:

    天空盒(Skybox)

    这是一个缺省的设置。屏幕上任何空的部分都将显示当前相机的天空盒。如果当前相机没有设置天空盒,它将缺省使用在渲染设置 (Rendering Settings)中的天空盒。然后将使用背景颜色。

    单色(Solid Color)

    任何空的部分都将显示当前相机的背景色(Background Color)。

    仅深度(Depth only)

    如果你想绘制一个玩家的枪并且在处于环境内部时不需要裁剪它,你可以设置一个深度为 0的相机来绘制场景,另一个深度为 1的相机来单独绘制武器。武器相机的 Clear Flags应该被设置为仅深度。这将保持场景显示在屏幕上,但是会丢弃所有不存在 3D空间的所有信息。当武器被绘制时,不透明部分将完全覆盖所有已显示部分,而不论武器与墙有多么接近。

Unity3D场景搭建5:相机(Cameras)
最后绘制枪,清理相机的深度缓存之后

    不清除(Don’t Clear)

    这种模式将不会清除颜色或深度缓存。结果就是每一帧都将绘制在另一帧之上,就像涂抹效果一样。这个在游戏中并不常用,并昀好与自定义 shader一起使用。

    裁剪面(Clip Planes)

    近裁剪面(Near)和远裁剪面 (Far Clip Pline)属性决定相机视渲染的开始和结束位置。这两个平面与相机的方向垂直并相对于相机的位置来确定。近裁剪面是昀近的开始渲染的位置,而远裁剪面是昀远的位置。

    裁剪面同时确定了深度缓存的精度。通常情况下,为了得到更好的精度你应该将近裁剪面移动到尽可能远。

    裁剪蒙版(Culling Mask) 裁剪蒙版使用层来选择性的渲染一组物体。习惯的做法是将你的用户接口放置在不同的层上,然后使用一个独立相机来渲染它。

    为了使 UI显示在所有其他相机视的顶部,你还需要设置 Clear Flags和 Depth only并确定相机的深度比其他相机的高。

    正规化视口矩形 (Nomalized Viewport Rectangle)

    正规化视口矩形能够定义相机的视将显示屏幕的什么位置上。你可以将地图放置在屏幕的右下角,或者将导弹提示视放置在屏幕的左上角。只要一点设置工作,你就可以使用视口矩形 (Viewport Rectangle)来创建特有的行为。

    使用正规化视口矩形非常容易的创建一个两玩家的分屏游戏效果。在创建了两个相机之后,改变玩家一的 Ymin为 0.5,玩家二的 Ymax为 0.5。这将使得玩家一的相机显示在屏幕的上半部分,而玩家二的相机将显示在屏幕的下半部分。

Unity3D场景搭建5:相机(Cameras)
使用正规化视口矩形创建的分屏

    正交视图(Orthographic)

    使用正交相机将移除所有的景深效果,这在卷轴游戏和 2D游戏中昀常用的。

Unity3D场景搭建5:相机(Cameras)

Unity3D场景搭建5:相机(Cameras)
景深相机正交相机。物体并不会随着距离而变小

    渲染纹理这个特性仅可用于 Unity Pro。它将一个相机视图输出到一个纹理上,然后可以将该纹理应用到其他物体上。这使可以使得监视器的创建非常容易,还有倒影效果,等等。

Unity3D场景搭建5:相机(Cameras)
使用渲染纹理创建实时监视器

    提示

    • 相机可以像其他物体一样可以被实例化,父子化和脚本化。

    • 为了在竞技游戏中增加速度感,可以使用一个高视野(Field of View)。

    • 如果添加一个刚体(Rigidbody)组件,相机可以被用于物理模拟。

    • 在你的场景中你可以使用的相机数量没有限制。

    • 正交相机可以非常好的用于 3D用户接口。

    • Pro版可以是你将相机视输出到纹理,称为渲染到纹理,以得到更独特的效果。

    • Unity有预装的相机脚本,可以在 Component->Camera Control中找到。试验它们的不同效果。

    • 如果你发现了深度问题 (靠近其他面的一个面在闪烁 ),试着设置近裁剪面(Near Plane)尽可能大。

    • 相机不能同时渲染到屏幕和纹理,只能使用一个。

标签:Unity
上一篇:Unity3D场景搭建4:灯光(Lights)
下一篇:几种Web3D技术的比较
网友评论:Unity3D场景搭建5:相机(Cameras)
评论
留名: 验证码:
您可能还需要关注一下内容:
·基于洪水模拟和预报的三维仿真系统设计
·基于Unity3D平台的三维虚拟城市研究与应用
·Unity3d 爆炸火焰特效教程
·Unity3d 基础特效教程-下雨
·基于Unity3D实现大件运输过程动态模拟
·基于Unity3D的虚拟水流墙系统的设计研究
· 西游汉字ceo张红:早教市场缺精品
·基于Unity的虚拟战场地理环境构建
·基于虚拟现实技术的三维矿井漫游演示系统开发与应用
·Unity3D实现3D立体游戏原理及过程
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号