三维人体建模与显示
- 格式:doc
- 大小:1.91 MB
- 文档页数:7
三维建模的概念及关键概念1. 概念定义三维建模是指利用计算机软件或其他数字工具来创建和呈现三维对象的过程。
它通过将实体的几何形状、外观和属性抽象为三维模型的形式,实现了对实际物体的数字表示。
三维建模的目的是为了模拟真实世界中的物体或环境,可以用于模拟、设计、演示和渲染等各种应用领域。
2. 关键概念在三维建模中,有几个关键概念需要了解和掌握:2.1 点、线和面点(vertex)是二维或三维空间中的一个基本单元,用于定义对象的位置。
线(edge)是由两个点连接起来的一条线段,用于定义对象的边界。
面(surface)是由三个或多个线相连形成的一个平面,用于定义对象的表面。
点、线和面是构成三维模型的基本元素,在三维建模软件中通常被称为顶点(vertex)、边(edge)和面(face)。
2.2 多边形多边形(polygon)是由多个直线段相连形成的一个封闭图形。
在三维建模中,多边形常用于表示物体的表面,可以是三角形、四边形或更多边形。
多边形是三维建模中最常用的形状类型之一,通过组合和排列多个多边形可以构建出复杂的物体。
2.3 曲面和NURBS曲面(surface)是由一组控制点和权重控制的参数化函数生成的,可以精确地描述实体的形状。
常见的曲面类型包括贝塞尔曲线、B样条曲线等。
NURBS(Non-Uniform Rational B-Spline)是一种常用于曲面建模的数学表示方法,它通过调整曲线上的控制点和权重来改变曲线的形状。
NURBS曲线和曲面具有高度灵活性和准确性,可以用于设计各种复杂的曲线和曲面。
2.4 纹理纹理(texture)是应用于三维模型表面的图像或图案,用于模拟物体的外观和细节。
纹理可以包括颜色、图案、材质等信息,常用于增加模型的真实感和细节。
在三维建模软件中,可以将纹理映射到模型表面,以实现真实的渲染效果。
2.5 光照和材质光照(lighting)是指模拟光线在三维场景中的传播和反射过程,用于模拟物体的明暗、阴影和反光效果。
三维虚拟世界中虚拟人物的构建方法研究作者:刘锴来源:《电脑知识与技术》2009年第26期摘要:虚拟人物是三维虚拟世界的重要组成部分,在军事仿真、计算机辅助教育和训练、3D 网络游戏等领域都有着广泛的应用。
如何增强三维虚拟世界中虚拟人物的真实感,已成为目前研究的热点问题。
从人体建模、动作设计、人工智能、情感实现四方面探讨了虚拟人物的构建方法,并对这些方法进行了分析和总结。
最后,对虚拟人物的进一步研究方向提出了展望。
关键词:虚拟人物;人体建模;动作设计;人工智能;情感中图分类号:TP391文献标识码:A文章编号:1009-3044(2009)26-7499-02Research on the Construction Method of Virtual Human in 3D Virtual WorldLIU Kai(School of Computer Science, Sichuan University of Science & Engineering, Zigong 643000, China)Abstract: Virtual human is an important part of 3D virtual world, it has a wide range of applications such as the military simulation, computer-assisted education and training, 3D online games and other fields. How to enhance realistic of virtual human in 3D virtual world have become a hot issue of current study. Construction methods of virtual human are discussed in the human body modeling, motion design, artificial intelligence, affective realization, and these methods are analyzed and summarized. Finally, it is concluded with the direction of future research of virtual human.Key words: virtual human; human body modeling; motion design; artificial intelligence; affective随着虚拟现实技术的逐渐成熟,人们己经不再满足于构建只有景色、建筑物等一般视景信息的虚拟世界,迫切需要在虚拟世界中加入有生命的对象,满足用户的参与感。
三维人体姿态重建的研究背景及意义下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
本文下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Downloaded tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The documents can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!三维人体姿态重建的研究背景及意义。
使用Blender进行人体解剖和医学模型的创作Blender是一款功能强大的三维建模和动画软件,它不仅可以用于电影、游戏和动画制作,还可以用于人体解剖和医学模型的创作。
本文将介绍如何使用Blender来进行人体解剖和医学模型的创作。
首先,我们需要收集人体解剖和医学模型相关的参考资料。
可以在图书馆、互联网或者专业出版物中找到大量的解剖学书籍和模型图。
收集到足够的参考资料后,我们可以开始创建Blender项目。
在Blender中,我们可以使用建模工具来创建人体解剖和医学模型的基本形状。
通过使用顶点、边和面,我们可以构建出骨骼、器官、肌肉等模型的基础结构。
可以使用多边形建模或者Sculpting(雕刻)工具来精确地塑造模型的细节。
在模型的创建过程中,我们可以使用Blender强大的材质和纹理编辑工具来增加模型的真实感。
可以通过添加适当的材质、纹理和光照效果来模拟肌肉、皮肤和骨骼的外观。
通过对材质和纹理参数的调整,我们可以实现更加逼真的效果。
另外,在模型的创建过程中,我们可以使用Blender的动画功能来模拟人体的运动和功能。
可以使用骨骼动画或者逐帧动画来模拟肌肉的收缩和放松,以及人体的各种姿势和动作。
通过动画功能,我们可以更加清晰地呈现人体解剖和医学模型的功能和结构。
当模型创建完成后,我们可以使用Blender的渲染功能来生成高质量的图像或者视频。
可以选择不同的渲染引擎和设置来实现不同的视觉效果。
渲染完成后,我们可以使用Blender的后期处理功能来进一步调整图像的亮度、对比度、色调等参数,以达到更好的呈现效果。
除了人体解剖和医学模型的创作,Blender还可以用于教育和研究领域。
通过使用Blender创建人体解剖和医学模型,我们可以帮助学生更好地理解人体结构和功能,以及各种疾病和损伤对人体的影响。
同时,Blender还可以用于医学研究,例如通过模拟和分析人体运动和功能来辅助医学诊断和治疗。
总结起来,使用Blender进行人体解剖和医学模型的创作是一项复杂而有趣的工作。
口腔3D建模一、基于CBCT与三维扫描的数字化建模1.1 数据采集:3维数据的采集是模型制作的重要一步。
目前常用方式有CT技术和光学扫描技术。
在口腔医学中,其研究的对象—牙齿的大部分都在骨骼里面,无法从体外直接观察到,要了解牙根的信息,必须借助于X光与CT等医学成像技术。
CT成像能够提供骨骼乃至牙齿内部的细节,为诊断与治疗提供大量的信息,然而由于其成像的特点与技术的限制,其输出的数据形式是一层层的断层图像,不够直观. 这就要求有一种技术能够将CT体数据转换为目前已在工程领域发展较为完善的各种三维模型处理方法所能够识别的模型,以利用现有的计算机模型处理与设计技术,进行譬如辅助义齿设计、辅助义齿制造等等应用。
除CT技术外,三维扫描技术也为口腔数据采集做出了巨大的贡献。
技术即是采用机械或光学方法,而获取物体的三维计算机模型。
采集三维物体表面的形状、颜色等信息。
目前的三维扫描技术可以达到微米级的精度,可以提供牙齿可见部分表面的细节,但无法获取牙齿的完整体信息,而齿科常用的CBCT (Cone BeamCT,锥形束计算机断层成像术)虽能获取牙齿的体数据,其精度却仅为毫米级。
如能将两种采集技术的数据结合到一起,则可以获得一个既能满足获取牙齿完整结构信息的要求,又能保证领面精度用于辅助设计的三维模型。
1.2 图像预处理:医学图像普遍存在边缘模糊、噪声等缺陷,这些缺陷将对基于图像信息的算法产生不利影响,为降低这些缺陷对于三维重建的影响,研究平面图像的处理技术,找到不同处理方法的一个有效组合,以滤去图像中的噪声,增强图像边缘。
1.3 基于CBCT体数据的三维重建:CBCT设备输出的断层图像序列是人体被采集区域内空间的三个方向上均匀分布的采样点,这种扫描实际上是一种空间上的数据采集,包含了人体一定体积内的信息,每个采样点(称为体素)的位置需要用三个坐标来描述,因此称为体数据。
体数据为离散的数据,体素之间除了与相邻体素的邻接关系外,不存在其他的联系,无法从中区分哪些体素属于特定的组织和器官,为利用采集的数据进行有意义的工作,首先需要将属于不同组织与器官的体素区别开来,即图像的分割。
AnyBody人体建模仿真软件介绍●基本说明AnyBody人体建模仿真软件是计算机辅助人类工效学和生物力学分析软件,其计算人体对于环境的生物力学响应,为人机工程学产品性能改进和生物医学工程研究提供了一个新颖的平台。
作为人体建模仿真分析的革命性软件,使人类工效学成为一门定量的学科。
AnyBody软件系统是商业化软件中唯一兼具人机工程和生物力学的分析软件,其可以通过导入完整的人体肌肉骨骼模型,用于产品的人类工效学设计。
AnyBody软件系统是目前市场上唯一可以分析完整骨肌系统的软件,能够获得人体骨肌系统模型模型内部和与外界环境接触的外部的所有运动学、动力学和生物力学参数指标,可以计算模型中各块骨骼、肌肉和关节的受力、变形、肌腱的弹性能、拮抗肌肉作用和其它对于工作中的人体有用的特性等。
AnyBody软件的模型和算法都在国际专业期刊上发表,得到广泛验证和认可,已经成为人体骨肌系统建模仿真领域的事实上的标准。
其用户包括美国宇航局(NASA)、欧洲宇航局(ESA)、福特汽车、BMW、麻省理工学院、上海交通大学、吉林大学、北京航空航天大学、航天员科研训练中心等诸多国际国内著名科研机构和高等院校。
●用途AnyBody人体建模仿真软件主要用于如下领域的计算机辅助人类工效学、人机环工效学和生物力学研究。
航空学空间微重力对应措施研究空间锻炼方法和训练器材设计航天学驾驶舱人类工效学研究超重力场条件研究人体安全性评估紧急任务执行力分析汽车工业上车/下车人体动作分析包装工效学设计汽车转向和操作工效学研究国防科学耐力优化研究士兵装备工效学设计战斗车辆工效学设计工作环境工效学办公家具设计生产装配线工效学研究重型机械操作工效学研究航空学空间微重力对应措施研究空间锻炼方法和训练器材设计骨科骨外创伤植入物设计骨科固定装置设计假体设计体育运动与器材球拍与球棒设计自行车赛车设计赛车和摩托车设计运动设计体育训练运动分析临床医学步态分析手术过程规划轮椅设计●功能AnyBody软件功能丰富,应用广泛,主要包含如下方面:1.高效掌控前所未有的高细节度人体模型--包括1000多个肌肉元素和所有的骨骼模型元素;2.获得给定环境下的人体内部骨肌系统运动学和动力学特性;3.通过开放的AnyScript脚本语言定制人体模型;4.通过调整和优化参数化模型解决产品设计问题;5.导入运动捕捉和测力台数据以创建、放缩和驱动完整的人体骨骼肌肉系统模型;6.导出人体骨骼肌肉模型数据,转化为有限元计算模型;7.在普通个人电脑运行软件进行人体建模仿真研究;8.可以建立自己的模型,也可以利用AnyBody官方模型库;9.包含基于国家自然科学基金重点项目“中国力学虚拟人”的标准中国人体测量学和骨骼肌肉系统建模数据库;10.包含飞行器驾驶舱人机工效学设计的专有模型库。
CATIA人体工程学CATIA是一种广泛应用于航空航天、汽车、工业设计等领域的计算机辅助设计软件。
而人体工程学则是研究人类与工作环境之间关系的学科,它通过优化人机界面,提高人们在工作环境中的舒适性和效率。
本文将介绍如何利用CATIA软件进行人体工程学设计。
一、CATIA人体工程学简介CATIA是由法国达索系统公司开发的一款综合性CAD/CAE/CAM软件,它在航空航天、汽车及工业设计等领域拥有广泛应用。
人体工程学是研究人类与工作环境之间关系的学科,通过优化人机界面,提高人们在工作环境中的舒适性和效率。
CATIA人体工程学是将人体工程学原理应用于CATIA软件中,实现对工作环境和产品的人体工程学设计和评估。
二、CATIA人体工程学的应用领域1. 汽车设计:CATIA人体工程学可以用于汽车内部空间的设计,确保驾驶员和乘客的舒适性和安全性。
通过CATIA的人体建模功能,可以模拟不同体型的驾驶员在驾驶过程中的姿势、可见性等情况,从而对汽车仪表盘、座椅等进行优化设计。
2. 飞机设计:CATIA人体工程学可以用于飞机座舱的设计,确保飞行员在长时间飞行中的舒适性和操作便捷性。
通过CATIA的人体建模和人机界面分析功能,可以对座舱布局、操纵杆、按钮等进行设计和评估。
3. 工业设备设计:CATIA人体工程学可以用于工业设备的人机工效学设计,以提高操作员的工作效率和安全性。
通过CATIA的人体建模和人机界面分析功能,可以分析操作员的动作流程,优化操纵界面和工作空间布局。
三、CATIA人体建模功能CATIA提供了强大的人体建模功能,可以对人体在运动中的姿势、力学特性等进行建模和分析。
通过人体建模,可以模拟不同体型、性别、年龄等人群的姿势,为人体工程学设计提供科学依据。
四、CATIA人机界面分析功能CATIA提供了人机界面分析工具,可以模拟和分析人体在特定操作场景下的姿势、动作等。
通过人机界面分析,可以评估产品的可用性和舒适性,并指导产品的优化设计。
三维模型制作论文三维模型论文游戏动画中三维人物模型制作的研究摘要:游戏动画中三维人物模型的构建是人体动画研究领域中的热点亦是难点。
要制作真实感强的人体动画,必须具备的要素有:逼真的人体造型和灵活的运动控制方法。
本文利用已有的技术和手段,提出一种基于poser的快速构建三维人物模型、实现控制手语动作的方法,并通过实例验证了方法的可行性。
关键词:三维人物建模 poser 手和手臂手语0 引言动画这门视觉艺术从诞生至今已经有了近100年的历史。
20世纪80年代,伴随着人体动画的出现,游戏动画进入了全新的3D时代,其主流创作开始以3D动画为主。
为解决游戏动画中人物运动相关性和肌肉效果的模拟,人体动画提出了直接对皮肤和骨骼进行造型的方法。
人体动画作为计算机动画研究中最具挑战性和困难性的对象,吸引了大批研究者投入到相关的研究工作中。
1 研究现状目前,国内外关于人体动画的研究主要集中在两个方面:人体的运动控制技术和人体造型与皮肤变形技术。
20世纪70年代, “体元”在人体建模和变形中的应用宣告了人体造型和皮肤技术的研究正式拉开序幕。
无论是在学术界还是工业界,这个领域都处于非常活跃的地位。
每年都能看到大量涉及该领域的学术论文得以发表,此外,与此相关的人体建模软件或插件也层出不穷。
虽然如此,人体造型和皮肤变形技术任然面临重大的挑战,主要原因有以下几点:第一,人体具有200个以上的自由度和非常复杂的运动;第二,人的形状不规则,人的肌肉随着人体的运动而变形。
第三,人类对计算机动画中人体的皮肤变形和运动状态非常熟悉和敏感,人类通过直觉很容易就可以捕捉到虚拟人物和真实人物的区别。
所以,人物建模技术的探究和皮肤变形技术的研究虽然经历了相当长的一段时间了,但至今任然任然存在很大困难。
2 方法的提出随着科学技术的迅猛发展和网络游戏的兴盛,三维游戏动画中场景的制作技术已基本趋于成熟和稳定,但游戏动画中人物模型的制作技术还不是很成熟,仍处于一个研发试验阶段。
基于单目视觉测量的人体建模与显示 盛光有1,姜寿山1,欣2 (1.工程大学 电子信息学院, 710048; 2.工程大学 服装与艺术设计学院, 710048 )
摘要:以一种基于单目视觉测量原理的三维人体扫描装置获得的人体数据为来源,运用三角面片法构建人体表面,并把人体模型保存为一种标准的模型格式文件OBJ文件,获取了三维人体模型。然后在Visual C++的编程环境中采用OpenGL(Open Graphics Library)作为三维图形接口,编程实现了三维人体模型,获得了可视化的人体模型。
关键词:三维人体模型;虚拟试衣;OpenGL;人体显示 随着人们对服装的舒适性,合体性和款式的个性化的要求越来越高。传统的二维服装CAD软件暴露出了种种不足之处,如号型难以适应不同形态的人体,不能在衣片设计阶段就看到成衣后的效果,需要反复修改等。根据个人体型进行单量单裁的量身定制方式(Made To Measure,简称MTM)应运而生,由于能满足个性特殊需求,这种方式深受人们欢迎。法国力克公司推出了一种服装量身定制系统[1],按照客户具体要求量身定制,做到量体裁衣,使服装真正做到合体舒适. 德国TechMath公司的FitNet软件系统针对该顾客的体型,从人体数据库中直接搜索出相近的体型及配套服装样板,并提供了进一步根据顾客体型和穿着习惯修改样板的功能[2]。还有英国的Baird Menswear西服公司,其销售到国和国际市场的西服中有80%是通过量身定制系统完成的,并且服装系列涵盖了不同款式、颜色和规格的组合[3]。而国的三维服装CAD技术远远落后于西方发达国家,近几年来国的一些院校和公司也都在研究这方面的技术。其中获得可视的三维人体模型的是三维虚拟试衣系统和三维服装CAD系统中的关键技术。本文以一种人体扫描仪所获取的三维人体数据为数据为基础,采用三角面片法构建了人体表面模型,并编程实现了人体模型的真实感显示。
1 三维人体模型构建 1.1 数据获取 目前,获取用于三维人体模型重建的数据,主要用两种途径。一种是从Poser,
Maya 和 3DSMax等软件系统导出人体模型数据,另外一种是采用非接触测量方法,通常是采用非接触式人体扫描仪获取人体表面的三维数据。本为获取数据的方法属于第二种。本文中人体建模用到的数据来源于一种基于单目视觉的双扫描头人体扫描仪所测得的[4]。由于获得的原始数据点云数量很大,并且排列不太规则,因此对原始点云进行了一定的处理,有效地减少了数据点云的数量和增加了点云数据的规律性。关于数据处理的细节不是本文的所讨论的重点,在此不讨论。处理之后的点云如图1所示。 、 图1 经过处理的人体点云 1.2 人体模型构建方法的选取
人体模型主要分为划分为线框模型、表面模型、实体模型、基于物理的模型等[5] 。使用线框模型的方法对人体建模时,它是将人体轮廓用线框图形和关节表示,由于包含的信息有限,因此该建模方法无法实现三维人体模型的真实感显示;表面模型是用组成物体的表面来表示物体。使用这种方法对人体建模时,曲面模型能提供三维人体的表面信息,并进行隐藏线消除和真实感三维人体模型显示;用实体模型的方法对人体建模时,由于它增加了三维人体的实心部分表达,使其信息更加完备,但是计算量大,稳定性差。基于物理的模型在建模过程中引入了人体自身的物理信息,所以基于物理的模型具有更加真实的表达效果,能对人体的动态过程进行有效地描述,但和前面几种相比,在计算上要复杂得多。 综合了几种模型的优缺点,本文采用表面模型表达人体。使用三角面片、BEZIER 曲面、NURBS 曲面等都可以构成物体的表面,其中用得比较多的是 NURBS 曲面 ,但考虑到NURBS技术的复杂性,本文采用小三角面片表示人体曲面。这种方法具有表达简单、计算方便等优点。
1.3 人体模型的构建 前面已经介绍本文将采用一系列三角面片来表示人体表面,通过三维数据点集去构建这些三角面片的过程就叫做三角剖分,也称为三角网格化[6]。目前,关于三维散乱点集的三角剖分理论和算法尚不能尽如人意。然而由于本文中的点云已经处理为图1的形式,此时的人体表面是用一层层的轮廓线描述的。因此只要设法将人体相邻两截面用三角面片连接起来,就完成了三角网格化的过程。 构造连接相邻两截面轮廓线的三角面片的过程也叫做轮廓连接。连接的方法有许多,目前常用方法主要有最短对角线法,最大体积法,相邻轮廓线同步前进法。由于相邻轮廓线同步前进法,只需要沿着轮廓线进行同步前进,灵活性较好并且计算不复杂,也很少出现狭长三角形等较差表面,因此本文选用这种方法来构建人体模型。 这一方法的主要思想是,在用三角面片连接相邻两条轮廓线上的点列时,使得连接操作在两条轮廓线上尽可能同步进行。如图2所示,假设上下轮廓分别为P、Q,Pi、Qj(0≤i线段长度除以该线段所在轮廓线的周长所得的值,同时假设φi 表示上轮廓线中已经存在的轮廓线线段长度之和的标称值,φj表示下轮廓线中已经存在的轮廓线线段长度之和的标称值。假设此时应判断选择三角形PiPi+1Qj或三角形PiQjQj+1,则当|φi+ψi-φj|<|φj+ψj-φi|时,沿上轮廓线前进,选择三角形PiPi+1Qj,否则沿下轮廓线前进。 图2 相邻轮廓线同步前进法构建三角面片示意图 人体扫描仪所测得的人体数据分为六个部分,即左右腿,左右臂,躯干以及头部。按照上述方法,分别重构了这六个部分。为了获得完整的人体,还必须对这分割后的六个部分进行曲面拼接。包括左右腿和躯干的拼接,左右臂以及躯干和头部的拼接。首先需要考虑的就是相邻截面轮廓线的对应问题。以左右臂以及躯干和肩头部的拼接为例,需要首先将肩头部的第一层截面(用Ch表示)分成三部分,分别对应左右臂以及躯干部分的最后一层截面(分别用Cl、Cr、Cm表示)。对应的方法为比较Ch上各点x坐标与左右腋窝点的x坐标,若某点x坐标小于右腋窝点的x坐标,则将该点对应于Cr,若某点x坐标大于左腋窝点的x坐标,则将该点对应于Cl,剩余点对应于Cm.。在将两截面轮廓线对应后,再次按照轮廓线同步前进法分别连接各个分离的部分,则完成了人体模型的构建。构成的三角向形网格如图3所示。
放大
图3 构建的三角形网格 1.4 人体模型的存储 在建立人体模型之后,需要将其以一定格式的文件进行存储,以利于应用程序对图形进行处理以及系统以后的扩展。OBJ 文件是 Wavefront公司开发的一种文件格式,该文件以纯文本形式存储了模型的顶点、法线、纹理坐标和材质等信息,而且结构非常简单,同时它也是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导,通用性较好,再者也可以方便系统将来在诸如反求工程等领域的扩展及系统的进一步开发。因此本文选用OBJ文件格式存储人体数据信息。 如果三维人体显示时不经光照的浓淡处理,看到的人体模型就像平面图,没有立体效果。为了有立体效果,必须进行光照处理,这是因为物体在光的照射下其对光的一面和背光的一面呈现的效果不同,只有把这种效果反映出来,二维显示器上的三维模型才有逼真的立体感。 通常我们进行人体模型绘制过程中,在进行光照处理时,必须计算面或点的法线向量才能看到效果。在本课题中以三角片来逼近模仿人体表面,就表现为计算每个三角面片法向量,采用这种方法计算量少。但是这种情况下,当数据点很少,很难模仿人体的光滑皮肤。因此为了得到一个更加真实的人体模型,使人体模型更生动、真实,还需要计算各个点的法向量。 下面我们分别介绍一下三角片法向量和顶点法向量的的计算方法,如图4所示:O,P,Q,R,S,U,V,W是三角片顶点,P是一个中心顶点,它周围有7个三角片,三角片的法线向量分别是n1,n2,n3,n4,n5,n6,n7;其它点是边界点。 图4 求法向量示意图 对于任意三角片,根据平面法线向量定义,三角片的法线向量等于三角片两条向量边的叉乘积,例如三角形OQP,它的面法向量可以这样计算。
1nOQOPuuuvuuuv (1)
对于中心点P法线向量np可以用平均法线向量计算:
1234567()/7pnnnnnnnn (2)
对与边界点Q的法线向量nQ可以用下面公式计算:
Qiiisnns
(3)
其中is表示经过它的三角片的面积,in表示该三角片法线向量。在OpenGL中,所使用的法线要规化的向量,所以求得法线还必须规化。这样,通过采用上面的方法计算,各个顶点的法向量是逐渐变化的,经过光照计算,视觉上的效果会很不同。如图5从左到右分别是人体腿部一部分没加光照、加光照但只计算面法向量、加光照并计算点法向量的对比效果。
(a) (b) (c) 图5 大腿的光照效果对比图 按照OBJ格式的要求,分别将人体表面各点,各点的法线向量以及三角面片写入OBJ文件。写入OBJ文件时,各三角形顶点索引号的写入顺序,使其满足右手准则,也就是使构成的三角形法线向外。生成的OBJ文件形式如图6所示。
(a)构成三角形的各顶点 (b) 各个顶点对应的法线 (c) 三角形面片 图6 生成的OBJ文件片段
2 人体模型可视化虚拟环境的搭建 OpenGL(Open Graphics Library),是从SGI公司的GL(graphics library)基础上发展起来的一套独立于硬件、独立于窗口系统的三维图形库。目前,OpenGL在图形设计领域已经成为工业标准,被广泛地应用于图形与动画绘制、虚拟现实技术和计算机可视化等三维图形设计领域[7],而VC++也提供了与OpenGL的接口从而结合二者的特点,能很好地进行交互式三维应用程序的开发。所以本文采用OpenGL作为三维图形接口,以Visual C++6.0作为开发环境, 来显示人体模型。 实现VC++6. 0和OpenGL之间图形接口的机制是像素格式设置以及关联DC与RC。在创建一个绘图描述表RC之前,首先要设置像素格式,完成像素格式的设置后,需要为OpenGL建立RC,只有建立RC后, OpenGL才能调用绘图原语在窗口中绘出图形。RC是以线程为单位的,每个线程必须使用一个RC作为当前RC才能执行OpenGL绘图原语. 在VC++6. 0中的MFC中实现OpenGL编程的大致步骤如下: