Unity引擎基础
#Unity引擎基础
·场景视角移动
鼠标右键旋转场景
选中view tool后鼠标左键移动场景
按住右键点击W/S/A/D/Q/R可实现场景漫游
选中物体 按住alt(option)通过鼠标左键围绕物体旋转场景 右键缩放场景
选中物体按F键 或在Hierarchy面板双击物体 可将物体视为场景中心
·变换工具快捷键
移动场景Q
移动物体W
旋转物体E
缩放物体R
·实用技巧
顶点吸附:选择物体后按住V 选择顶点 拖动顶点到目标顶点
·Camera(cam)
只可现实视锥内的画面
Audio Listener音频监听器:接收场景输入的音频源audio souse 并通过计算机的扬声器播放音乐
clear flags:处理空白部分(没物体的地方)
skybox 围绕整个场景的包装器,用于模拟天空材质 可更换材质
ctrl+shift+F 快速定位
将摄像机拖进组可跟随移动
只能有一个audio listener
projection中 perspective为3D Orthographic为2D
地图摄像机最好用2D(clear flags设置为depth only可不渲染空白部分)
*在人物头上放个片 加入组 可在地图摄像机中显示几何体 主摄像机不显示:
1.给片添加Layer mark 给物体添加Layer model并选择
2.在main camera Culling Mask中 选model 取消mark
3.在map camera Culling Mask中 选mark 取消model
·Material
在project面板中新建Material
Inspector面板中 Mesh Renderer负责渲染
Rendering Mode:
opaque不透明默认模式
cutout 去掉透明通道
transparent模式 改变Albedo中的A 可调整透明度
fade 渐变
Main Maps:
Albedo 基础贴图 决定物体表面纹理与颜色
Metallic 使用金属特性模拟外观
Specular 镜面反射
Smoothness 光滑度
Normal Map 描述物体表面凹凸程度
Emission 自发光(none不影响环境 realtime实时动态改变 backed烘焙效果)
Tiling 沿不同的轴 纹理平铺个数
Offset 滑动纹理
·Shader(着色器):一段嵌入到渲染管线中的程序,控制GPU运算图像效果的算法
纹理 着色器 材质 的关系
Shader 决定是否具有纹理颜色等某种功能
Material 只是配具体数值的面板
·InstantOC
渲染管线
CPU负责运算 GPU负责渲染
draw call:一帧需要渲染物体的次数
运行后stats中Batches为draw call(一般一个物体一个draw call 光线比较复杂)Tris为三角面数 Verts为顶点数
顶点处理:1.接收模型顶点数据(cpu给它发)【任何一个图形都是由点线(若干个三角组成的)】2.坐标系转换
图源装配:组成面 连接相邻顶点绘制三角面
光栅化:计算三角形面上的像素 并为后面着色阶段提供合理的插值参数
像素处理:对每个像素区域进行着色 写入到缓存中
缓存:一个存储像素数据的内存块(最重要的缓存是帧缓存与深度缓存)
帧缓存:存储每个像素的色彩 即渲染后的图像 帧缓存常在显存中 显卡不断读取并输出到屏幕中
深度缓存z-buffer:存储像素的深度信息(物体到摄像机的距离),光栅化时便计算各像素的深度值,如果新的深度值比现有值更近(更贴近摄像机),则像素颜色被写到帧缓存,并替换深度缓存。
Occlusion Culling(遮挡剔除)
当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少渲染数据量,提高渲染性能。(缺点:判断物体是否被遮挡额外消耗cpu)
步骤:
1.创建层
2.为游戏物体指定层(将参与遮挡剔除)与标签(将自动附加IOClod脚本)
3.物体添加碰撞器collider组件
4.摄像机附加脚本IOCcam
Lod(多层次细节)
根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获取高效率的渲染运算。(位置近用精模 位置远用简模 draw call不会变化)
·光照系统
Global Illumination(GI 全局光照)
能够计算直接光、间接光、环境光以及反射光的光照系统
通过GI算法可以使渲染出来的光照效果更真实
有无GI对比直接光:通过light组件(culling mask可选择照射对象)(可为场景添加光源)
阴影:Mesh Renderer中可开关投射阴影(cast shadows)和接收阴影(receive shadows)关闭不必要的阴影可优化渲染
*edit中project settings中quality调解质量
阴影剔除(设置阴影距离):edit—project settings—quality—shadows distances
环境光:作用于场景内所有物体的光照(通过Windows—Rendering—lightings—environment lighting设置)
Ambient Source 环境光源:
sky box通过天空盒颜色设置环境光照
Gradient 梯度颜色:sky天空颜色 Equator地平线颜色 Ground地面颜色
Ambient Color 纯色
Ambient Intensity 环境光强度
Ambient GI 环境光GI模式:1.Realtime实时更新 环境光源会改变选择此项 2.Backed烘焙 环境光源不会改变选择此项
反射光:根据天空盒或立方体贴图计算的作用于所有物体的反射效果,通过Environment Lightings中的Reflection控制
Reflection Source 反射源
间接光:物体表面在接受光照后反射出来的光
(通过Light组件中Bounce Intensity 反弹强度控制)
(可通过Scene面板Irradiance模式查看间接光照)
将不动的物体标记为静态(Inspector—Static)只有标记Lightmaping Static的物体才能产生间接反弹光照
实时GI
操作步骤:
1.游戏对象设置为Lightmaping Static
2.启动 Lighting 面板的 Precomputed Realtime GI
3.点击Build按钮(如果勾选Auto编辑器会自动检测场景的改动修复光照效果)
edit—preference—GI cache 可修改缓存
Precomputed Realtime GI:
Realtime Resolution 实时计算分辨率
CPU Usage:CPU利用率 值越大实时渲染效率越高
烘焙GI
当场景包含大量物体时,实时光照和阴影对游戏性能有很大影响,使用烘焙技术,可以将光线效果预渲染成贴图再作用到物体上模拟光影,从而提高性能,适用于在性能较低的设备上运行的程序。
·声音
unity支持格式:mp3、ogg、wav、aif、mod、it、s3m、xm
声音分为2D、3D
2D:适合背景音乐
3D:有空间感 近大远小
在场景中产生声音 主要依靠两个组件:
Audio Listener音频监听器 接收场景中音频源Audio Source发出的声音 通过计算机的扬声器播放
Audio Clip:需要播放的音频资源
Mute 静音
Play on Awake 勾选后场景启动时自动播放
Loop 循环播放
Pitch 音调
Stereo Pan:2D设置左右声道
Spatial Blend:2D和3D切换
3D Sound Settings 中 Volume Rolloff音量衰减方式 一般选Linear Rolloff 线性衰减(x轴为距音源距离 y轴为音量大小)
Min Distance 开始衰减距离
Max Distance 结束衰减距离