请问Luna的DX3D游戏开发编程基础里面的顶点的值是怎么计算的
像这段代码
Pyramid->Lock(0, 0, (void**)&v, 0);
// front face
v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
v[1] = Vertex( 0.0f, 1.0f, 0.0f, 0.0f, 0.707f, -0.707f);
v[2] = Vertex( 1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
// left face
v[3] = Vertex(-1.0f, 0.0f, 1.0f, -0.707f, 0.707f, 0.0f);
v[4] = Vertex( 0.0f, 1.0f, 0.0f, -0.707f, 0.707f, 0.0f);
v[5] = Vertex(-1.0f, 0.0f, -1.0f, -0.707f, 0.707f, 0.0f);
// right face
v[6] = Vertex( 1.0f, 0.0f, -1.0f, 0.707f, 0.707f, 0.0f);
v[7] = Vertex( 0.0f, 1.0f, 0.0f, 0.707f, 0.707f, 0.0f);
v[8] = Vertex( 1.0f, 0.0f, 1.0f, 0.707f, 0.707f, 0.0f);
// back face
v[9] = Vertex( 1.0f, 0.0f, 1.0f, 0.0f, 0.707f, 0.707f);
v[10] = Vertex( 0.0f, 1.0f, 0.0f, 0.0f, 0.707f, 0.707f);
v[11] = Vertex(-1.0f, 0.0f, 1.0f, 0.0f, 0.707f, 0.707f);
Pyramid->Unlock();
这里的Vertex里面的值都要怎么计算啊
这是定义
struct Vertex
{
Vertex(){}
Vertex(float x, float y, float z, float nx, float ny, float nz)
{
_x = x; _y = y;_z = z;
_nx = nx; _ny = ny; _nz = nz;
}
float _x, _y, _z;
float _nx, _ny, _nz;
static const DWORD FVF;
};
[解决办法]
这些顶点只不过是他想描绘的几何体的顶点。。 让你弄一个正方体出来 你把正方体往坐标系里一放顶点就出来了
后面那个是顶点法向量 书里有告诉怎么算(求与顶点相邻面的法向量再取平均,这个立方体太简单了 就直接把法向量给你了 再写个程序求就不值得了) 在实际的运用中这些顶点都是用建模软件导入进去的
v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f); 顶点位置(-1,0,-1) 顶点法向量 (0,0.707,-0.707)