引言: 11. Mesh Part Two
摘要:这部分除了普通流程开发工具有的功能外,吸引我的是组装这个概念。
工具提供web service等技术的整合组装。
今天比较忙,就不详细写了。
这个产品对我倒是有些冲击,好好研读后会发些心得。
感谢你们对这个blog的支持!感谢你们的回信!
thx!
......
摘要: 安全性是java鼓吹得最多的特性之一,的确,java的安全特性涵盖了从应用级别到语言级别乃至jvm本身。以前大家都知道有个sandbox,但仅有sandbox尚不能满足,或者说不能很方便地做到我们所需要的全部安全需求,譬如现在一个系统首先起码需要一个登录功能,更进一步的话,还需要对用户访问资源的行为进行约束,下面我想大致讲一下java是怎样做这些事情的,基本上是一个总结或者说是“读后......
在DirectX9.0中使用Mesh(2)11. mesh part two
【程序编程相关:
程序关联实现 】
本文译自«introduction to 3d game programming with directx 9.0»第十一章“mesh part two”,敬请斧正. 【推荐阅读:
程序间参数传递 】
l 学习加载.x文件 【扩展信息:
mscomm32的简单应用】
本章介绍d3dx库提供的与mesh有关的接口.结构.函数.通过本章的学习,将能够加载复杂的3d模型,能够控制mesh对象的精细程度.本章要达到的目标:
l 理解使用渐进mesh(progressive mesh)的好处与学习如何使用渐进mesh接口id3dxpmesh.将原文中的progressive mesh翻译为渐进网格,不知是否恰当
l 学习边界范围(bounding volume),以及如何使用d3dx函数创建边界范围
11.1. 关于id3dxbuffer
这个接口贯穿整个d3dx库,需要对该接口有大体上的认识.id3dxbuffer是d3dx用来管理连续内存块的结构,他只有两个方法:
l lpvoid getbufferpointer(); --返回数据块的首地址
l dword getbuffersize(); --返回缓冲区的大小,以字节为单位
例如,d3dxloadmeshfromx函数就使用id3dxbuffer返回mesh对象的邻接信息.因邻接信息是dword数组,所以需要进行类型转换.如:
dword* info =(dword*)adjacencyinfo->getbufferpointer();
d3dxmaterial* mtrls = (d3dxmaterial*)mtrlbuffer->getbufferpointer();
又因为id3dxbuffer是一个com对象,所以,用完后,需要进行释放.
adjacencyinfo->release();
mtrlbuffer->release();
也可以使用如下函数创建一个空的id3dxbuffer对象:
hresult winapi d3dxcreatebuffer(
dword numbytes,
lpd3dxbuffer *ppbuffer
);
其中参数的含义显而易见.例如,创建一个包含四个整型数的缓冲区:
id3dxbuffer* buffer = 0;
d3dxcreatebuffer( 4 * sizeof(int), &buffer );
11.2. x文件
使用d3dxcreate*函数,可以创建一些简单的几何体,如球.圆柱.立方体等.如果想通过手动设定顶点的方式创建较复杂的3d对象,你会发现这太麻烦了,简直无法做到!现在,可以使用很多种3d建模工具软件来完成这项枯燥工作,如3ds max,lightwave 3d,maya等.使用这样的建模工具,可以在可视化的.交互的环境中设计复杂.逼真的模型,而且还有丰富的工具可用,使整个建模过程相当简单.这里的简单是相对于在“程序中手动设定顶点的方式建模”,实际上,这些建模工具还是相当复杂的,想得心应手的使用,可不是一朝一夕之功.
这些建模工具可以将所建立的模型的数据(几何信息,材质,动画等)保存到文件.我们需要从文件中分析提取需要的数据,然后应用到自己的3d程序中.有一种常用的文件格式,xfile,其扩展名为.x,较为简单,是direct3d定义的文件格式,d3dx库提供了完整的支持,可满足一般的需要.
11.2.1. 加载一个.x文件
使用下面的函数加载存储在.x文件中的mesh数据.它创建一个id3dxmesh对象,然后从.x文件中读取mesh的几何信息.
hresult winapi d3dxloadmeshfromx(
lpctstr pfilename,
dword options,
lpdirect3ddevice9 pd3ddevice,
lpd3dxbuffer *ppadjacency,
lpd3dxbuffer *ppmaterials,
lpd3dxbuffer *ppeffectinstances,
dword *pnummaterials,
lpd3dxmesh *ppmesh
);
l pfilename –.x文件的文件名
l options –创建mesh的标志.详情可参考sdk文档中的d3dxmesh枚举类型.常用的几个标志如下:
n d3dxmesh_32bit –使用32位的顶点索引,默认为16位
n d3dxmesh_managed –使用受控的内存缓冲池
n d3dxmesh_writeonly –缓冲区只可执行写操作
n d3dxmesh_dynamic –使用动态内存缓冲池...
下一页 摘要: 这几天开始接触jsp里面一些bean的写法,然后自己想了想,认为其实在asp里面也可以采取这一思想来做。虽然不是很纯,不彻底,但是能够把一些逻辑处理分离出来,更适合程序的移植性,提高了开发周期。我自己写了个类connex包含了一些对数据库的操作,觉得应该可以包括一大部分的逻辑处理,但是这样也提高了错误几率,如果你把sql语句控制的比较好的话,应该是利大于弊的,这里都是一点点拙见,望大家指正。
......