当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 10. Mesh Part One
 

 

 ·asp.net 中使用 客户端脚本    »显示摘要«
    摘要: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.


...   下一页
 ·asp中如何快速分页[原创]    »显示摘要«
    摘要: 近日一直在研究如何才能写出高小的分页算法,大概整理了一下,思路如下: 首先数据库里需要有一个自动编号字段(id)。然后第一次访问的时候,取出所有记录,定制好每页的记录数pagesize,计算出页数,然后根据页数建立一个一维数组pageid(pagecount),pageid(0)保存记录初试条件,然后对应每个元素保存每页对应的id边界码( 1,id边界码:如果数据库记录id记录序列如下 1,2,......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE