Unity之游戏对象初识:摄像机(Camera)、灯光(Light)、3D游戏物体(3D GameObject)

游戏开发之摄像机与灯光
本文详细介绍了Unity中摄像机和灯光的基本概念与应用技巧,包括摄像机的类型、属性及其在游戏中的作用,以及不同类型的灯光如何塑造场景氛围。

摄像机Camera

一、简介
摄像机(Camera)是为玩家捕捉并展示世界的一种设备。场景中至少需要有一台摄像机,也可以在 一个场景中使用多台摄像机。这些摄像机可以设置为在屏幕的任何位置或只在某些部分按任何顺序 进行渲染。
要将游戏呈现给玩家,相机是必不可少的。可以对相机进行自定义、脚本化或父子化,从而实现可 以想到的任何效果。在拼图游戏中,可以让相机 (Camera) 处于静止状态,以看到拼图的全视图。 在第一人称射击游戏中,可以将相机 (Camera) 父子化至玩家角色,并将其放置在与角色眼睛等高 的位置。在竞速游戏中,您可能希望让相机追随玩家的车辆。

摄像机类型有两种: 
- Perspective:透视相机。相机将用完全透视的方式来渲染对象。 
- Orthographic:正交相机。相机将用无透视感的渲染方法均匀渲染对象。

Game游戏视图中显示的内容由摄像机决定的,所以Camera非常重 要;

在unity中可以在层级视图中通过右键选择创建摄像机Camera;
这里写图片描述

在游戏物体身上的摄像机组件

摄像机详解

Clear Flags:清除标记
Skybox:空白地方使用天空盒填充
Solid color:空白地方使用背景颜色填充
Depth only:空白的地方不填充
Don’t clear:保留每帧渲染的画面,画面重叠 例如:默认摄像机选择了Skybox;
GameView显示:渲染摄像机拍到游戏对象,GameView空白的地方会使用天 空盒填充; Culling Mask:遮罩剔除,可以选择屏蔽某些层游戏对象;
Projection:视图类型: 正交视图平行视图ISO, 透视图Perspective
ViewPort Rect: X,Y控制摄像机拍摄的内容在游戏视图中显示初始位置
X摄像机拍摄内容在游戏视图中初始x位置
y摄像机拍摄内容在游戏视图中初始y位置
w,h控制摄像机设想范围比例,0.5整个范围缩小一半
w在游戏视图中占宽度(比例)
h在游戏视图中占高度的比例

Depth:摄像机深度,控制渲染顺序的,先渲染深度低的,再渲染深度高的;
如果所有的摄像机都选择了skybox或者solid color,GameView 只会显示最后一个摄像机渲染内容;(其他摄像机内容都被覆盖了) 如果希望显示场景中所有摄像机的内容,必须把除了第一个摄像机以外的其他摄 像机的ClearFlags改为Depth only;

RendererPath: 渲染路径就是光照的渲染流程。
一:Vertex Lit Vertex Lit即顶点光照,
顾名思义, 就是所有的光照计算都是在顶点进行的,因 此所有的像素运算效果都不支持,如阴影,法线贴图,light cookies等。一个 物体一般只有一个pass。效果最差,运行最快。适合老设备或者一般的移动设 备。
二:Forward Lighting Forward Lighting是以shader为基础的。
支持像素光照(包括法线贴图和light cookies)。支持单方向光的实时阴影。通常最亮(对环境影响最大)的光在 Render Mode项勾选Important,对应Forward,其余的用Not Important,对应 Vertex Lit。
细节:
(1)最亮的几个光源使用像素计算
(2)其次的(最多4个)使用顶点计算。剩余的使用
(3)Spherical Harmonics (SH)计算,它是一种快速的近似算法。

三:Deferred Lighting Deferred Lighting
给予光照和阴影最棒的效果,对设备性能要求最高。
要求 Unity Pro。不支持移动设备及Flash。
细节:
支持,多个带实时阴影的光(例如足球里多个灯打在球员身上的效果),
不真正支持反锯齿,不支持半透明。至少是Shader Model 3.0 。光照是在屏幕 裁剪空间计算的,所以复杂度是根据涉及的像素点的数量,而并不是场景模型的 复杂度。适合小范围光源

灯光Light

一、简介
光源 (Lights) 是每个场景的重要组成部分。网格和纹理决定了场景的形状和外观,而光源则决定了 三维环境的颜色和氛围。您可能会在每个场景中使用多个光源。让它们一起工作需要一些实践,但 结果却相当惊人。

二、灯光类型
Unity 5.5中有 4 种灯光。创建灯光的方式同创建其他游戏对象的方式相似:
这里写图片描述

(1)Directional 方向光源。
这种类型的灯光可以被放置在无穷远处,可以影响场景中的一切游戏对象,类似于自然 界中太阳光的照明效果。
这里写图片描述

(2)Point 点光源
从一个位置向四面八方发出光线,影响其范围(Range)内的所有对象,类似灯泡的照明效 果。点光源的阴影是较耗费图像处理器资源的光源类型。

这里写图片描述

(3)Spot 聚光灯。
这种灯光从一点发出,在一个方向按照—个锥形的范围照射,该锥形是由聚光灯角度 (Spot Angle) 和范围 (Range) 界定的。 聚光灯是较耗费图形处理器资源的光源类型。
这里写图片描述
(4)Area 区域光/面光源。
该类型的光源无法应用于实时光照,仅适用于光照贴图烘焙 (lightmap baking)), 这种光能从各方向照射一个平面的矩形截面的一侧。
这里写图片描述

游戏物体身上的灯光组件
灯光组件

1、Type:光源的类型。   
2、Color:光照颜色。   
3、Intensity:[ɪn’tensɪtɪ] 光照浓度。   
4、Cookie:设置贴图Alpha通道。(在此属性中放置一张透明贴图 作为蒙版,从而通过灯光照射打到地面上形成一个预期形状的光影效 果)。   
5、Cookie Size:设置贴图Alpha通道尺寸大小。   
6、Shadow Type:阴影类型。(Soft Shadows参数最耗费资 源)。   
7、Draw Halo:绘制光晕(在点光源中使用雾蒙蒙的效果)。如果 勾选该选项,一个球形的光晕将被绘制。光晕的半径等于范围 (Range)。   
8、Flare:设置光源的闪光效果。用于在光照位置上渲染的闪光。   
9、Render Mode:光源的渲染模式。选择光源是作为顶点光 (vertex),像素光(pixel),还是自动的渲染方式。
  注:要说明的是,灯光有对渲染速度有非常大的影响,因此必须权 衡前后照明质量和游戏速度。由于像素光照比顶点光照奢侈得多(更耗 费资源),Unity将只在最亮的光逐个像素渲染。 10、Culling Mask:通过层设置指定图层不受到光照影响。   
11、Lightmapping:设置光照贴图模式。   
注意: 只有平行光可以加影子(在Inspector->Shadow Type)。若 想在其它灯光下也能有阴影属性,则需修改Rendering Path(渲染路 径)。

制作渲染的方法:

菜单->Edit->Project Setting>Player(如图),
然后在PlayerSettings属性中可以找到Rendering Path(渲染路径)属性选择。
分为Vertex Lit(顶点照射)、Forward(向前 照射)、Deferred Lighting(延时照射)三个选项。
如图1-13所示。我们 修改属性为Deferred Lighting即可。
渲染制作

如何进行光照烘焙:

第一步:把需要参与烘焙的游戏对象设置为static->Lightmap static;同时调整 好光照效果

这里写图片描述

第二步:把需要参与烘焙灯光Baking设置为Baked

这里写图片描述

第三步:window-Lighting->去掉auto勾选,进行点击build

这里写图片描述

需要参与烘焙的对象一定要设置成static,需要在烘焙才起作用的灯光设置成bake

3D游戏对象GameObject

  • Cube——立方体
  • Sphere——-球体
  • Capsule——-胶囊体
  • Cylinder——圆柱体
  • Plane——平面
  • Quad——四边形
  • Ragdoll——人物模型(布娃娃)
  • Terrain——地形
  • Tree——树
  • WindZone——自然风
  • 3D Text——3D文字

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值