偶初学DirectX 而且看不惯老外写代码的风格..... 是在难懂啊 Device->CreateVertexBuffer(  //Create顶点缓冲
6 * sizeof(Vertex),    //分配 6个顶点吗? 这个是疑问
D3DUSAGE_WRITEONLY,  //只写
Vertex::FVF,        //这个也不懂.....
D3DPOOL_MANAGED,     //内存池
&Quad,          //返回值  用于接收创建的顶点缓冲
0); Vertex* v;
Quad->Lock(0, 0, (void**)&v, 0);   //访问创建的顶点缓存 //但是v就不知道是什么了... // quad built from two triangles:
v[0] = Vertex(-1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 3.0f); //↓这一堆都不知道是干什么的..郁闷书上没介绍到
v[1] = Vertex(-1.0f,  1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f);
v[2] = Vertex( 1.0f,  1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 3.0f, 0.0f); //我想下 之前的例子 没看到有创建三角形的函数之类的操作 应该就是在这里弄的吧 v[3] = Vertex(-1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 3.0f);
v[4] = Vertex( 1.0f,  1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 3.0f, 0.0f);
v[5] = Vertex( 1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 3.0f, 3.0f);//↑到这里 Quad->Unlock();  //应该是释放、解锁 之类的吧 是这样理解的应该 D3DXCreateTextureFromFile(  //从磁盘加载图片为纹理
Device,   //D3D接口
"dx5_logo.bmp",  //图片位置
&Tex);   //返回值 Device->SetTexture(0, Tex); //设置纹理 Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);//纹理过滤器的 //线性纹理
Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); //不知道为什么 线性纹理要2次 而近点采样一次呢 
Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT); //近点采样 Device->SetRenderState(D3DRS_LIGHTING, false);  //应该是关闭 纹理过滤器的吧
     //我看了很多次 "SetRenderState"这函数了 第一个参数应该是标识吧 第二个 是开关? 是这样理解的吗

解决方案 »

  1.   

    Vertex 是一个结果或者一个类,找到定义自己看看就明白了
      

  2.   

    vertex是一个结构啊  不知道 Vertex(-1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 3.0f); 
    括号里面的float是什么意思。
      

  3.   

    楼主你还是把 C++ 学扎实吧,打好 C++ 的功底,要不越往后看你越郁闷的.Vertex(-1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 3.0f); 就是一个创建并构造了一个 Vertex 对象,里面的那些值是给 Vertex 对象的成员附初始化的值.
      

  4.   

     Vertex::FVF,        //这个也不懂.....   这个是定点格式
    v[0] = Vertex(-1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 3.0f); 这是构造一个顶点   按照顶点格式   应该是坐标  演示 纹理坐标等
     Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);//纹理过滤器的 //线性纹理
        Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); //不知道为什么 线性纹理要2次 而近点采样一次呢 
        Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT); //近点采样
     这个是设置   采样  分别设置 增大的  小的  和  渐进等级 纹理 采样为  线性采样  这个是图形学 里面看下
      

  5.   

    Vertex(-1.0f, -1.0f, 1.25f, 0.0f, 0.0f, -1.0f, 0.0f, 3.0f);生成临时对象并调用构造函数
      

  6.   

    vertex是一个结构体,自定义的,要符合dx FVF标准,
    这个应该是初学就懂的吧?