Unity摄像机与灯光相关知识

一、Inspector窗口

Inspector窗口可以查看和编辑对象的属性以及设置

其中包含各种组件,例如用Cube对象来举例

1.Sphere(Mesh)组件:

用来决定对象的网格属性,例如球体网格为Sphere、立方体网格为Cube

2.Mesh Renderer组件:

用来设置对象的渲染属性,例如材质球、灯光、光照探针等

3.Material材质组件

用来设置对象的材质属性



unity中的任何对象都是由不同的组件生成的

二、摄像机

1.Clear Flags

Clear Flags 清除标记

每个相机在渲染时会存储颜色和深度信息。屏幕的未绘制部分是空的,默认情况下会显示天空盒。当你使用多个相机时,每一个都将自己的颜色和深度信息存储在缓冲区中,还将积累大量的每个相机的渲染数据。当场景中的任何特定相机进行渲染时,你可以设定清除标记以清除缓冲区信息的不同集合。可以通过下面四个选项之一来完成Skybox 天空盒

这是默认设置。在屏幕上空的部分将显示当前相机的天空盒。如果当前相机没有设置天空盒,它会默认使用渲染设置(在Edit->Render Settings里)中选择的天空盒。然后它将退回使用背景颜色。

Solid Color 纯色

屏幕上的任何空的部分将显示当前相机的背景颜色。

Depth Only 仅深度

如果你想绘制一个玩家的枪而不让它在环境内部得到裁剪,你要设置一个深度为0的相机来绘制环境,还要另一个深度为1的相机单独绘制武器。该武器相机的清除标记应设置为仅深度。这将保持环境的图形显示在屏幕上,但会丢弃所有关于每个对象在三维空间中的位置的信息。当枪被绘制出来,不透明的部分将完全覆盖任何已绘制的事物,而不管枪到墙之间如何接近。

Don't Clear 不清除

该模式不清除任何颜色或深度缓存。其结果是,每帧绘制在下一帧之上,造成涂片效果。这不是用于游戏的典型方式,最好是与自定义着色器一起使用。

主要学习一下Depth Only:

个人理解为,假设一款FPS射击游戏,如果为武器单独添加一个Camera,并且调整Depth值,使其大于原来的Camera的Depth,这样这把武器便会永远显示在场景中,而不会因为距离太近或者太远导致武器被裁剪掉


上文引用自:

unity摄像机中clear flags属性介绍 - 技术专栏 - Unity官方开发者社区

2.Culling Mask

Culling Mask是相机组件的一个重要属性,它决定了相机渲染场景中的哪些层级(Layer)的物体。

3.Projection

用来决定摄像机的投影方式的属性

  • Perspective 透视投影
  • OrthoGraphic 正交投影

4.Field of View

摄像机的焦距设置

5.Target Texture

摄像机目标渲染纹理

目标渲染纹理:

通常情况下,摄像机直接渲染到屏幕上,但对于某些效果,将摄像机渲染到纹理中非常有用。这可以通过创建 RenderTexture 对象并将其设置为摄像机上的 targetTexture 来实现。然后,摄像机将渲染到该纹理中。

当 targetTexture 为 null 时,摄像机渲染到屏幕上。

渲染到纹理时,摄像机始终渲染到整个纹理中;

  • 第一步 创建 Render Texture
  • 第二步 将创建好的 Render Texture 拖动到摄像机的目标渲染纹理通道中,这样摄像机视角下的画面就会渲染到 Render Texture 中
  • 第三步 可创建一个材质球 将摄像机画面下的纹理贴图Render Texture赋予到材质球上

6. Target Display

目标显示设备,用于多摄像机的显示标记


在创建多个摄像机后,程序可能会报错

可以将后创建的摄像机的监听组价给关闭,这样就不会报错了

7. Depth

摄像机的深度,当有多个摄像机时,深度的大小影响摄像机的渲染次序

深度数值越大的摄像机,越先被渲染

8.创建多个Game视口并显示不同的摄像机画面

  • 在Game标签下右键,点击 Add Tab , 增加 Game 视口
  • 并为不同的Game视口显示不同的摄像机画面

9.多摄像机下利用 Depth Only 为Game视口创建小图标

注意:只能给深度数值最大的摄像机设置 Depth Only,这样两个摄像机的画面才会都显示在 Game视口中,而当两个摄像机深度数值相同,则都可以

然后可调整摄像机的Viewport Rect参数为该摄像机的画面创建小图标

10. Ctrl+Shift+F

选中摄像机并调整场景画面角度后按Ctrl+Shift+F,Game窗口就会显示此视角的摄像机画面

三、灯光

1.灯光类型、颜色、强度

2.灯光下阴影的参数设置

  • Cookie 阴影的剪影

3. 灯光的光晕

4. Render Mode

设置灯光的渲染模式,有自动、重要、不重要三种

5.Culling Mask

6.为平行灯添加光效的组件 Lens Flare

相关推荐
不吃斋的和尚2 小时前
Unity中一个节点实现植物动态(Shader)
unity·游戏引擎
虾球xz3 小时前
游戏引擎学习第117天
学习·游戏引擎
程序猿多布3 小时前
Unity 位图字体
unity
千年奇葩5 小时前
Unity shader glsl着色器特效之 模拟海面海浪效果
unity·游戏引擎·着色器
007_rbq7 小时前
XUnity.AutoTranslator-Gemini——调用Google的Gemini API, 实现Unity游戏中日文文本的自动翻译
人工智能·python·游戏·机器学习·unity·github·机器翻译
万兴丶8 小时前
Unity 适用于单机游戏的红点系统(前缀树 | 数据结构 | 设计模式 | 算法 | 含源码)
数据结构·unity·设计模式·c#
软件黑马王子16 小时前
Unity游戏制作中的C#基础(5)条件语句和循环语句知识点全解析
游戏·unity·c#
程序趣谈20 小时前
UE5中按钮圆角,设置边框
ue5·游戏引擎
龚子亦21 小时前
Unity结合Vuforia虚拟按键实现AR机械仿真动画效果
unity·游戏引擎·ar·数字孪生·虚拟仿真