zoukankan      html  css  js  c++  java
  • Direct3D 9学习笔记(12)网格(Mesh)3

    一.ID3DXBuffer

    image

    image

    二.XFile

    image

    加载XFile

    image

    示例

    HRESULT hr = 0;
    
    //
    // Load the XFile data.
    //
    
    ID3DXBuffer* adjBuffer  = 0;
    ID3DXBuffer* mtrlBuffer = 0;
    DWORD        numMtrls   = 0;
    
    hr = D3DXLoadMeshFromX(  
        "bigship1.x",
        D3DXMESH_MANAGED,
        Device,
        &adjBuffer,
        &mtrlBuffer,
        0,
        &numMtrls,
        &Mesh);
    
    if(FAILED(hr))
    {
        ::MessageBox(0, "D3DXLoadMeshFromX() - FAILED", 0, 0);
        return false;
    }
    
    //
    // Extract the materials, and load textures.
    //
    
    if( mtrlBuffer != 0 && numMtrls != 0 )
    {
        D3DXMATERIAL* mtrls = (D3DXMATERIAL*)mtrlBuffer->GetBufferPointer();
    
        for(int i = 0; i < numMtrls; i++)
        {
            // the MatD3D property doesn't have an ambient value set
            // when its loaded, so set it now:
            mtrls[i].MatD3D.Ambient = mtrls[i].MatD3D.Diffuse;
    
            // save the ith material
            Mtrls.push_back( mtrls[i].MatD3D );
    
            // check if the ith material has an associative texture
            if( mtrls[i].pTextureFilename != 0 )
            {
                // yes, load the texture for the ith subset
                IDirect3DTexture9* tex = 0;
                D3DXCreateTextureFromFile(
                    Device,
                    mtrls[i].pTextureFilename,
                    &tex);
    
                // save the loaded texture
                Textures.push_back( tex );
            }
            else
            {
                // no texture for the ith subset
                Textures.push_back( 0 );
            }
        }
    }
    
    Device->BeginScene();
    
    for(int i = 0; i < Mtrls.size(); i++)
    {
        Device->SetMaterial( &Mtrls[i] );
        //Device->SetTexture(0, Textures[i]);
        Mesh->DrawSubset(i);
    }    
    
    Device->EndScene();
    

    三.顶点法线

    image

    image

    image

  • 相关阅读:
    java中super构造方法的理解
    js和jquery
    hdfs数据导入及spark导入hdfs数据
    mysql设置定时任务
    ssh 设置无密登陆
    实验九 堆排序
    实验8 Hash表的建立和查找
    实验七 图的最小生成树算法
    实验六 huffman树的实现及应用
    实验五 二叉树的建立、遍历及应用
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2653366.html
Copyright © 2011-2022 走看看