引言: 10. Mesh Part One
摘要:working with client-side script
http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/clientsidescript.asp
......
摘要:昨天和猪讨论了一下关于bs构架的系统应该注意那些问题,自己想了想,整理了一下,hoho,都是一些拙见,希望大家来给些我没有提到的东西。 既然是b/s机构的,那先从b开始说吧:) b == browser (浏览器、拼错了别骂我。)一般就是指客户端,一般就是客户端提出请求,然后服务器端响应请求,其中还设计到检索、更新数据库。在客户端应该注意的问题,我归纳了下面几点: 1,关于控件的设置 这里要说的就......
在DirectX9.0中使用Mesh(1)10. mesh part one
【程序编程相关:
Research of JSTL - p】
本文译自«introduction to 3d game programming with directx 9.0»第十章“mesh part one”,敬请斧正. 【推荐阅读:
JSTL Specification (】
本节要达到的目标: 【扩展信息:
the different ways o】
在d3dx中,有很多函数都使用了id3dxmesh接口,如d3dxcreate*之类.id3dxmesh接口的主要功能继承自id3dxbasemesh父类接口,还有其他的mesh接口也是从id3dxbasemesh接口继承的,如id3dxpmesh接口,这个接口用于progressive mesh,把它翻译成“渐进mesh”,不知是否合适.
l 学习id3dxmesh对象的内部数据组织
l 学习创建一个id3dxmesh对象
l 学习优化id3dxmesh
l 学习渲染id3dxmesh
10.1. 几何结构信息
接口id3dxbasemesh具有顶点缓冲与顶点索引缓冲,分别用于存储mesh的顶点数据与顶点的索引数据,二者结合在一起才能够渲染出组成mesh的三角形.使用下面的两个方法可得到指向两个缓冲区的指针:
hresult id3dxmesh::getvertexbuffer(lpdirect3dvertexbuffer9* ppvb);
hresult id3dxmesh::getindexbuffer(lpdirect3dindexbuffer9* ppib);
下面是一个关于上述两个方法用法的例子:
idirect3dvertexbuffer9* pvb=null;
mesh->getvertexbuffer(&pvb);
idirect3dindexbuffer9* pib=null;
mesh->getindexbuffer(&pib);
另外,如果想修改顶点缓冲与顶点索引缓冲,需要先使用下面的两个方法加锁:
hresult id3dxmesh::lockvertexbuffer(dword flags,lpvoid* ppdata);
hresult id3dxmesh::lockindexbuffer(dword flags,lpvoid* ppdata);
参数flags用于说明加锁的方式,参数ppdata返回被锁定的内存的地址.记住,如果加锁成功还需要调用与之配对的解锁函数:
hresult id3dxmesh::unlockvertexbuffer();
hresult id3dxmesh::unlockindexbuffer();
下面是另外一些与mesh的几何结构有关的id3dxmesh接口的方法:
l dword getfvf(); --返回顶点的格式
l dword getnumvertices(); --返回顶点缓冲中的顶点数
l dword getnumbytespervertex(); --返回一个顶点所占的字节数
l dword getnumfaces(); --返回mesh的面数,也就是三角形数
10.2. 子集与属性缓冲
一个mesh由数个子集组成.子集是mesh中的一组使用相同属性渲染的三角形.这里的属性指的是材质.纹理.渲染状态.每一个子集用一个唯一的非负整数表示其id,如0,1,2,3等.
mesh中的每一个三角形都与一个属性id相关联,表示该三角形属于该子集.例如,在一个表示房子的mesh中,组成地板的三角形具有属性id 0,这就表示这些三角形属于子集0;同样的,组成墙的三角形的属性id为1,他们属于子集1.
...
下一页 摘要: 近日一直在研究如何才能写出高小的分页算法,大概整理了一下,思路如下: 首先数据库里需要有一个自动编号字段(id)。然后第一次访问的时候,取出所有记录,定制好每页的记录数pagesize,计算出页数,然后根据页数建立一个一维数组pageid(pagecount),pageid(0)保存记录初试条件,然后对应每个元素保存每页对应的id边界码( 1,id边界码:如果数据库记录id记录序列如下 1,2,......