Unity3D数字孪生开发笔记(一)
- 一、常用快捷键
- 二、组件功能
-
- 1、Material
- 2、Camera
- 3、Instant OC
-
- 1>渲染管线
- 2>Occlusion Culling
- 3>LOD
- 4、Light
-
- 1>Global Illumination
-
- a>直接光照
- b>环境光照
- c>反射光照
- d>间接光照
- 2>Realtime GI
- 3>Lightmap
- 4>Light Probes
- 5、声音
- 三、其他
一、常用快捷键
1、按下鼠标滚轮拖动场景,滑动滚轮缩放场景;
2、点击鼠标右键同时按下W/S/A/D/Q/E键可实现场景漫游;
3、在Scene面板选中物体有按下F键,或者在Hierarchy面板双击物体,可将物体设置为场景视图的中心;
4、按住Alt同时通过戍边左键围绕某物体旋转场景,鼠标右键缩放场景;
5、顶点吸附:选择物体后按住V键,定位顶点,再拖拽到目标物体某个顶点;
二、组件功能
1、Material
材质:物体的质地,指色彩、纹理、光滑度、透明度、反射率、折射率、发光度等,实际就是Shader的实例
- Shader 着色器:专门用来渲染3D图形的技术,可以是纹理以某种方式展现。实际就是一段嵌入到渲染管线中的程序,可以控制GPU运算图像效果的算法
- Texture 纹理:附加到物体表面的贴图
1、创建:Project面板下鼠标右键,Create–>Material
2、Rendering mode:
1>Opaque 不透明
2>Cutout 镂空(去掉透明通道)
3>Transparent 透明(需要更改Albedo后面中Color中的A值)
4>Fade 渐变(需要更改Albedo后面中Color中的A值)
3、Material(材质)只能给到含有Mesh Renderer组件的物体,纹理在Material下,Albedo属性前设置;
2、Camera
- 向玩家捕获和显示世界的设备
- 场景中摄像机的数量不受限制
1、创建:SampleScene下鼠标右键–>Camera
2、Clear Flags(处理空白部分):
1>Skybox 天空盒 :围绕整个场景的包装器,用于模拟天空的材质
2>Solid color 纯色
3>Depth only 深度值大于主摄像机时,不显示空白
4>Don’t clear
3、多个Camera
- 通过修改Camera组件中Viewport Rect的值(整个屏幕看成1,(x,y)代表左下角,(w,h)代表右上角),可控制Game中显示分屏
- 将需要在前面显示的屏的Depth调大
- 摄像机可以有多个,但Audio Listener只能有一个,创建Camera时会自动附带这个组件,将主摄像机的Audio Listener留下,其余删除,否则运行时会 错
4、做地图摄像机时,不要直接看场景,可准备一张真是地图图片,让照相机只看图片和人物头顶,可加快性能
3、Instant OC
1>渲染管线
图形数据在GPU上经过运算处理,最后输出到屏幕的过程
理解: 首先将经过CPU计算得到的顶点进行坐标系变换;其次,连接相邻顶点,构成三角面;再次,计算三角面中像素的值;然后,对每个像素进行着色处理,保存到帧缓存中;最后输出到屏幕。

1、顶点处理
- 接收模型顶点数据
- 坐标系转换
2、图元装配
- 连接相邻的顶点,绘制三角面
3、光栅化
- 计算三角面上的像素,并未后面着色阶段提供合理的插值参数
4、像素处理
- 对每个像素区域进行着色
- 写入到缓存中
5、缓存
一个存储像素数据的内存块,最重要的缓存时帧缓存与深度缓存
- 帧缓存:存储每个像素的色彩,即渲染后的图像,站换乘常常在显存中,显卡不断读取并输出到屏幕中
- 深度缓存 z-buffer:存储像素的深度信息,即物体到射型及的距离,光栅化时便计算各像素的深度值,如果新的深度值比现在值更近,则像素颜色被写到帧缓存,并替换深度缓存
注意 :不考虑光照的情况下,一个物体一个Draw call
2>Occlusion Culling
即时遮挡剔除:Instant Occlusion Culling
- 遮挡剔除:当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能
缺点:CPU有额外开销(需要计算物体到摄像机的距离)
适用于:物体分布较密集,有大量物体被遮挡
3>LOD
多细节层次:Levels of Detail
- LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染效果
注意: 使用LOD时,模型必须命名为Lod-0、Lod-1……
缺点:CPU有额外开销、占用内存更多
适用于:场景存在高面模型,且高面模型有远近变化的场景
4、Light
1>Global Illumination
简称GI,即全局光照
- 能够计算直接光、间接光、环境光以及反射光的光照系统
- 通过GI算法,可以使渲染出来的光照效果更佳真是丰富
a>直接光照
从光源发出的光,通过Light组件实现
1、Type:
-Directional Light 平行光:平行发射光线,可以照射场景内所有物体,用于模拟太阳
-Point Light 点光源:在灯光位置向四周发射光线,可以照射其范围内的所有对象,用于模拟灯泡
-Spot Light 聚光灯:在灯光位置向圆锥区域发射光线,哉悠哉这个区域内的所有物体才会受到光线照射,用于模拟探照灯
-Area Light 区域光:有一个面向一个方向发射光线,只照射该区域内物体,仅烘培时有效,用在关系概念较为集中的区域
2、阴影剔除:设置现设阴影的距离
Edit–>Project Settings–>Quality–>Shadows Disdance
b>环境光照
作用于场景内所有物体的光照,通过Environment Lighting 中的Ambient 控制
1、Ambient Source :
-Skybox 通过天空盒颜色设置环境光照
-Gradient 梯度颜色
- Sky 天空颜色
- Equator 地平线颜色
- Ground 地面颜色
-Ambient Color 纯色
c>反射光照
根据天空盒或立方体贴图计算的作用于所有物体的反射效果,通过Environment Lighting 中的Reflection 控制
1、Reflection Source:
-Skybox 天空盒
-Custom 自定义
- Cubemap 立方体贴图
d>间接光照
物体表面在接受关照后反射出来的光,通过Light组件中的Bounce Intensity 反弹强度控制,可以在Scene 面板Irradiance模式查看简介光照
注意: 只有标记Lightmaping Static 的物体才能产生间接反弹光照
2>Realtime GI
实时GI: 在运行期间任意修改光源,而所有的变化可以立即更新
1、操作步骤:
- 游戏对象设置为Lightingmap Static
- 启用Lighting 面板的Precomputed Realtime GI
3>Lightmap
烘焙:当场景包含大量物体时,实时光照和阴影对游戏性能有很大影响。使用烘焙技术,可以将光线效果预渲染成贴图再作用到物体上模拟光影,从而提高性能。适用于在性能较低的设备上运行的程序。
注意: 只有标记Lightmaping Static 的物体才能使用烘焙
4>Light Probes
光源侦测:由于LightMapping 只能作用于Static 物体,所以导致运动的物体与场景中的光线无法融合在一起,显得非常不真实。而Light Probes 组件可以通过Probe收集光影信息,然后对运动物体邻近的几个Probe进行插值运算,最后将光照作用到物体上。
5、声音
1、Unity支持的音频文件格式:mp3、ogg、wav、aif、mod、it、s3m、xm。
2、声音分为2D、3D两类:
- 3D声音:有空间感,近大远小
- 2D声音:适合背景音乐
3、在场景中产生声音,主要依靠两个重要组件:
- Audio Listener 音频监听器:接收场景中音频源Audio Source 发出的声音,通过计算机的扬声器播放声音
- Audio Source 音频源
三、其他
1、Mesh Filter 格过滤器:用于从资源中获取 格,决定物体的形状;
2、Mesh Renderer 格渲染器:决定物体的外观;
3、一个Project包含多个Scene,一个Scene包含多个GameObject,一个Gameobject包含多个Component;
4、创建父对象时,可先建立一个空的3D目标(Creat Empty),然后将子对象全都拖入空对象,经过Reset后再做调整;
5、子对象的坐标轴时相对于父对象的:移动父对象,子对象的Position不发生变化;旋转父对象,子对象的Rotation不发生变化;
6、2D图片的要求:
1>背景图片,一般为JPG
2>人物、道具等其他照片,一般为PNG(背景透明)
Unity可接受图片类型:PNG、JPG、PSD
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!