游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1974|回复: 2

如何自定义自己的顶点格式?

[复制链接]

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2012-2-12 12:12:00 | 显示全部楼层 |阅读模式
请教个菜鸟级的问题。各位大侠见笑了。还望不吝赐教。
我们都知道 当一个顶点包含 位置 和贴图信息时,它看起来像这样:
struct CUSTOMVERTEX
{
    FLOAT x, y, z; // The transformed position for the vertex
    float u,v;
};

// Our custom FVF, which describes our custom vertex structure
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_TEX1)

但如果我还想加入一些自定义数据 例如骨骼ID 权重进去。我如何define下面的标志位好让显卡知道哪个数据该怎么解析呢?
或者让显卡直接忽略掉顶点里面的一些数据。比如像这样
struct CUSTOMVERTEX
{
    FLOAT x, y, z; // The transformed position for the vertex
    char boneId[4];
    float u,v;
};
我该怎么define?或者该怎么做?

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 2012-2-12 23:17:00 | 显示全部楼层

Re:如何自定义自己的顶点格式?

所以才有了
D3DVERTEXELEMENT9[]这个东东
它定义了顶点结构中,每个部分的BETY偏移量和用处。

为什么光用Struct来表现一个vertex不行呢?
喵,喵,因为你用HLSL时,GPU 它可不认你C++还是C# ,当然它也不认识你定义的struct
而D3DVERTEXELEMENT9[]这个好东东 用偏移量和用途等等来表现了一个vertex结构(必须是与你struct结构里等价的),GPU说了,偶认识它。OK ,搞定,能用鸟

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2012-2-13 08:54:00 | 显示全部楼层

Re:如何自定义自己的顶点格式?

好滴 谢谢了。明白了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-9 10:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表