基于Directx的三维图形立体变换的实现.docx
- 文档编号:2840067
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:44
- 大小:376.63KB
基于Directx的三维图形立体变换的实现.docx
《基于Directx的三维图形立体变换的实现.docx》由会员分享,可在线阅读,更多相关《基于Directx的三维图形立体变换的实现.docx(44页珍藏版)》请在冰豆网上搜索。
基于Directx的三维图形立体变换的实现
西南科技大学
毕业设计(论文)
题目名称:
基于Directx的三维图形立体变换的实现
年级:
2003级■本科□专科
学生学号:
20035247
学生姓名:
宋彦宾指导教师:
蒋体钢
学生单位:
信息工程学院技术职称:
副研究员
学生专业:
通信专业教师单位:
信息工程学院
西南科技大学教务处制
基于Directx的三维图形立体变换的实现
摘要:
目前在世界上三维图形大量的被应用到日常生活中,它是许多媒体应用程序和游戏的主体部分,所以掌握最新的三维技术是很有必要的。
本文首先研究了利用C#和Directx9编程以及立体几何技术,数学变换和几何图形技术来制作三维立体图形的方法,掌握了利用API接口创建窗口实现消息传递以及对坐标系,缓存,矩阵坐标变换的知识。
其次,利用3DSMax创建三维立体图形,加载到所编写的三位图形立体变换程序中,并进行调试。
设计主要完成了对绘制出来的电视机的平移,旋转和缩放技术的处理,最后通过程序对图形进行渲染使其更具有可观性。
关键词:
API;VisualC#.Net;Direct3D;3DSMax
TheRealizationofThree-DimensionalGraphThree-DimensionalTransformationBasedonDirectx
Abstract:
Intheworldofnowadays,thethree-dimensionalgraphicsareapplyingtodailylifeinalargenumber.Itisthemainpartofthegameandapplicationsofmanymedia.So,it'snecessarytomasterthelatest3-Dtechnology.Firstly,thisthesisresearchesonusingC#andtheDirectx9programmingaswellasthethree-dimensionalgeometrictechnology,themathematicalmanipulationandthegeometricfiguretechnologytomanufacturethethree-dimensionalgraphics.MasteringtheuseoftheAPIinterfacestocreateawindowthatcanrealizemessagetransmission.Acquaintingtheknowledgeonthecoordinatesystem,thetextureandthematrixcoordinatetransformation.Secondly,the3Dmodelsofthesystemwerecreatedby3dsmax,thenpreparedtoloadthestereo3Dgraphicstransformationprocess,anddebugging.Thetranslation,therotationandscalingofTVwhichhavemappedoutwerecompletedinthisdesign.Finally,byembroideringinprocedure,thegraphicsweremorearresting.
Keywords:
API,VisualC#.Net,Direct3D,3DSMax
目录
第1章绪论1
1.1三维技术的现状1
1.2编程语言简介2
1.3三维图形立体变换的设计分析2
1.3.1设计需求分析2
1.3.2设计性能要求2
第2章DirectX9.0技术3
2.1DirectX9.0的概念3
2.1.1Direct3D的构架3
2.1.2设计规划4
2.2DirectX9.0函数简介5
2.2.1窗口类的处理6
2.2.2创建IDirect3D接口7
2.2.3创建IDirect3DDevice界面8
2.2.4开始渲染9
2.2.5顶点属性与顶点格式10
2.2.6顶点缓冲10
2.2.7索引缓冲12
2.2.8D3D中的图元简介13
2.2.9向量14
2.2.10矩阵的操作15
第3章主体程序的设计与实现19
3.1三维图形立体变换的设计19
3.2三维图形立体变换设计具体实现19
3.2.1利用.X文件图像获取19
3.2.2利用画点画线函数生成图像23
3.2.3图像的缩放33
3.2.4图像的旋转34
3.2.5图像保存为.TXT文挡37
3.2.6渲染功能实现38
3.2.7光源和观察矩阵的实现39
3.2.8键盘的控制39
3.3程序运行的调试40
总结41
4.1设计开发小结41
4.2项目改进方向和未来展望41
致谢42
参考文献43
附录44
第1章绪论
1.1三维技术的现状
在计算机屏幕上绘图的最基本单位是点,点构成线,线又构成多边形,还可以朝空间发展,构成立体图行,如正方体、立方体、锥体、球等。
用高级语言绘图的尝试基本就到此为止了,以为学过计算机图形学的人都知道,绘制真实的图形非常复杂,诸如着色、光照、运动等操作都涉及到大量的数学变换,没有高深的数学理论和高超的编程技巧是无法构建出漂亮的三维场景的[10]。
不过,现在已经有大量的软件能够完成一些复杂的图形操作,如做平面设计的Photoshop,做三维立体设计的AutoCAD,做三维动画设计的3DSMax等。
使用这些软件,可以比较容易地绘制出精彩的图形效果,只要有艺术细胞,就不怕作不出想要的效果。
说到DirectX,大部分读者都会认为这是一个专门为图形服务的API(ApplicationProgramInterface)—应用程序接口。
实际上,DirectX是用途极为广泛的API,它并不局限于显示领域。
目前的DirectX中包含有DirectGraphics(Direct3D+DirectDraw)、DirectInput、DirectPlay、DirectSound、DirectShow、DirectSetup、DirectMediaObjects等多个组件,它提供了一整套的多媒体接口方案。
只是由于目前DirectX版本的更新主要在3D图形技术上,因此DirectX才给人一种图形API的感觉。
DirectX是为游戏而诞生,而且伴随着不同版本的DirectX推出,就会有相应的显卡产品支持。
从DirectX1.0到DirectX3.0,微软让它的DirectX开始在游戏领域树立起3D的标杆,尽管当时的3D很粗糙,但是雏形已初步形成,到DirectX7开始,随着OpenGL和Glide势力日渐衰弱,DirectX的霸气初现。
DIRECT3D是Microsoft公司推出的三维图形编程API,它主要用于三维游戏的编程。
众多优秀的三维游戏都是由这个接口实现的。
与OpenGL一样,Direct3D的实现主要使用C++和C#语言。
DIRECT3D主要运用到现在众多的网络游戏中,越优越的网络游戏运用到DIRECT3D技术越先进。
在我国由于国产大型网络游戏软件在质量、性能、可玩性等方面较国外品牌明显缺乏竞争力,目前,韩国和日本等国的游戏产品在我国网络游戏市场竞争中已占据主动。
业者认为,无论从经济利益还是文化角度出发,我国都应尽快打破网络游戏产品主要依赖国外进口的被动局面,真正建立起研发、运营销售一条龙的产业链条,从根本上促进网络游戏产业的成熟。
1.2编程语言简介
C#语言自C/C++演变而来。
但是,它现代、简单、完全面向对象和类型安全。
如果您是C/C++程序员,学习曲线将会很平坦。
许多C#语句直接借用您所喜爱的语言,包括表达式和操作符。
假如不仔细看,简直会把它当成C++。
关于C#最重要的一点:
它是现代的编程语言。
它简化和现代化了C++在类、名字空间、方法重载和异常处理等领域。
屏弃了C++的复杂性,使它更易用、更少出错。
对C#的易用有贡献的是减少了C++的一些特性,不再有宏、模板和多重继承。
特别对企业开发者来说,上述功能只会产生更多的麻烦而不是效益。
使编程更方便的新功能是严格的类型安全、版本控制、垃圾收集(garbagecollect)等等。
所有的这些功能的目标都是瞄准了开发面向组件的软件。
简单、现代、面向对象、类型安全、版本控制、兼容和灵活是C#至关重要的各种要素[20]。
1.3三维图形立体变换的设计分析
近年来,3D世界飞速的发展。
虚拟制造技术具有诱人的应用前景,促使发达国家对其进行深入研究,并已出现许多成功的应用范例。
3D技术已逐渐作为人们生活的一个重要部分而融入在人们的日常生活当中去。
这次毕业设计是要利用Directx9.0和C#语言编程实现对三维立体图形的旋转,平移和缩放等操作,并能对立体图行进行渲染,光源设置以及保存成.txt文档。
1.3.1设计需求分析
现今的社会,电脑已经落入千家万户。
我们这个设计只需要一台支持Directx9.0电脑以及相关的软件就可以实现,相关软件有C#,3DSMAX,DirectxSDK。
1.3.2设计性能要求
(1)绘制出一个三维立体的电视机
(2)实现对电视机的旋转,平移和缩放.
(3)实现对.TXT文档的打开,显示和保存.
(4)对绘制的电视机进行渲染和光源设置
第2章DirectX9.0技术
2.1DirectX9.0的概念
DrectX9.0包括8个主要组件。
其中,DirectPlav提供多人网络游戏的功能和方便快捷的网络数据交互;DirectMusic则为音乐音轨、MIDI或者其他由DirectMusicProducer创作的非音乐音轨提供一套完整的解决方案;DirectShow可以对媒体数据流进行高质量的采集与回放;DirectSetup能够实现DirectX组件的自动安装;DirectXMediaObjects提供数据流对象的读写支持,包括视频和音频解码器及其效果。
DirectSound用于播放和捕获音频波形的高性能音频应用软件的开发;DirectInput支持各种输入设备如键盘、鼠标、操作杆等,并且完全支持力反馈技术。
DirectXGraphics组合了过去DirectX版木中的DirectDraw和Direct3D两个组件,使其成为一个适用于所有图形程序的独立的应用程序接口,并简化了图形编程任务。
2002年底,微软发布DirectX9.0。
DirectX9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。
全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条[12]。
PS2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Directx 三维 图形 立体 变换 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)