D3DFVF的详细信息,msdn上怎么找不到啊比如D3DFVF_XYZRHW,那几个float的权威定义在什么地方好像只在例子中
D3DFVF的详细信息,msdn上怎么找不到啊
比如D3DFVF_XYZRHW,那几个float的权威定义在什么地方
好像只在例子中找到了结构的定义,其他一些D3DFVF在什么地方看啊
[解决办法]
那个不是定义的问题,而是对于计算机图形学当中的一些基本概念的理解的问题
例如: D3DFVF_XYZRHW 定义每个定点用4个float数值来表述他的齐次坐标系坐标
不理解应该是不理解透应变换当中齐次坐标系的概念,你可以搜索 齐次坐标系或者Homogeneous坐标系来找到关于这个坐标系的解释,例如:
http://baike.baidu.com/view/2132318.htm
http://www.opengpu.org/forum.php?mod=viewthread&tid=961
[解决办法]
这些知识都是结合MSDN加上博主的博客加以理解的。
有时候可以看看权威的书籍可增进理解,也可以自己意会。比如说D3DFVF_XYZRHW这个FVF就说明了顺序是x、y、z、rhw。
又比如说D3DFVF_XYZRHW|D3DFVF_DIFFUSE就说明顺序是x、y、z、rhw、diffuse。
[解决办法]
变量名只是方便理解的 你定义成float a, b, c, d; 也没什么关系,
命名成xyzw呢是为了方便理解 因为显卡里面处理这些顶点就是按照xyzw的顺序来的
文档说的很清楚 FVF只是顶点的流格式而已 相当于是和显卡的一个约定, 比如D3DFVF_XYZW的意思就是我
给显卡4个float 他们依次是 x,y,z,w 告诉显卡你按照这个顺序给我处理我发给你的顶点
msdn当然不是万能的 图形基础的东西还是要靠其他书籍来补足
[解决办法]不是图形学订好的 图形学才不会去管dx的东西
1. Vertex Buffer是一段连续的内存 Dx在没有设置FVF之前 并不知道Vertex buffer里面的数据是有什么用
怎么分段的,是什么格式的, 直到设置了FVF 这个Vertex buffer里面的数据才有了意义, 所以为什么要有FVF
这个标志位
2. DX可没有D3DFVF这个结构体, DX只有D3DFVF_XYZ这样的标志位, 这些标志位用"
[解决办法]"连到一起来表示你的Vertex Buffer里面的顶点格式,大小,用途等等信息
3. 一段标记位置 和纹理坐标的Vertexbuffer 那么他的格式就是
struct
{
float x, y, z;
float u, v;
}