3DAPI及在开发三维实时交互图形图像中的应用
VC++与OpenGL混合编程实现三维图形处理

VC++与OpenGL混合编程实现三维图形处理摘要:VC++MFC包含了基于Windows的应用框架,该框架功能十分强大,可以提供丰富的事件管理及相关的窗口函数,在面向对象编程过程中被广泛应用;而OpenGL则从某种程度上成为三维图形的开发标准,也是三维图形处理的最佳选择。
就基于OpenGL的基本框架,阐述其在VC++关键词:VC++OpenGL;三维图形处理0 引言一般情况下,工程设计和资源勘探都离不开计算机仿真技术的有效应用,尤其是在复杂地质条件赫尔工艺结构的处理过程中都需要利用教学模型建立三维立体图形结构。
所谓的三维立体图形处理主要包括切割、旋转、移动以及光照等具体操作,开发中的难点一般都是软件的强大图形能力和良好用户界面的接口。
VC++辑、编译、链接生成可执行文件等多种功能。
能够开发出良好的用户界面接口,受到广大软件开发人员的青睐。
OpenGL则是一种三维工具软件包,在交互式三维图形建模能力和编程方面和其它图形开发方面具有很强的优越性。
与传统的GDI绘图不一样的是,OpenGL开发不仅能减少代码的数量,而且可收到更好的视觉效果。
在OpenGL反馈的基础上建立的强大选择和修改功能,极大地方便了有限元网格图形的修改和处理,加快了有限元分析计算的周期。
本文在对VC++的基础上,进一步结合OpenGL的图形处理能力,以期最终能实现对三维仿真图形图像的处理,为工程应用中图形数据的可视化及仿真提供相关的借鉴。
1 VC++OpenGL1.1 VC++VC++借助微软相应的基础类库(MFC)以及应用程序框架,开发出Windows 标准界面的应用程序。
其中MFC将WindowsAPI函数进行完整的封装,从而建立起Windows光应用程序框架,其有着良好的通用性及可移植性,更利于VC++它还提供了一些诸如打印或者数据库等具有共性特征应用程序的操作支持。
在MFC框架中有APP类、DOC类以及VIEW和MAINFRAME类等4种,MFC将其进行有机的结合。
面向3D虚拟展示的软件定制化系统研究

随着计算机三维处理能力的增长和电子商务的飞速发展,人们对产品展示已不再满足于传统的二维图像形式,对产品三维化展示的需求日益增多。
Unity3D是由Unity Technologies公司开发的一款让使用者轻松创建三维视频游戏、实时三维动画等类型互动内容的综合型交互式开发工具,拥有高度优化的图形渲染管道,可与一些虚拟现实开发工具相结合实现虚实叠加人机交互功能也可以实现虚拟现实世界的生成[1]。
虚拟现实技术通过Unity3D开发平台生成一个逼真的三维虚拟世界,具有直观性、沉浸性以及交互性等特点[2-4],该技术对产品三维展示方式起到重要的推动作用。
目前市场上已有许多行业把虚拟展示方式作为一种电子商务方案[5],基于三维虚拟展示技术的汽车、服装、家具、家电等展示平台可以将产品的虚拟展示和在线预订相结合[6-7],极大地降低企业的展示成本,并大大提高了销售效率,推动了三维虚拟展示软件的研究和发展[8-11]。
目前市面上大多数虚拟展示软件开发是针对单一用户的具体需求[12],面向单个产品三维模型来组织的,其界面、面向3D虚拟展示的软件定制化系统研究郝亚玲1,朱欣娟1,吴晓军21.西安工程大学计算机科学学院/陕西省服装设计智能化重点实验室,西安7100482.陕西师范大学计算机科学学院,西安710119摘要:针对传统三维虚拟展示软件中存在的编程过程复杂、开发周期长等缺陷,提出一个具有可定制性和扩展性面向虚拟展示的定制方法。
该方法基于虚拟现实技术和软件大规模定制技术,设计面向虚拟展示的定制化系统架构;基于软件功能树对系统功能解耦,抽取可复用的公共模块实现参数定制化,封装为功能接口供系统调用;同时定义了系统的定制模板,以描述和配置应用系统的基本信息和个性化定制,从而满足不同企业产品虚拟展示功能定制需求。
最后通过具体实例展示验证了该系统的有效性和实用性。
关键词:虚拟现实;软件定制;定制模板;构件文献标志码:A中图分类号:TP311.52doi:10.3778/j.issn.1002-8331.1912-0074Research on Software Customizing System for3D Virtual DisplayHAO Yaling1,ZHU Xinjuan1,WU Xiaojun21.School of Computer Science,Xi’an Polytechnic University/Shaanxi Key Laboratory of Clothing Intelligence,Xi’an 710048,China2.School of Computer Science,Shaanxi Normal University,Xi’an710119,ChinaAbstract:In view of the defects in the traditional three-dimensional virtual display software,such as complex program-ming process and long development cycle,a custom-made method with customizability and expansibility oriented to the virtual display is proposed.This method is based on virtual reality technology and software mass customization technology to design a customized system architecture for virtual display;the system decouples system functions based on a software function tree,extracts reusable common modules to customize parameters,and encapsulates them into functional interfaces for system calls;at the same time,the customized template of the system is defined to describe and configure the basic information and the personalized customization requirement of the application system,so as to meet the requirements of the customization of virtual display functions of different enterprise products.Finally,the effectiveness and practicability of the system are demonstrated by a concrete example.Key words:virtual reality;software customization;custom template;component基金项目:陕西省重点研发计划(2019ZDLSF07-01);国家重点研发计划资助(2017YFB1402102)。
X3D:新一代面向Web的交互式三维图形规范

X3D:新一代面向Web的交互式三维图形规范
刘华峰;党岗;金士尧
【期刊名称】《系统仿真学报》
【年(卷),期】2001(0)S2
【摘要】当前虚拟现实造型语言(VRML)的国际标准存在严重问题,阻碍了面向Web的交互式三维图形技术的深入发展。
为此,Web3D联盟提出了下一代面向Web的交互式三维图形规范X3D。
X3D采用XML编码,以软构件技术为指导,定义了一个小型运行内核、一组API和多个扩展集,具有小型化、可扩展、与Web 上的多种标准互操作和与多种媒体紧密集成等特性。
本文主要介绍了X3D的产生背景、概念和组成,并在此基础上分析了X3D的关键技术和X3D浏览器的实现。
【总页数】5页(P199-202)
【关键词】可扩展的三维图形规范(X3D);虚拟现实造型语言(VRML);可扩展标记语言(XML);Web
【作者】刘华峰;党岗;金士尧
【作者单位】国防科技大学计算机学院
【正文语种】中文
【中图分类】TP391.9
【相关文献】
1.新一代交互式三维图形标准X3D [J], 王晓楠;王仲海
2.X3D:新一代WEB交互式三维图形规范 [J], 林冬梅
3.Web3D技术及新一代标准X3D [J], 肖虓;黄晓萍
4.面向用户的交互式三维图形编辑器 [J], 文家成
5.新一代Web三维图形标准X3D及其应用 [J], 李华;宋蔚
因版权原因,仅展示原文概要,查看原文内容请购买。
Blender在虚拟现实领域中应用

Blender在虚拟现实领域中的应用摘要:本文介绍了开源三维软件blender在虚拟现实领域中的主要优点及性能优化方法,并通过blender自带python api函数调用blender建模引擎,从而实现虚拟场景三维模型的自动生成。
实验证明,该方案简单易行,开发效率高并且具有良好的跨平台特性。
关键词:虚拟现实;3d引擎;blender中图分类号:tp391.9虚拟现实(virtual reality,简称vr)是20世纪末发展起来的一项集微电子技术、传感与测量、计算机仿真于一体,利用计算机生成的一种虚拟环境,通过视、听、触觉,使用户身临其境,并能够与之发生交互作用的技术。
其实时性、沉浸性和交互性是vr技术的3个重要特征。
交互性是指用户与虚拟场景中各种对象相互作用的能力,是vr技术的基础,交互是否自然、实时,决定了虚拟环境的真实程度和用户置身其中的认知能力。
[1,2]目前,大多数虚拟现实是通过3ds max等建模软件结合vega prime等仿真软件来实现,但其缺点是需要设计人员有很强的编程能力,不便于虚拟现实产品的快速开发。
而blender则很好的解决了这个难题。
相较于其它虚拟现实软件,blender采用了模块化的搭建过程,通过简单的连线设置即可实现复杂的交互功能,非常方便对大型项目的快速开发。
并且,blender软件自带强大的建模功能,在模型和3d引擎的结合上具有更好的兼容性。
1blender三维软件简介与那些昂贵的3d软件相比,blender是款完全免费而且开源的3d制作软件。
用户可以随意下载并可在多台计算机上运行。
还可以下载blender的源代码,对程序进行修改,将它应用于各种领域,作为一款应用软件,blender集成了用于制作各种3d内容的工具套件,包括建模、渲染、动画、后期处理、游戏制作以及跨平台3d交互制作等全方面的功能。
它自带的虚拟现实开发工具为blender game engine(bge),其集成了实时物理运算和逻辑运算引擎,可以开发手机游戏、pc游戏及虚拟现实展示产品,并且所有代码均开源,方便编程能力强的人员进行二次开发。
天津市和平区职工中等专业学校_虚拟现实_季婷_教案

《虚拟现实》课程教案一、教案背景虚拟现实(virtual reality)技术近几年在国内受到极大关注,发展十分迅速,在各个领域都发挥着极其重要的作用。
为了紧跟科技发展脉搏,丰富学生的知识视野,增强应用能力,我校为高职学生在二年级开设了《虚拟现实》课程。
本教案是关于此课程的开篇部分,主要介绍虚拟现实技术的概况。
二、教学课题虚拟现实技术概述三、教材分析本课程使用的教材为南开大学出版社出版的《虚拟现实VRML 程序设计》一书。
本书着重介绍了虚拟现实领域中VRML设计语言的相关知识,涵盖大量编程实例,由浅至深,循序渐进。
四、教学方法1、本课程设计在机房讲授,使用现代多媒体手段,将各种知识形象的展现在学生面前,便于学生的理解和应用,注重学生的实操性。
2、为学生设计课堂问题,打破以往直接传授知识、告知答案的教学思路,而是让学生通过登录百度网站的百科、地图、图片搜索等,进行知识搜寻与总结,提高学生自我学习与知识提炼的能力,培养学生主动学习与多元化思考学习的积极性。
五、教学设计与过程第一章虚拟现实技术概述一、什么是虚拟现实(一)知识引入1、给两张三维视觉图,请学生观看,找出图中隐藏的三维造型。
2、让学生使用百度地图/查找学校的所在位置,并转换到卫星地图查看实景效果。
(二)知识介绍随着社会的发展和科学技术水平的提高,二维空间平面效果的单一性,已无法满足某些行业的实际应用需求。
科学技术的发展,带动了三维空间的广泛应用。
虚拟现实(Virtual Reality,缩写为“VR”),就是一种可以创建和体验三维虚拟世界的计算机系统。
它是人工智能、计算机图形学、人机接口技术、多媒体技术、网络技术、并行计算技术等多种技术的集成,用以生成一个人为虚拟的环境。
这种虚拟的环境是通过计算机图形构成的三度空间,或是把其他现实环境编制到计算机中去产生逼真的“虚拟环境”,用户通过使用多种交互设备,如:鼠标、键盘、数据手套等,同虚拟环境中的实体相互作用,使之产生身临其境感觉的交互式视景仿真和信息交流。
helix-toolkit例子 -回复

helix-toolkit例子-回复HelixToolkit 是一个用于3D 可视化的开源工具包,用于在WPF和Windows UWP应用程序中创建各种交互式和高性能的3D图形。
它提供了诸如模型呈现、光照、相机控制和用户交互等功能,使得开发者可以轻松地创建出令人惊叹的三维场景。
在本文中,我将一步一步地回答关于HelixToolkit 的相关问题,介绍其基本用法和功能。
首先,让我们先来了解一下HelixToolkit 的背景和特点。
HelixToolkit 是一个开源项目,由中国开发者蔡军荣于2011年发起,并在GitHub 上进行开源。
这个工具包基于 .NET 平台,支持使用C# 和XAML 来创建和界面设计,非常适合在WPF 和Windows UWP 应用程序中使用。
一、为什么选择HelixToolkit?HelixToolkit 具有以下几个突出的特点,使其成为3D 可视化的理想选择。
1. 开源:HelixToolkit 是一个开源项目,可以免费使用和自定义。
2. 高性能:HelixToolkit 使用DirectX 或WPF 3D 来绘制图形,提供了非常出色的性能,可以处理大规模和复杂的3D场景。
3. 灵活性:HelixToolkit 提供了丰富的功能和工具,可以轻松地实现各种丰富的3D效果和交互。
4. 易于使用:HelixToolkit 的API 设计简洁清晰,文档和示例丰富,使得开发者可以快速上手。
二、使用HelixToolkit 的基本步骤接下来,我将介绍使用HelixToolkit 的基本步骤,帮助你快速上手。
1. 安装和引入从HelixToolkit 的GitHub 仓库中下载最新版本的源代码或二进制文件,然后将其添加到你的项目中。
使用NuGet 包管理器也是一种简单的安装方法。
2. 创建视口和场景在你的XAML 文件中,添加一个HelixViewport3D 元素,作为3D 场景的容器。
熊汉江教授--网络三维地理信息系统技术与应用
网络三维地理信息系统的特点
数据的多源多尺度异质异构性:多时相分辨率遥感影像、多尺度
的矢量数据、多尺度的地形数据;三维模型、地名标注、LIDAR点云、全景 影像…
数据存储的分布式:从集中式存储走向分布式多中心多节点存储,
从文件或者关系数据库发展为NOSQL数据库存储
数据传输的网络化:从本地读取、数据库直连转向基于HTPP协议网
0° (0,0) -90° -180° -135° +90° (0,3) +45° (0,2) 0° (0,1) -45° (0,0) -90° -180° -135° -90° +90° +45° 0° -45° 0° +45° +90° +135° +180° (1,0) (2,0) (3,0) (4,0) (5,0) (6,0) (7,0) (1,1) (2,1) (3,1) (4,1) (5,1) (6,1) (7,1) (1,2) (2,2) (3,2) (4,2) (5,2) (6,2) (7,2) -90° (2,3) -45° (3,3) 0° +45° (4,3) +90° +135° +180° (7,) (0,1)
QQ: 95255028
第 2页
主要内容
1 2
基本概念
现状与趋势 关键技术与路线 研究成果及应用 总结
3
4
5
第 3页
一、网络三维地理信息系统基本概念
网络三维地理信息系统概念由来
地理信息系统(Geographic Information System或 Geo-Information system, GIS)有时又称为“地学信息系统”或“资源与环境信息系统”。它是在计算机硬 、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分 布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
3d技巧
金属颜色色彩亮度漫射镜面光泽度反射凹凸(%)铝箔 180.180.180 有 32 90 中 65 8铝箔(钝) 180.180.180 有 50 45 低 35 15铝 220.223.227 有 35 25 低 40 15磨亮的铝 220.223.227 有 35 65 中 50 12黄铜 191.173.111 有 40 40 中 40 20磨亮的黄铜 191.173.111 有 40 65 中 50 10镀铬合金 150.150.150 无 40 40 低 25 35镀铬合金2 220.230.240 有 25 30 低 50 20镀铬铝 220.230.240 有 15 60 中 65 10镀铬塑胶 220.230.240 有 15 60 低 50 10镀铬钢 220.230.240 有 15 60 中 70 5纯铬 220.230.240 有 15 60 低 85 5铜 186.110.64 有 45 40 中 40 1018K金 234.199.135 有 45 40 中 65 1024K金 218.178.115 有 45 40 中 65 10未精练的金 255.180.66 有 35 40 中 45 25黄金 242.192.86 有 45 40 中 65 10石墨 87.33.77 无 42 90 中 15 10铁 118.119.120 有 35 50 低 25 20铅锡锑合金 250.250.250 有 30 40 低 15 10银 233.233.216 有 15 90 中 45 15钠 250.250.250 有 50 90 低 25 10废白铁罐 229.223.206 有 30 40 低 45 30不锈钢 128.128.126 有 40 50 中 35 20磨亮的不锈钢 220.220.220 有 35 50 低 25 35锡 220.223.227 有 50 90 低 35 20净化瓶 27.108.131 无 90 60 低 5 20泡沫塑胶 54.53.53 无 95 30 低 3 90合成材料 20.20.20 无 80 30 低 5 20合成材料(粗糙)25.25.25 无 60 40 低 5 20合成材料(光滑)38.38.38 无 60 30 低 0 10合成材料(钝) 25.25.25 有 92 40 低 15 30塑胶 20.20.20 无 80 30 低 5 10塑胶(高光泽) 20.20.20 无 70 90 高 15 5塑胶(硬儿亮) 20.20.20 无 80 80 中 10 10塑胶(糖果衣) 200.10.10 无 80 30 低 5 15塑胶(巧克力色)67.40.18 无 90 30 低 5 5橡胶 30.30.30 有 30 20 低 0 50橡胶纽扣 150.150.150 无 60 20 低 0 30乙烯树脂 45.45.45 无 60 40 低 15 303DMAX5.0快捷键大全在使用3DMAX这个软件的过程中,虽然大部分的工作都可以由鼠标来完成,但是如果知道一些命令的快捷方式的话,在制作过程中将更加方便,并将大大加快制作进度。
游戏渲染技术了解DirectXOpenGL和Vulkan
游戏渲染技术了解DirectXOpenGL和Vulkan游戏渲染技术了解DirectX、OpenGL和Vulkan游戏渲染技术是现代游戏开发中的重要组成部分,它决定了游戏的视觉效果和性能表现。
在游戏渲染技术的领域中,DirectX、OpenGL 和Vulkan是三个常见的应用编程接口(API)。
本文将介绍这三种渲染技术,探讨它们的特点和适用场景。
一、DirectXDirectX是由微软公司开发的一套多媒体编程接口,常用于Windows平台的游戏开发。
DirectX提供了丰富的图形渲染功能,包括2D和3D渲染、图像处理、音频和输入设备处理等。
其最新版本为DirectX 12,在多线程渲染方面有着出色的表现。
DirectX支持各种硬件设备,并提供了简单易用的开发工具和文档。
DirectX具有以下特点:1. 良好的兼容性:DirectX是Windows平台的官方渲染API,与操作系统紧密集成,因此具备较好的兼容性。
游戏开发者可以利用DirectX的特性来确保游戏在各种Windows设备上都能正常运行。
2. 强大的功能支持:DirectX提供了丰富的图形和音频功能,并不断更新和增加新特性。
它通过硬件加速以及优化的渲染管线,可以实现更高质量的图形效果和更高的性能。
3. 简化开发流程:DirectX具有直观的接口和易用的开发工具,使得游戏开发者能够更高效地创建出色的游戏。
它提供了一系列的API,如Direct3D用于3D图形渲染,DirectSound用于音频处理等。
二、OpenGLOpenGL是一个跨平台的图形渲染API,它是一个开放标准,可在多个操作系统上使用。
OpenGL提供了一系列用于二维和三维图形渲染的函数,支持各种图形学算法和特效。
OpenGL是游戏开发者广泛使用的渲染技术之一,特别适合在不同平台间进行移植。
OpenGL具有以下特点:1. 跨平台支持:OpenGL可以在多个操作系统上运行,包括Windows、Linux和Mac OS等。
osgqopenglwidget linux 编译-概述说明以及解释
osgqopenglwidget linux 编译-概述说明以及解释1.引言1.1 概述概述部分内容:引言部分的概述用于介绍文章的背景和内容。
本文将讨论关于在Linux系统上编译OSGQOpenGLWidget的方法以及可能的问题和解决方法。
OSGQOpenGLWidget是一种用于在Qt应用程序中集成OpenSceneGraph的插件。
OpenSceneGraph (OSG) 是一个开源的3D 图形库,可用于创建交互式的3D应用程序。
Qt是一种跨平台的C++图形用户界面应用程序开发框架,被广泛应用于软件开发领域。
本文首先对OSG和Qt进行简要介绍,包括它们的特点、用途和优势。
然后,我们将重点讨论在Linux系统上编译OSGQOpenGLWidget的具体方法和步骤。
我们将提供详细的操作指南和示例代码,以帮助读者顺利完成编译过程。
此外,我们还将探讨在编译过程中可能遇到的一些常见问题,并给出相应的解决方法。
这些问题可能涉及依赖项安装、环境配置、库文件链接等方面。
我们将提供一些实用的技巧和建议,帮助读者快速克服这些难题。
通过本文的阅读,读者将了解到在Linux系统上编译OSGQOpenGLWidget所需的基本知识和技能。
希望本文能为希望在Linux平台上开发3D图形应用程序的开发者提供一些有用的信息和帮助。
接下来,我们将详细介绍OSG (OpenSceneGraph) 的相关内容。
1.2 文章结构文章结构的部分应该包括以下内容:文章结构部分旨在介绍本篇文章的整体组织和内容安排,为读者提供一个清晰的导读,方便他们快速了解文章的结构和内容组成。
本文的结构主要包括引言、正文和结论三个部分。
在引言部分,我们先对该篇文章进行了概述,简要介绍了将要讨论的主题。
接着,我们详细说明了文章的结构,即引言、正文和结论三个部分。
通过明确的讲述结构,读者可以更好地理解文章的内容和逻辑顺序。
正文部分将从两个方面展开。
首先,我们将介绍OSG (OpenSceneGraph)的概念和基本特点,包括其在图形渲染方面的应用和优势。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3DAPI
及在开发三维实时交互图形图像中的应用
王柏冬 王洪升 西南交通大学模拟中心 四川・成都
(610031)
摘 要 本文介绍了Direct3D,QuickDraw3D和OpenGVS这三种3DAPI,概括说
明了利用这些3DAPI开发三维实时交互图形图像的方法,并对现有的3DAPI进行
了比较。
关键词 API,三维图形图像
,OpenGL,Direct3D,QuickDraw3D,OpenGVS
1 Direct3D
Direct3D
是微软公司交互多媒体应用程序接口
DirectX的组成部分,
它为程序员提供了一个显示三
维图形的与硬件无关的应用编程接口。在接口级
,
Direct3DAPI
以一种一致的方式对硬件特征进行抽
象,从而可以隐藏不同三维加速硬件的差异。
Direct3D由两种类型的驱动器组成:
第一种驱动器实
现了一个硬件抽象层
(HAL:HardwareAbstractLayer)
,
芯片和板卡厂家通过使用HAL以一种设备无关的
方式提供硬件的功能,程序员可通过一种询问机制
从HAL获得硬件信息并加以利用;对于没有加速硬
件的系统,Direct3D在软件一级实现了另一种驱动
器,它使用一个硬件仿真层
(
HEL:HardwareEmulation
Layer
)
来用软件仿真这些特征。
Direct3D支持立即模式(ImmediateMode
)
和驻留
模式(RetainedMode)的操作。驻留模式为应用程序
提供了一个高级的面向对象的接口以操作三维对
象,使用户很容易创建一个完全的三维图形系统。
当使用一个API调入一个对象后,可以使用其它
API
对其进行旋转和缩放。驻留模式提供了对存储三维
数据的文件格式的读写调用,这些数据有预先定义
的三维对象、网格、纹理和动画集组成。应用程序可
以利用这一文件格式交换三维数据信息,并实时回
放动画。立即模式是一个处理多边形和顶点的
API
层,能够使程序完全控制着色管道。立即模式的
API
将由顶点数据和图形命令组成的显示表传送给
绘制引擎去处理,该显示表称为运行缓冲。
Direct3D
提供了许多图形对象。在立即模式
中,对象包括运行缓冲(executebuffer)、变换矩阵、光
照、纹理、对象表面特性、视区、管理屏幕的设备以及
接口等。驻留模式除了这些对象外,还包括多边形
面、网格、管理一个场景中所有对象的位置以及方向
的帧、阴影和动画变换。
Direct3D
的核心体系结构是一个三维绘制引
擎,它是一个三级图形流水线。每一级是一个独立
的动态加载软件模块。在绘制操作开始时,首先用
一个Direct3DAPI调用为每个模块建立图形状态,然
后将一个运行缓冲载入引擎。第一级模块是变换模
块,处理一个对象需要完成的所有几何变换。第二
个模块是光照模块,为每个对象做光照计算,它可以
处理多种类型的光源。最后一级是绘制模块,它利
用前两级的输出结果生成最终的场景图像。
对于尺寸要求准确的复杂物体和结构,要在专
业建模软件如AutoCAD、3DSMAX中建模后,通过
conv3ds.exe等转换工具转换为Direct3D
可以操作的
模型(3.X),进行变换、光照、绘制,产生实时动画。
目前Direct3D在微软公司、图形加速卡厂商和软件
开发商的的大力支持和推广下,已经在三维游戏中
获得广泛的应用。
图1 Direct3D体系结构和绘制流水线
2 QuickDraw3D(QD3D
)
QD3D
是一个完整的三维图形环境。开发者可
以使用其最高层的API产生和操作三维对象,对文
件进行三维数据的读写操作。该API向一个可扩展
的处理绘制操作的流水线传送消息,流水线又依次
向硬件抽象层(HAL)传送消息,该HAL提供了一个
与设备无关的API。
QD3D是面向对象的图形系统,
一个对象的新
实例能从其类中继承特征,这些特征包括几何、尺
寸、方向、颜色、纹理以及光照,可以快速建造一个场
景的对象,还简化了用于操作和显示的每个对象的
信息维护。高级API命令可以生成、旋转、编辑一个
第19卷第10期1999年10月(增刊)计算机应用
ComputerApplicationsVol.19,No.10Oct.1999
对象,可以给一个对象施加光照和变换。附件提供
的可视“操作柄”类似OpenInventor,能交互地编辑和缩放一个对象。QD3D允许用户以一种公用的三维元文件格式(3DMF)读写三维图像。该格式不仅存储每个对象的几何数据,也存储其光照和纹理。3DMF支持三维图形在应用之间的拷贝、粘贴和拖放功能。QD3D的API提供了大量的基本对象如线、球、圆锥等,利用这些基本对象可以快速建造一个场景的原型。同样,复杂的三维模型也要在专业造型软件中建模,通过相应转换工具转化为QD3D可以支持的模型,利用QD3D高级API可以对模型方便地进行编辑、变换、光照,实现实时交互。3 OpenGVSOpenGVS是Gemini公司推出的实时3DAPI,也可称为交互场景管理API。程序员利用OpenGVS可以快速开发出高质量、轻巧的三维实时交互应用程序,并可以充分利用硬件的加速功能,可以不用修改代码方便地转换不同的硬件和不同着色工业标准支持的操作平台,这些标准包括OpenGL、3DfxGlide、Di2rect3D。OpenGVS的体系结构如图2所示。在OpenGVS中,用户可以创建许多资源,如着色通道,照相机,材质,物体,纹理,灯光,雾模型,场景等对象。图3为一个场景中的对象描述。OpenGVS既可以创建几何模型,也支持下列数据模型输入到场景中去:3DSbinaryfileformat(3.3ds)、MultiGenOpen2Flightformat(3.flt)、GameGenformat(.gam)、WavefrontAscii(3.obj)、InternalencryptedOpenGVSdatabasefileformat(3.gvm)利用OpenGVS完成三维模型的实时交互,需要把外部专业建模软件制作的三维模型转换为OpenGVS支持的模型(如3.3ds),利用OpenGVS函数建立场景后,进行动画、光照、变换设置,导入3DS模型,就可以实现实时交互。OpenGVS多用于仿真领域。图2 OpenGVS的体系结构4 小结使用上述提到的3DAPI(OpenGL、OpenInventor、Direct3D、QD3D、OpenGVS),可以进行三维图形应用软件的编程,在此对它们作个比较。
OpenGL属于低层次的编程接口,
提供了点、线、
多边形、曲线、曲面等几何建模函数,为了实现功能
要求需要做大量的编程工作,运行速度最慢,如果
没有硬件加速的话,效果不能令人满意。其平台支
持最好,可以使用于WindowsNT、Windows95/98、
Unix
。
Direct3D则同时支持硬件加速和软件仿真,
不
过后者速度较慢,最好使用硬件加速卡,在其运行时
可以调用其它的3DAPI,其几何建模同OpenGL类
似,其平台支持Windows。
图3 场景中的对象描述
QD3D则是完整的三维图形环境,其高级API
支
持三维对象的创建和文件的存储,提供了诸如线、
球、圆锥等基本对象,可以快速建立三维模型和场
景。支持Windows平台。OpenInventor则是基于
OpenGL的高级编程环境,界面友好,提供了MFC
编
程模板,可以快速建立程序的主框架,框架本身提供
了众多的交互控件,有丰富的建模函数,同时支持外
部模型数据的调入,通过简单地编程实现功能要求。
运行时交互速度快,不用硬件加速。支持
Windows
和Unix平台。
OpenGVS是场景管理软件,建筑于多种3DAPI
的渲染机制基础之上,支持VC++的SDK和
MFC
(makefile)
编程,可以方便地引入外部模型,在硬件
加速情况下运行速度快。支持Windows平台。
参考文献
[1] 廖朵朵,等.OpenGL三维图形程序设计.
星球地图出
版社
,1996
[2] 孙家广.计算机图形学.清华大学出版社(第2版),
1995
[3] 朱春喜,等.DirectX5/6高级多媒体程序开发.
北京航
空航天大学
,1999
[4] 董社勤,等.三维图形应用编程接口:3DAPI.
微型计
算机
,1999;(1
)
[5] 李肖锋.初识3DAPI.计算机应用文摘,1999;(1
)
—631—
计算机应用1999年