三维引擎的程序实现交互主要是通过以下模块的交互

三维引擎的程序实现交互主要是通过以下模块的交互

3D引擎的程序实现交互主要通过以下模块实现:

1. 相机相机

2. 型号

3. 材料材料

4. 动画系统

5. 粒子系统

6. 动态

7. 交互式界面界面

8. 人工智能人工智能

一、相机摄像头

三维开发与其他软件开发最大的直观区别在于,所有的视觉都是基于摄像头的,所以人们看到的交互操作就是摄像头的操作,比如平移、旋转、缩放等,摄像头的交互操作是否合理,直接关系到人类视觉体验的质量。

常见视角:第一人称、第三人称、上帝视角等

二、模型模型

类别:

三维模型由点、线、面组成,一般按制作方法分为两类

外部三维模型

:一般是由艺术家等数据处理人员制作的三维模型,这类模型的特点是美观,在程序中的可编辑性差(基本没有)。程序生成三维模型:

一般采用数学算法,以实现大批量、易于改变模型外观、易于模型分析等特殊要求的模型数据生成,此类模型具有一定的特殊参数,可以修改参数以实现模型的改变,如:程序生成流水线,特点是控制力强, 不漂亮(做漂亮更难)。

交互方式:模型

的交互(程序生成的模型除外)通常使用起来相对简单

1.变换:改变大小、旋转、位置(对于需要控制距离、角度等)的情况:很常见不解释2.隐藏/显示显示

/隐藏案例:在楼层应用程序中,显示3楼模型,隐藏3楼以上的模型

3.模型更换互换情况:对于相机更近,模型可以更清楚地看到,管道应用,当靠近阀门时,阀门从粗略的符号模型更换为更精细的模型(LOD)。

三、材料材料材料相互作用

是一种很常见的一种,材料相互作用:一般要改变材料,以

一个模型要替换另一个材质,例如:有些模型需要从物理显示改为半透明显示,可以利用材质的变化来实现。

材料的组成

1.着色器

着色器是控制模型外观显示的模块游戏动态,用于确定材料的表面属性,如:玻璃、金属、发光、布料等,是一种特殊的着色语言,利用显卡硬件来显示三维模型,需要对显卡和硬件有一定的了解。三维引擎一般会提供一些常用的着色器,如果特殊需要自己编写着色器,难度也比较大,实现难度和操作效率难度大。如:地面的实时反射。着色器不参与交互,但提供材质类型。

2.地图/颜色地图

地图一般按制作方法分为程序纹理和外部纹理,不引入程序纹理

交互方式:

1.更换贴纸,案例:将大理石地板更换为木地板,可以更换纹理来实现

2.变色:案例:管道从水状态变为水状态,颜色由白色变为绿色,可通过变色来实现。

3. 紫外线坐标

交互方式:UV

坐标的相互作用一般是调用UV移动、旋转、缩放等方法,例如:管道含水时,动态显示水流方向,通过为纹理设置UV运动即可实现水的动态流动效果。

4.参数参数

由于不同的着色器

参数不同,这里就不举例了:比如有些着色器可以控制半透明参数,可以实现从实体到透明的交互过程。

动画系统动画

系统是交互的主要模块,根据实现方法简单分为两类:程序交互动画和艺术动画程序动画

可以简单理解为通过程序化方法实现的交互动画,常见的有以下几种。

1.变形动画3D动画,案例:给气球充气,气球会膨胀;人们改变脸型等

2. 路径动画

路径动画示例:当前方向显示在电源管道动态中。

3. 等等

美术动画一般是动画师提供的模型动作文件,程序可以直接调用这个动画,也可以控制这个动画。

1. 对象动画:

由艺术制作的三维模型对象变换动画,示例:点击一个物体,该物体旋转(旋转角度不需要控制),如:点击门,门就会打开。

2. 骨骼动画骨骼:

骨骼动画一般由艺术制作的动画文件直接调用,案例:角色行走。如果需要控制这个动画,难度更大,比如:当一个人用一条腿踩到一个台阶时,当台阶上升时unity中粒子自发光,人的腿也会抬起,这需要骨骼逆向动力学来解决。

粒子系统

粒子系统是

一个三维引擎常见的系统,各种引擎粒子系统也有很大的不同,有的以插件的方式实现,通常用来实现如烟雾、喷泉、爆炸、烟花等特效,他的交互主要是控制粒子发射的粒子发射次数、粒子年龄、发射速度、发射面积等参数来实现, 但这些发射的粒子不能碰撞,不是模拟不是真正意义上的动态操作。

案例:模拟消防喷头的泄漏效果

动力学

主流3D引擎一般

集成了刚体、头发、布料动力学系统,一些先进的3D引擎有软件、破碎、电机等动态系统,动力学一般用来模拟真实的物理碰撞效果,效果真实。一般应用除了刚性体外系统外,很少使用动力学系统,其他动力学实现起来非常复杂,效果和资源消耗都比较大。

案例:堆放箱子在应力后跌落试验;绳结的交互式操作模拟微创手术缝合操作。

7. 交互式界面界面

用户界面

界面是很多3D引擎的常用模块,也是非常重要的一环,因为基于3D引擎开发的UI实现难度较大,一些交互效果实现起来复杂,效率也不高。unity3d引擎的UI界面功能非常简单,一般都是用插件NGUI实现的。

8. 人工智能人工智能

根据实际需要制作具体的数学计算模型unity中粒子自发光,通过专门的算法实现避让、搜索等功能,案例:地铁消防人员疏散演练、人员流量分析。(文章转自刘丕纸业)