unity3D技术分享Unity技术分享

Unity引擎基础

2023-06-25  本文已影响0人  Arvin_

#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 结束衰减距离

上一篇下一篇

猜你喜欢

热点阅读