首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

就剩20分了 再问个有关问题

2012-03-08 
就剩20分了再问个问题?当我们画一个三角形的时候 首先要创建顶点缓冲区 然后再渲染的时候SetStreamSourceS

就剩20分了 再问个问题?
当我们画一个三角形的时候 首先要创建顶点缓冲区 然后再渲染的时候
SetStreamSource SetFVF DrawPrimitive 这样就可以画出来了
但是 当我创建一个mesh或者导入一个mesh的时候 只需要导入drawsubset 就可以了 那么这个drawsubset干了哪些事?
顶点格式是什么?  



[解决办法]
你在调用D3DCreateMesh的时候第四个参数就是Declaration,设置你的顶点格式,还可以调用D3DCreateMeshFVF,第四个参数就是FVF,至于Drawsubset就跟Drawprimitive一样,不必去关心到底怎么实现的。
[解决办法]
DrawSubset内部调用了Drawprimitive进行绘制。
Subset就是把一个Mesh在逻辑上按照材质等等分成几个子Mesh,子Mesh的属性和Mesh是一样的,所以子Mesh的FVF就是Mesh的FVF,DrawSubset会自动设置。
[解决办法]
我觉得用LPD3DXMESH一点也不灵活。
主要有二点:1、不能自己控制顶点结构体格式,因为导出插件不支持。
2、不知道顶点结构体格式是什么,因为LPD3DXMESH将其隐藏起来啦。
这样导致的问题是:我们没有办法定义D3DVERTEXELEMENT9[]。
大家要知道,D3DVERTEXELEMENT9[]是直接与VERTEX SHADER中输入结构体
相对应的。如果不知道输入结构体,我们就没有办法写出VERTEX SHADER啦。
不知道我这样理解对不对?

[解决办法]
shader时代不提倡使用ID3DX**组件

热点排行