unity3d从零开始(五):了解摄像机

1、简介

Unity的摄像机是用来将游戏世界呈现给玩家的,游戏场景中至少有一台摄像机,也可以有多台。

2、类型

Unity中支持两种类型的摄像机,分别是Perspective(透视)以及Orthographic(正交)两种。

3、参数

在Unity中创建摄像机对象时,默认情况下除了Transform组件还会带有Camera、GUI Layer、Flare Layer和Audio Listener组件。下面介绍下Camera组件的参数。

3.1    Clear Flags

清除标记。决定屏幕的哪个部分将被清除。该项一般用于使用多台摄像机来描绘不同游戏对象的情况,有3中模式:

3.1.1    SkyBox

天空盒。该模式为默认设置。在屏幕中空白的部分将显示当前摄像机的天空盒。如果当前摄像机没有设置天空盒,它会默认使用Background色。

3.1.2    Solid Color

纯色。选择该模式屏幕上的空白部分将显示当前摄像机的Background色。

3.1.3    Depth Only

仅深度。该模式用于游戏对象不希望被裁剪的情况。

3.1.4    Don‘t Clear

不清除。该模式不清除任何颜色或深度缓存。其结果是,每帧渲染的结果叠加在下一帧之上。一般与自定义的Shader配合使用。

3.2    Background

背景。该项用于设置背景颜色。在镜头中的所有元素渲染完成且没有指定Skybox的情况下,将设置的颜色应用到屏幕的空白处。

3.3    Culing Mask

剔除遮罩。依据游戏对象所指定的层来控制摄像机所渲染的游戏对象。

3.4    Projection

投射方式。有两种

3.4.1    Perspective

透视。摄像机将用透视的方式来渲染游戏对象。

3.4.2    Orthographic

正交。摄像机将用无透视感的方式均匀的渲染游戏对象。

3.5    Field of view

视野范围(只针对透视模式)。该项用于控制摄像机的视角宽度,以及纵向的角度尺寸。

3.6    Size

大小(只针对正交模式)。该项用于控制正交模式摄像机的视口大小。

3.7    Clipping Planes

剪裁平面。摄像机开始渲染与停止渲染之间的距离。

3.7.1    Near

近点。摄像机开始渲染的最近的点。

3.7.2    Far

远点。摄像机开始渲染的最远的点。

3.8    Viewport Rect

标准视图矩形。用四个数值来控制该摄像机的视图将绘制在屏幕的位置及大小,该项使用屏幕坐标系,数值在0~1之间。

3.8.1    X

摄像机视图进行绘制的水平位置起点。

3.8.2    Y

摄像机视图进行绘制的垂直位置起点。

3.8.1    W

摄像机视图绘制到屏幕上的宽度。

3.8.1    H

摄像机视图绘制到屏幕上的高度。

3.9    Depth

深度。该项用于控制摄像机的渲染顺序,较大值的摄像机将被渲染在较小值的摄像机之上。

3.10    Rendering Path

渲染路径。该项用于指定摄像机的渲染方法。

3.10.1    Use Player Settings

使用Project Settings->Player中的设置。该摄像机将使用设置的渲染路径。

3.10.2    Vertex Lit

顶点光照。摄像机将对所以的游戏对象作为顶点光照对象来渲染。

3.10.3    Forward

快速渲染。摄像机将对所有的游戏对象将按每种材质一个通道的方式来渲染,如同在Unity2.x中的渲染方式。

3.10.4    DeferredLighting

延迟光照。摄像机先对所以游戏对象进行一次无光照渲染,用屏幕空间大小的Buffer保存几何体的深度、光线以及高光强度,生成的Buffer将用于计算光照,同时生成一张新的光照信心Buffer。最后所有的游戏对象会被再次渲染,渲染时叠加光照信息Buffer的内容。

3.11    Target Texture

目标纹理。该项用于将摄像机视图输出并渲染到屏幕。一般用于制作导航图或者画中画等效果。

3.12    HDR

高动态光照渲染。该项用于启用摄像机的高动态范围渲染功能。因为人眼对地范围的光照强度更为敏感,所以使用高动态范围渲染能够让场景更为真实,光照的变化不会显得太突兀。

时间: 2024-10-22 15:27:18

unity3d从零开始(五):了解摄像机的相关文章

Unity3d中第三人称摄像机跟随的实现

最简单的一种就是先设置好摄像机跟物体的相对距离, 在脚本里就可以由物体的位置,跟相对距离,就可以求出摄像机的位置, 用插值的方法可以让摄像机平滑跟随. 1 public class CamFollow1 : MonoBehaviour 2 { 3 4 private Vector3 offset; 5 public Transform player; 6 7 void Start() 8 { 9 offset = player.position - transform.position; 10

unity3d 从零开始compute shader

开始用compute shader 我喜欢vertex/fragment shaders的简单,他们只是做一件事(把顶点和颜色输出到屏幕上去),他们做得非常好,但是有时这种简单限制了你,当你的cpu拼了命的循环那些矩阵,算出并储存在贴图上... Compute Shader 解决了这个问题,我将在今天说明它的基础,我将通过一个unity自己的例子告诉你,使用structured buffer的数据在compute shader中工作 Compute Shader能用来控制粒子群的位置 什么是co

Unity3D研究院之处理摄像机与角色之间被挡时的局部透明效果

1.通过shader的修改实现局部透明效果 Shader "Custom/PlayerDiffuse" { Properties { _NotVisibleColor ("NotVisibleColor (RGB)", Color) = (0.3, 0.3, 0.3, 1) _MainTex("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "Queue"

Unity3D(五)在U3D中添加鼠标控制、键盘操作

C#控制WASD键盘控制前后左右+空格键抬升高度.鼠标右键跟随旋转.滑轮控制放大缩小: using UnityEngine; using System.Collections; public class CameraControl : MonoBehaviour { // Use this for initialization private GameObject gameObject; /** * 鼠标 */ public bool mouseControlEvent = false;//判断

Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体

在Unity Editor下,当选择Camera组件后,可呈现出Camera视口区域锥体,非常方便.但是当选择其他物体,如Cube后,就无法得知是否在Camera市口区内了,这里我找到了雨松MOMO的一篇博客<Unity3D研究院之获取摄像机的视口区域>,他用Camera.fieldOfView和Camera.aspect算出屏幕比例,然后再得出width.height(摄像机)绘制了四边形,非常酷,可以解决这个痛点. 我在巨人肩膀上,做了一些拓展: 自动获得Camera的farClipPla

游戏开发之UE4添加角色到场景中

接着上次继续学习,现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 创建一个从Character类继承的类 从基本框架类继承是很简单的: 1) 在项目中打开你的UE4编辑器. 2) 在文件,选择"新建C++类". 3) 这里你可以选择从Pawn类(Pawn类从控制器接收输入)继承或从Actor类继承.不过我们可以这里选择从Character类(角色)继承. 4) 点击继续,然后你可以命名这个类.这里

unity3d从零開始(五):了解摄像机

1.简单介绍 Unity的摄像机是用来将游戏世界呈现给玩家的,游戏场景中至少有一台摄像机.也能够有多台. 2.类型 Unity中支持两种类型的摄像机,各自是Perspective(透视)以及Orthographic(正交)两种. 3.參数 在Unity中创建摄像机对象时.默认情况下除了Transform组件还会带有Camera.GUI Layer.Flare Layer和Audio Listener组件.以下介绍下Camera组件的參数. 3.1    Clear Flags 清除标记. 决定屏

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记9——游戏摄像机&amp;三维地形的构建

第21章 游戏摄像机的构建 之前的程序示例,都是通过封装的DirectInput类来处理键盘和鼠标的输入,对应地改变我们人物模型的世界矩阵来达到移动物体,改变观察点的效果.其实我们的观察方向乃至观察点都是没有变的,变的只是我们3D人物的位置.说白了就是用D3DXMatrixLookAtLH在资源初始化时固定住视角,在程序运行过程中接收到消息并改变三维人物模型的世界矩阵而已.这章的主要内容就是创建出一个可以在三维空间中自由移动的摄像机类,我们准备给这个摄像机类取名为CameraClass. 设计摄

Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D

游戏动画基础 Animation组件 Animation组件是对于老的动画系统来说的. 老的动画形同对应的动画就是clip,每个运动都是一段单独的动画,使用Play()或CrossFade(),直接播放动画 或淡入淡出播放动画. animation.Play("name"); animation.CrossFade("name"); 下面的是它的几个属性 Animation:默认的动画片段: Aniamtions:包含的动画片段: Play Automaticall