|
|
当一个顶点有多个法线或者多个贴图坐标的时候,如果使用索引方法画多边形,那么就必须把一个顶点分别变成好几个放在顶点缓存中吗?
比如一个模型中
点a在一个面中有一个法线信息和2个贴图坐标信息(多重贴图mapchannel)
可是点a在另一个面中,可能有另外一组,不一样的法线和贴图坐标
这是我定义的顶点格式
const D3DVERTEXELEMENT9 Decl[5] =
{
{ 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
{ 0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 },
{ 0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
{ 0, 32, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 },
D3DDECL_END()
};
我想的是给所有不同的信息重新在顶点缓存中增加一个顶点,这样顶点缓存就有2个或2个以上的同一个顶点,只是他们的法线,贴图坐标不同,但是这样有一个问题,这样做无形中增加了顶点数量,岂不是会导致游戏变慢?
我如何使用DrawIndexedPrimitive画这个模型?
难道贴图坐标和法线也可以用索引么?
[em7] [em7] |
|