UNITY开发VR入门---VR自学手册-2

作者: 时间:2022-05-21 点击数:

*认识手柄

开发VR注意事项:

注意UI分辨率和画质:尽可能使用粗体。

考虑使用剧情型的UI:传统的项目中,UI元素通常是在显示器的顶部 包括:生命值‘得分的等,用户界面与游戏界面没有关联,但是对游戏玩家有一定的影响。这就是“非剧情型UI”但是这种UI界面对VR基本不适用,因为我们的眼镜无法聚焦在太近的物体上,因此我们需要考虑使用剧情型UI,具体形式坑内是墙上的闹钟、电视、计算机屏幕等或者全息展示

考虑UI元素的放置位置:将UI元素放在什么位置,让用户更容易观察,太靠近用户会导致眼部疲劳,离得太远会感觉聚焦在地平线上,这里需要考虑UI元素的比例大小:一般采用2的N倍大小,例如512 1024 2048;

提醒用户关注某一个特定的方向:虽然VR可以360°查看,但是有时候需要我们主动提醒用户某个特定的方向,在某些场景中我们可以用箭头来引起用户的注意,这些箭头会更据用户的朝向淡入淡出。

避免移动摄像机,因为在VR中移动 用户本身没有移动,这就会造成用户眩晕,我们可以为用户提供一个固定参考物,例如:驾驶室 ;一般传送位置 使用Teleport传送;

使用淡入 淡出或者闪烁渐变的运动效果,从而优化体验;

了解游戏引擎:unity和UE4

UE4:功能很强大,但是需要学习C++语言,学习曲线相对比较陡峭,所以入门相对较难;如果需要效果特别逼真、大场景,例如房地产项目,可以采用ue4;

unity:简单易上手,人人都能做游戏,支持C#,教程资源非常丰富,开发者可以轻松上手,不需要太高的成本、只要有好的创意就可以出好作品。

视觉渲染:在游戏引擎中,视觉渲染部分是最重要的组件,其中包括低阶渲染器、场景图、剔除优化、视觉效果(粒子特效、光照贴图、动态阴影、全屏后期处理效果、颜色校正)、前段:(HUD、游戏内置图形用户界面、游戏内置菜单、视频等)要学好渲染系统需要:3D数学、线性代数、数值计算、计算机图形学、OPENGL、引擎的工具管道架构及运行时的渲染API;初学者只需要了解通过基于现有的引擎如何实现所需要的的效果即可;

性能分析与调试:游戏的卡顿对于游戏来时是非常致命的,对于AR、VR游戏或应用来说,性能优化则显得尤为重要,特别是对于VR游戏来说,性能优化是影响玩家体验的最关键的罂粟。因为对于VR游戏来说,需要在90-120fps的帧速率现实画面才流畅,如果优化不给力,很有可能在5分钟内用户就会产生眩晕感。

多人在线:

音效:好的游戏背景音乐和音效可以大大提升游戏的吸引力,因此绝大数的引擎会提供音效系统。

第二部分:unity中的核心概念

工欲善其事必先利其器,在学习VR开发之前可以先掌握Unity的基本用法

场景:游戏场景中包括了所有的游戏对象,我们可以在场景中创建主菜单、不同的关卡等;

游戏对象:游戏中的每一个对象都是游戏对象,这就意味着游戏中所需要的考虑的一切都和对象有关。游戏对象也是一种容器,我们可以添加不同的组件,从而成为游戏角色。

组件:游戏对象中往往包含多个游戏组件,游戏组件可以为游戏对象提供不同的功能,常用的组件如下:

transform:游戏对象的基础组件,可以修改游戏对象在地图中的位置、旋转角度和缩放值、默认情况下,所有的对象都有一个transform组件。

mesh网格类型的组件:渲染器

particle sysytem:粒子系统,该组件可以模拟各种各样的特效例如:火焰、下雨等,功能强大;

physice(物理组件 ):为了让创建的场景更具有真实感,我们需要让物体在虚拟世界遵循现实世界的物理规则。模拟物理行为;

Scripts(脚本组件):该组件由用户自己编写,定制C#语言;

audio(音频组件):用于设置音效或者背景音乐的各种属性,从而更好的游戏氛围;

video(视频组件):用于天剑unity3d内置的视频播放器;

rendering(渲染)和视觉渲染相关的组件有很多,例如:摄像机、天空盒、灯光、遮挡剔除;

event(事件):用于设置和响应各种事件。

network(网络 ):用于设置游戏相关的网络属性;

UI(界面):和UI相关的组件;

AR(增强现实):增强现实相关的组件。

除了以上组件,还有很多,这里只是一些常用的组件。

预制体:(prefab)是一个游戏对象及其组件的集合,目的是是游戏对象可以重复使用,一个形象的比喻:预制体好比模板,我们可以使用预制体在场景中快速创建一个具有特定组件的属性值得游戏对象;

unity光照系统

unity的的灯光组件大概可以分为两个类别:光源组件和烘焙组件

常见的光源类型:

1.Directional Light:几乎每个场景都会有的光源对象,常用于模仿太阳光的效果,通过调整角度控制光照;

2.Point Light:点光源,点光源从中心向四周扩散,如火把、室内灯灯;

3.Spot Light:射灯,从中心呈扇形想某一个方向发出,收角度和范围影响。用于模拟 手电筒和车灯等效果;

4.Area Light:和上面不一样,这个为烘焙型灯光,只有在烘焙的情况下使用。场景需要设置为静态;

PS:场景中阴影越柔和开销越大,硬则,锯齿感强;

全局光照:

灯光相互作用,如灯光照射到物体A,物体A反射的光同样照到物体B,这种关系是通过全局光照处理的。这种方法非常耗费资源,通常我们使用烘焙。

烘焙:

设置游戏对象为 static状态,更改烘焙模式,了解光照探头,反射探头;

粒子系统(ParticleSystem):

例如:风雨雷电雾灯,这类对象都是通过粒子特效来进行完成的,游戏室炫酷的魔法效果;

着色器

计算机图形学中,着色器是指专门用于渲染着色的计算机程序看,作用是设置图像的光照阴暗、和色彩等。着色器通常以极高的灵活性在图形硬件上运行。在unity中,对游戏对象的渲染是通过材质、着色器和纹理贴图共同完成的。三者的关系非常紧密,共同作用于游戏对象,形成丰富的游戏世界。

unity中的标准着色器:

Standard Sharder:用来处理大多数真实世界中的材质,如石头、玻璃等还可以用来处理皮肤,毛发;

了解着色器的相关渲染设置:

1.Opaque:默认的设置,适合渲染不透明的物体

2.Cutout:允许渲染带有完全透明的或者完全不透明的物体。

3.Fade:允许通过透明度的等级实现物体的渐变现实。

4.Transparent:允许渲染一些纯透明的物体,例如:玻璃、透明塑料凳;

Main Maps(贴图):

标准着色器有6种贴图类型,具体如下:

1.Albedo:基础颜色贴图,用于定义材质的色彩和透明度;

2.Metallic:金属贴图,用于定义材质表面对光的反射量。

3.Normal Map:法线贴图,用于添加划痕凹凸效果。可以减少计算机性能开销;

4.Height Map:高度贴图,类似于法线贴图,但是视觉效果更强。配合法线贴图使用;

5.Occlusion Map:剔除贴图,用于定义物体特殊区间的间接进光量 ,例如:阴影块儿;

6.Emission:自发光贴图了,用来控制材质球表面发射的光线的色彩和强度。

*Seconday Maps:允许我么设置材质的第二个纹理,从而实现更为复杂的效果。

Skybox天空盒:

一种特殊的着色器,可以用到整个场景中。

Shader Graph:用一种可视化的方式来创建和链接节点,并达到最终的效果。

后期处理(Post Processing):用来产生类似照片处理的效果,可以轻松的给游戏场景添加震撼的视觉效果,无需做更多的美术方面工作。

游戏中的UI系统

UI(User Interface ,用户界面)是游戏中最常见和最直接的交互手段,他可以为玩家提供操作提示和指引,让玩家在游戏过程中和系统进行交互。

UGUI:Canvas、Image、Text等

渲染模式:

1.Screen Space-Overlay:屏幕空间 覆盖,此CanVas下面的所有游戏对象UI都会直接绘制在游戏窗口的平面上,简言之,优先显示游戏UI,不会被其他遮挡;

2.Screen Space -Vamera:屏幕空间 摄像机,显示效果基本和第一个一致,是指在Scene视图有区别,需要手动指定渲染摄像机Render Vamera

3.World Psace:世界空间 在VR项目开发中,所有的Canvas都要设置成World SPace。

了解UI系统的调用:引入UI命名空间:UsingUnityEngine.UI;

创建一个unity地形:

1.如何安装terrain Tools

首先需要激活

2.下载包里面的资源,

开始制作 选择笔刷 开始刷地形,按住shift 可以降低地形

1.绘制地形基本形状

笔刷强度快捷键:A+鼠标左键

笔刷大小快捷键:S+鼠标左键

笔刷方向快捷键:D+鼠标左键

笔刷切换快捷键: , or 。 逗号或者句号

jitter:随机值

快捷键F: 鼠标在地形图内 聚焦到某点 在外 显示地形整个框架 按住F可以游览地形

2.填充颜色 纹理

添加纹理

法线值一般:1

————————————————

版权声明:本文为CSDN博主「俗人杂文」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_41853937/article/details/123876045

中国人民警察大学版权所有