- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
骨骼动画(一) 类型:转贴 | 来源:整理| 时间: 2006-05-20 第一节:建立一个空的D3D运行平台 Keep in touch :zpxocivuby@126.com 目的:指导别人建立一个D3D的运行平台,介绍一些几本的概念 任务:编写教程,编写代码 阅读对象:d3d入门者,c/c++熟练,windows编程熟练,VC IDE熟练 描述:在进行我们的d3d游戏开发之路之前,我们要先建立一个可供我们运行的环境,做一些初始化的工作。 步骤: 1. 初始化一个d3d的各种设备 a) 建立一个windows窗口(用来……),窗口的基本的参数设置 b) 初始化D3D设备这里要分四步: i. 建立一个IDirect3D9 的COM(很多书中将COM说得如何如何庞大如何如何复杂,我们都用不上^_^,因为我们不是在做组件,我们只是使用COM,你只要将COM当作是一个结构,以及有好多方法来控制该结构就行了。如果你是一个java程序员那么你可以认为它是一个接口interface)接口。 IDirect3D9* d3d9 = 0; d3d9 = Direct3DCreate9(D3D_SDK_VERSION); ii. 得到硬件设备的能力信息(也就是说,我们在操作d3d设备的时候要知道该设备有那些能力,比如说有的设备有支持剪裁(Device supports blits),支持2级缓冲,光栅化等等),只有在用有能力的设备上才能使用各种“能力“不然……(就像我不会飞,你非要让我飞一样)。 这次我们只要得到设备是否支持Device can support transformation and lighting in hardware. (是否支持转换和光照) iii. 建立我们的Device建立参数 这个参数的作用是用来告诉D3D你要建立一个什么样的设备。比如是不是全屏啊,颜色模式是什么啊,缓冲的数量是多少阿等等。具体信息可以查看MSDN的D3DPRESENT_PARAMETERS信息(坚持看MSDN啊!好处很多,说不完啊); iv. 建立设备Device d3d9-CreateDevice( D3DADAPTER_DEFAULT,//适配器类型 D3DDEVTYPE_HAL, //设备类型(改参数是由第二步中得到设备能力来决定的) hwnd,//窗口句柄,(什么?你说什么是句柄?你就当它是握在你手中的炒锅的锅柄,你可以方便的将炒锅(窗口)反过来翻过去(各种窗口操作)。当然句柄还有很多功能,在这里我们只用到这些,当使用到别的功能时我再说)。 D3DCREATE_HARDWARE_VERTEXPROCESSING,// D3DCREATE标记这里我们使用的是硬件处理顶点向量能力(改参数的确定需要第二步的判断。)这下知道第二步的重要性了吧 d3dpp,//设备参数,第三步设定的参数 device);//返回的设备的指针(什么?什么是指针?你可能不太适合读这个文档,建议你把它丢弃。请注意我的阅读对象) 好了,我们终于建立了一个IDirect3DDevice9这个东东是我们以后进行D3D游戏开发的终极直接操作对象。(就像CS中的大狙^_^)。 2. 将要绘制的数据进行初始化(包括,顶点向量的初始化,顶点索引的初始化) a) 建立顶点向量缓冲 b) 建立顶点索引缓冲 c) 充填缓冲数据 d) 设置视点(就是我们的观察点) 3. 进入绘制图像循环(在此绘制每一帧的图像,也就是我们常说的动画制作了) 在这里你就要做你想做的事了(do what you want to do!)哈哈,我们来做一个三角形转换的绘制循环 a) 首先你要在(数据进行初始化(包括,顶点向量的初始化,顶点索引的初始化))中设定三个顶点向量缓冲,以及一个顶点索引缓冲(什么?为什么要有顶点索引缓冲?这个问题问的好,我保证你是个聪明的baby。这个东东是用来告诉d3d哪些顶点是哪个三角形的你建立的三个顶点,当然可以知道是这三个顶点画三角形,但是如果你有四个,五个……你如何让d3d知道那几个顶点是那个三角形的点啊?所以要在顶点索引中确定三角形的索引顶点.) 建立一个向量缓冲 Device-CreateVertexBuffer( 4 * sizeof(Vertex), D3DUSAGE_WRITEONLY, Vertex::FVF, D3DPOOL_MANAGED, VB, 0); (^_^这个函数我会详细介绍现在你先不要管了) 设置向量点 Vertex* vertices; VB-Lock(0, 0, (void**)vertices,
文档评论(0)