施美雅
(泉州师范学院 应用科技学院,福建 泉州 362000)
关于人体模型处理技术的探究
施美雅
(泉州师范学院 应用科技学院,福建 泉州 362000)
选择VRML和Java3D技术处理三维人体模型,该方法不仅可以高效地支持人体模型的可视化,还支持基于三维人体模型的研究与应用.采用Java3D技术对三维人体模型进行处理,可成功地解决前人利用VRML技术开发系统所碰到的若干问题.
VRM L;Java3D;三维人体模型;可视化
VRML即虚拟现实建模语言,指的是一种可描述三维体型和交互环境的标准的三维文件格式.目前,市场上已存在很多的基于VRML技术的浏览器,比较流行的有Parallel Graphics所提供的Cortona Vrml Client,SGI公司所提供的CosmoPlayer等浏览器.
1)优点:具有平台的无关性;在因特网上已广泛普及,应用前景广阔;VRML程序编写方便,可用来构造三维的虚拟交互环境,于电子商务中展示数字化的三维产品模型,编写三维的动画片,编写三维的游戏,用于计算机的辅助教学.
2)缺点:基于Vrml技术的浏览器不提供用户的扩展机制;语言功能还不是很强,例如目前没有形体之间的碰撞的检查功能;与JAVA语言等其他高级语言的连接相对比较难掌握,难以适应某些领域的应用.
MATLAB产品家族是由美国Math Works公司所开发的,主要是用于概念设计,建模仿真,算法仿真,实时实现的理想的集成的环境.
1)优点:具有先进的设计思路、先进的开发思路、完整的专业体系;在许多领域都具有比较广阔的应用,特别是在建模仿真、科学计算和信息工程系统方面的相关设计及开发,现已经成为了对应行业内的第一个首选的设计的工具;在航空航天、机械化工、教育、电信、金融财务等行业已有非常多的用户,企业用户超过了五十万,个人用户超过了上千万;具有比较强大功能的工具箱,特别是对于矩阵和线性代数方面的计算能力;具有比较多的扩展资源;在虚拟的服装人体模型上也有一定的应用,支持对Web站点的扩展应用以及虚拟现实和三维图形的现实及处理[1].
2)缺点:存在网络多用户的实时访问限制;不便于与用户的实时交互.
DIRECT3D是微软公司所推出的三维图形的编程API.
1)优点:用于三维游戏的编程.
2)缺点:相关的学习资料目前比较少,而且难于获取;API一般情况下需要由VC等编程工具来编程,因此相关的编程人员就必须要具有比较高的编程功能,较难普及.
JAVA3D是基于JVAA2的,它封装了目前比较流程的3D开发工具,如Direct X和OpenGL,具有较高的编写三维图形的功能,JAVA语言相对比较简单,因此也较容易进行推广.
具有VRML2.0提供的所有的功能;可编写一个比较完善的三维应用程序;可生成简单的三维形体,还可以直接调用已有的三维形体;可实现具有颜色、贴图以及透明效果的形体;可在三维环境下生成灯光或者移动灯光;可生成雾、声音以及各式各样的背景等;可对形体进行多种变化以生成三维动画,如移动动画或变形动画;具有了行为的处理判断能力;可编写比较高级复杂的三维图形应用程序;可应用于各个领域,例如VR等;作为一种高级高效的三维图形编程工具,能利用硬件的加速功能对场景实现预编译,提高工作效率;Java3D技术可与Java技术实现无缝连接,使得系统的扩展性更强;对于Java3D技术的支持功能是用Java3D技术开发的,因此简单易用;对于Java3D技术暂不支持的功能,可利用Java技术来作底层开发;系统的结构灵活、易进行扩展、可随心所欲编程,可满足用户种种需求;具有共享精神,容易反编译,有相当多的共享源代码可学习及借鉴,使得Java技术发展迅速.
选用VRML技术描述3D人体模型,即用VRML文件保存人体模型.选择Java3D技术实现系统的开发.利用这种方法来开发三维人体模型不仅可实现自由地对整个人体进行显示、旋转和缩放,还可以单独地对躯干等部分进行显示,并可支持点云或表面或网络等三种不同方式的显示,对于人体模型可完全进行控制,为人体服装模型的应用奠定了基础.
在VRML文件中,三维人体模型数据有7大组成部分,它们分别是Rightl_FACE,Leftl_FACE,Torso_FACE,l Arm_FACE,RArm_FACE,LHand_FACE,RHand_FACE.
三维场景的描述是利用文本信息来实现的,是由许多节点层层嵌套形成的,每个节点是由域组成的,每个域都有对应的域值,这些域值都指定了一个场景的特征.
人体模型数据的VRML文件具有以下几个类型的节点[2]:
3.2.1 定位、缩放、旋转节点 Transform
Transform节点,具有10个域:缩放节点域-Scale、定位节点域-Translation、旋转节点域-Rotation、子节点列表域-chileren等.
3.2.2 外形节点Shap
Shap节点主要是用于创建造型,具有两个域:一个是Appearance域,一个是Geometry域.Appearance域值是用于定义造型的外观的,而Geometry域值是用于定义空间造型的几何尺寸大小的,主要包括了基本的造型和高级造型.
3.2.3 Appearance节点
该节点具有3个域,分别是Mmaterial域(用于指定造型的材料)、Texture Transform域和Texture域(用于指定造型的表面贴图).
3.2.4 Material节点
该节点具有6个域,分别是SpecularColor(用于镜面反射光)、Shininess(用于造型亮度)、EmissiveColor(用于自发光颜色)、DiffuseColor(用于漫反射)、AmbientIntesity(用于对环境光的反射)和Transparency(用于透明设置).
3.2.5 Indexed FaceSet面节点
该节点主要包括两个节点:Coordinate节点(用于表示顶点坐标)和CoordIndex节点(用于表示顶点坐标索引,例如,-1表示的是一个空间面的完结以及另一个空间面的开始).
采用Java3D技术实现对三维人体数据的处理,Java3D是一种面向对象的编程技术,它的数据结构采用的是场景图,具有方向性、不对称性的树状层次模型.
灵活的树型结构类似描述列表,包含了有关场景中的所有对象,以及渲染这些对象的所有的信息.
Java3D的场景树由视图分支和内容分支这两个分支组成.
4.2.1 视图分支
视图分支主要是包含了复杂的Java3D视图模型的所有一切细节.它由代表虚拟世界中视点的ViewPlatform对象和代表物理世界中观察者为之的View对象两部分组成.利用这两个对象,建立两个世界位置坐标.
4.2.2 内容分支
内容分支主要是描述了用户将在场景中所看到的内容,包括了所有的图形对象,如球体、立方体或更加复杂的几何对象等;及这些对象的具体颜色、具体的问题和这些对象之间的相互位置及交互内容;移动的对象,转换的对象,对象的具体行为等;场景中的所有的光照和烟雾.相对于视图分支,内容分支相对比较复杂.
建立三维人体模型场景的具体步骤如下:
1)创建一个对象,Canvas3D对象;
2)创建一个对象,Virtural Universe对象;
3)创建一个对象,Local对象,将其与对象Vritrual Universe进行联系;
4)创建View Platform视野子图;
5)创建三维人体模型子图:将用于屏幕上显示的三维人体模型作为ObjBG加入到场景中;
6)将具体的鼠标键盘的行为加入到SceneRoot,这样就可以控制Scene TG的缩放、平移和旋转操作;
7)对子图进行编译;
8)将子图插入到Locale.
利用上述操作所建立的场景将会包含作为TransformGroup节点的人体的坐标系信息,作为子节点TransformGroup节点的人体部件的信息,以及作为Geometry节点和Appearance节点的人体部件的几何坐标和肤色的信息.
Java3D技术可实现三维形体的自由平移或旋转,可在鼠标的控制下随意进行旋转,缩放和平移操作.这些动作模型均作用在Transform Group节点,为了实现这些功能,可直接在该TransformGroup节点下添加一些属性值即可实现.
本文对多种三维图形处理技术的优缺点进行对比,选择VRML技术描述三维人体模型,选择Java3D技术实现对三维人体模型的处理,该方法不仅高效地支持人体模型的可视化,同时也支持基于三维人体模型的研究与应用.
[1] 刘 雁,耿兆丰.Matlab在三维人体及服装建模上的应用[J].微型机与应用,2003,22(9):38-40
[2] 吴小华.构建个性化网络虚拟世界:VRML从入门到精通[M].北京:国防工业出版社,2002
Research of Human Body Model Processing Technology
Shi Meiya
(Applied Science and Technology College,Quanzhou Normal University,Quanzhou 362000,China)
Choosing VRML and Java3D technology processes 3d model of the human body,this method can not only effectively support the visualization model of the human body,also support the research and application of 3d model of the model body.Ussing the Java3D technology processes the 3d model of the human body can successfully solve some problems by VRML technology.
VRML;Java3D;3d model of the human body;visualization
王映苗】
1672-2027(2011)04-0112-04
TP37
A
2011-06-19
施美雅(1981-),女,福建晋江人,硕士,泉州师范学院助教,主要从事多媒体方向研究.