• Direct3D 9学习笔记(11)网格(Mesh)2


    七.网格优化

    image

    参数解释:

    image

    示例:

    //
    // Optimize the mesh to generate an attribute table.
    //
    
    std::vector<DWORD> adjacencyBuffer(Mesh->GetNumFaces() * 3);
    Mesh->GenerateAdjacency(0.0f, &adjacencyBuffer[0]);
    
    hr = Mesh->OptimizeInplace(        
        D3DXMESHOPT_ATTRSORT |
        D3DXMESHOPT_COMPACT  |
        D3DXMESHOPT_VERTEXCACHE,
        &adjacencyBuffer[0],
        0, 0, 0);
    

    image

    八.属性表

    image

    image

    image

    九.邻接信息

    image

    image

    image

    示例:

    void dumpAdjacencyBuffer(std::ofstream& outFile, ID3DXMesh* mesh)
    {
        outFile << "Adjacency Buffer:" << std::endl;
        outFile << "-----------------" << std::endl << std::endl;
    
        // three enttries per face
        std::vector<DWORD> adjacencyBuffer(mesh->GetNumFaces() * 3);
    
        mesh->GenerateAdjacency(0.0f, &adjacencyBuffer[0]);
    
        for(int i = 0; i < mesh->GetNumFaces(); i++)
        {
            outFile << "Triangle's adjacent to triangle " << i << ": ";
            outFile << adjacencyBuffer[i * 3    ] << " ";
            outFile << adjacencyBuffer[i * 3 + 1] << " ";
            outFile << adjacencyBuffer[i * 3 + 2] << std::endl;
        }
    
        outFile << std::endl << std::endl;
    }
    

    十.网格克隆

    HRESULT CloneMesh(
        [in]           DWORD Options,
        [in]           const D3DVERTEXELEMENT9 *pDeclaration,
        [in]           LPDIRECT3DDEVICE9 pDevice,
        [out, retval]  LPD3DXMESH *ppCloneMesh
        );
    

    image

  • 相关阅读:
    JDk和Mevan安装和配置
    如何修改windows系统的host文件
    字符串格式化
    可变和不可变的数据类型
    拦截
    eclipse格式化代码模板
    oracle语法练习汇总
    PLSQL语法
    oracle创建完实例删除的时候报ORA-01031:insufficient privileges错误,解决办法
    socket多线程方式案例
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2647473.html
Copyright © 2020-2023  润新知