韩丛梅 李学孺 刘玲 牟超琼 宗秀 杨从六 张杨
摘要:从哈尼族民居文化数字化保护视角,以云南省红河州哈尼族民居文化为例,利用3DMax建模手段对哈尼族“蘑菇房”传统民居屋舍、家具、厨具、乐器、农具等进行3D建模及数字化呈现,并基于Unity3D三维引擎实现3D漫游,研究所构建的三维场景交互性强,能提供人们身临其境,感受哈尼民居文化的虚拟体验。
关键词:哈尼族;民居文化;3D建模;Unity3D;虚拟漫游
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)12-0245-03
Abstract: From the perspective of digitized protection of Hani people's dwelling culture, taking Hani dwelling culture in Honghe Prefecture of Yunnan Province as an example, the Hani Traditional Dwelling Houses of the “mushroom house”, furniture, kitchenware, musical instruments, agricultural implements, etc. presented by 3DMax modeling and in digital way. And based on Unity3D engine to achieve 3Droaming, the three-dimensional scene constructed in the research has a strong interactivity and can provide people with immersive experience and the virtual experience of Hani's residential culture.
Key words: Hani People; Hani Architecture of Residence; 3D Modeling; Unity 3D; Virtual roaming;
1 引言
哈尼族民居文化在我国民居文化中独树一帜,云南省红河州是我国哈尼族主要聚居地之一,部分村寨仍保存着以“蘑菇房”为典型代表的民居文化。然而,随着新农村建设步伐的加快,哈尼族独有的民居风格在新旧事物的不断变更中正面临逐渐消失的危险。本研究拟从哈尼族民居文化数字化保护视角,将传统民居建筑造型及相关生产生活用具通过3D建模等技术手段进行数字化呈现,并提供人们逼真的虚拟漫游体验,以促进哈尼族民居文化的传播。
2 建模方案设计
本研究建模过程中综合使用了Adobe PhotoShop图像处理软件、3D Studio Max动画制作软件以及实现模型交互呈现的Unity3D三维引擎,哈尼族民居建模及漫游系统构建方案如图1所示:
1)素材采集优化。精准的模型数据信息及实物纹理素材是绘制高仿真度三维模型的前提,因此,在进行数据及素材采集时,需要尽可能对材质纹理、体积、位置、用途等各方面数据进行精确采集,并将采集数据进行优化整合。
2)3D Max建模。模型创建是整个设计最重要的一步,需对建模物体进行结构和形态的规划,对其结构特征分为规则物体和不规则物体,对规则物体采用堆砌建模法,对不规则物体采用细分建模法[1]。
3)模型优化。在建模的基础上需对建模的物体进行优化处理,包括:添加特效、灯光、物理力及渲染工作,以增添模型的真实感;对模型材质的编辑和贴图,是使模型更加贴近现实哈尼族民居的器具的现实状态。贴图是后期优化处理的关键,贴图效果能否体现该模型的作用以及现实形态对是仿真效果的一个评判标准。
此外,为了提高三维场景浏览的流畅度及逼真度,需对所构建的模型进行面数优化和精简,以减小模型的复杂度,同时对模型的表面、材质及纹理进行处理,以增加模型的逼真度。
4)场景创建及交互漫游。首先,需要创建主角漫游的场景,包括地形的创建,以及树木,花草等的摆放;其次,导入前期创建的三维模型以及人物;再次,添加区域光与点光源,创建渲染器并进行渲染;再次,进行交互设置,主要是对角色的控制和碰撞检测技术的实现;最后进行发布测试及优化。
3 模型构建及加工处理
3.1模型构建
哈尼族民居文化中涉及的“蘑菇房”屋舍、生产工具、生活用具及乐器等建模对象中既有不规则物体,也有规则物体,且部分物品弧度弯曲有浮雕花纹,增加了建模的复杂度。下面以规则物体“鼓”和不规则物体“动物图腾”模型构建为例对建模过程进行简单介绍:
(1)“鼓”建模。鼓是以中线为对称轴的物体,在中轴线对称模型构建中,常使用“车削”建模命令,创建过程如下:利用3D Max的“线”命令,在点层级下,单击鼠标确定控制点,调整点的位置以绘制轮廓线,在点层级下的几何体卷展栏中,选择“优化”命令以实现对轮廓线添加控制点,再使用“挤出”命令以增加其厚度。接着,将轮廓线条转换成可编辑样条线,确定旋转轴向,调整旋转角度使用“车削”命令后使截面曲线沿中心轴旋转360°生成一个对称的鼓三维模型,最后,添加网格平滑修改器,使鼓造型的輪廓线产生与实物鼓相似的曲面形状、饱满的感觉和光滑的效果[2]。鼓建模中的轮廓绘制及效果如图2所示:
(2)动物图腾建模。哈尼族以信奉动物为主,包括虎,龙,燕,鹰,蛇,狗等众多动物[3],其图腾雕刻有鱼,蛙,白鹇鸟,蟹,虾,蛇。本模型是由多个球体组合形成的,表面有凸出的花纹,在这类模型的构建当中,使用频率最高的是“置换修改器”。创建方式如下:第一步,用3D Max图形面板中“标准基本体”下的圆柱体命令;第二步,绘制好圆柱体,修改其边数,使其比较平滑。调整高度的参数值增加其厚度。第三步,使用线命令制作出动物轮廓,添加一个“壳”修改器,并调整内部量或外部量来精确模型的厚度,建构出鱼,蛙,白鹇鸟,蟹,虾,蛇等动物的模型。动物图腾模型轮廓图及效果图如图4所示。
3.2 模型贴图、渲染
在贴图时,根据所构建模型表面的平滑度选择合适的贴图方法,平滑表面模型贴图常使用的是“材质编辑器”,可根据需要贴图后使物体表面呈现出不同的质地、色彩和花纹。以哈尼族生产工具“犁”模型贴图为例,犁的特点:①它是不规则造型;②木头表面有被腐蚀现象。所以在犁的制作过程中首先要对“犁”模型进行局部分隔处理,分析它的不规则造型使之构建得更加真实,其次,在模型构建完成以后,编辑材质和进行贴图,使犁表面被腐蚀现象通过贴图展现。
渲染是三维建模过程中非常重要的一步,在3D Max中渲染主要包括实时渲染、最终渲染和快速渲染等。将前文制作好的材质和贴图,以及在环境光颜色,漫反射光颜色,高光颜色和灯光的作用下对模型进行渲染[4],以达到模型在现实生活场景中的真实呈现。本设计中采用最终渲染,使灯光和材质渲染得更加出色,此插件比3D Max自带的渲染器渲染得更加的细腻,富有真实感。
4 场景创建及交互漫游
在3D Max模型构建基础上,本研究选用Unity3D开发平台实现模型交互及虚拟漫游功能,Unity3D支持多平台发布、兼容性好,支持Javascript、C#、Boo等多种脚本语言,同时拥有强大的编辑器功能[5],是一个专业的3D游戏引擎。
在Unity3D中实现场景还原及虚拟漫游需要经过创建场景、引入3D模型、添加灯光、渲染、设置交互及导出等多个环节。
1)创建场景。场景(Scene)是Unity3D中用来放置3d对象、燈光、相机的场所,浏览者可通过场景视图观察到每一个对象在场景中的位置并进行调整。在Unity3D场景中对三维模型进行整合时,需特别注意模型的尺寸、比例及各模型之间的间距,以产生与实际相符的场景效果。
2)引入3D模型。将在3D max中导出的.fbx格式的模型导入到Unity3D引擎中,并根据各模型的实际空间位置及大小,设置相关参数进行整合。
3)添加灯光。Unity3D中导入的三维模型,假如场景中没有添加光效设置,整个虚拟环境将处在黑暗中,Unity3D中通过点光源及环境光的使用让场景中的3D渲染模型得以呈现。同时,为了使三维场景更加逼真,还需要在场景中计算实时阴影。
4)设置相机。在Unity3D场景中,需添加摄像机以实现场景的三维浏览,应特别注意摄像机的摆放位置,以通过它能多角度观察到特定的实时场景。用户在浏览场景过程中,可根据浏览需要配合键盘快捷键的使用进行动画相机的“暂停”和“播放”切换、“加速”或“减速”控制以及进行“视角”控制。
5)创建渲染器并渲染。3D模型呈现的最后环节是创建渲染器并实施渲染,渲染器对象负责计算指定相机角度下浏览器中场景的样子[2],通过创建对象,使计算机显卡渲染场景,从而在屏幕上绘制出3D模型。所有我们看见的物体都是需要渲染的,比如,天空盒,角色模型,场景模型,特效等等。
6)交互设置。在Unity3D中,浏览场景时的鼠标移动、拖拽、旋转及碰撞检测等是常见的交互方式,下面以移动交互及碰撞检测交互为例。
(1)Unity3D中实现“前后左右”场景浏览交互的关键代码如下:
水平轴(HoriZontal)
Alt Negative But a (A键) 按A键,检测函数返回-1,向左走;
Alt Positive Butt d (D键) 按D键,检测函数返回1,向右走;
Negative Button left (左光标键“←”)相当于按下了A键;
Positive Button left (右光标键“→”)相当于按下了D键;
垂直轴
Alt Negative But s (S键) 按s键,向后走;
Alt Positive Butt w (W键) 按w键,向前走;
Negative Button down (下光标键“↓”)相当于按下了S键;
Positive Button up(上光标键“↑”)相当于按下了W键;
添加JavaScript代码
Function start( )
{
var x:float=Input.GetAxis(“Horizontal”);
Time.deltaTimer *speed;
var z:float=Input.GetAxis(“Vertical”);
Time.deltaTimer *speed;
Transform.Translate(x,0,z);
}[3]
(2)碰撞检测则是模拟现实环境中物体与物体发生碰撞时的真实反应[6],比如遇到墙壁时,设置物体的物理属性以致不会“穿墙而过”,所以主角与墙体、地面、树木都需要进行碰撞检测。
7)发布与输出。Unity3D支持多种方式的发布和输出,可根据需要输出为通用的“.exe”格式,也可生成网络浏览文件,发布到互联网上直接通过浏览器访问,实现在线浏览和交互。
5 结论
在计算机虚拟现实技术广泛渗透于社会各领域的今天,网络环境下“虚”、“实”结合保护及传播非物质文化遗产是极其有效和被推崇的途径之一[2]。本研究从哈尼族民居文化数字化保护的视角,采用数字化的形式,综合3D虚拟现实以及文字、图像、声音、视频,动画等多媒体技术手段,围绕哈尼族典型民居“蘑菇房”及哈尼族常见的生产用具、生活工具进行3D建模,并基于Unity3D实现三维漫游,可提供人们身临其境、感受哈尼族民居文化的虚拟体验。
参考文献:
[1]李旭,王世发,慈为涛,司春景,姚江河.基于3DSMAX和Unity3D校园虚拟漫游系统的研究[J]塔里木大学学报,2015(2):3-3.
[2]彭荣仙,李学孺,李娅,徐静,陶艺品三维建模及交互式呈现研究——以玉溪师院传习馆陶艺品为例[J].安徽文学,2017(4):1-1.
[3] 龙倮贵.试析哈尼族动物图腾崇拜[J].红河学院学报,2010.8(3):1-1.
[4]王爱丽,程方会.基于3DMAX和Unity3D的三维虚拟产品展示系统[J].电子技术与软件工程,2017(03)
[5] 朱惠娟.基于Unity3D的虚拟漫游系统[J].计算机系统应用,2012,21(10):1-1.
[6]王彩玲,刘瑞香,宋钊.基于Unity3D的虚拟校园漫游的设计与实现[J.科技视界,2015(07)
[7] 武桐,王晓雨.Unity3D 中碰撞检测问题的研究[J].电子测试,2018,1:1-1