【问题标题】:Binormal and Tangent with Normal Mapping带有法线贴图的副法线和切线
【发布时间】:2012-08-29 08:23:02
【问题描述】:

我正在尝试为我的 DirectX 网格制作法线贴图着色器,并且在遵循我学校的一些笔记时,它告诉我我的顶点结构需要包含用于 Pos 的 Vec3 和用于法线的 3x3 Martix,副法线和切线,但我不知道如何获得副法线和切线。我参考了我的书,它告诉我使用 D3DXComputeTangentFrameEx 函数,但是我所有的网格都是 D3DXFRAME 对象,而不是 ID3DXMesh*..

谁能帮帮我?

我也想补充一下,我已经有了pos和法线向量。

【问题讨论】:

    标签: c++ directx


    【解决方案1】:

    如果你查看D3DXFRAME,你会发现pMeshContainer成员,这是D3DXMESHCONTAINER*类型,有MeshData成员在D3DXMESHDATA类型,有pMesh成员在ID3DXMesh*类型,但仅在Type == D3DXMESHTYPE_MESH 时有效。

    例子:

    {
        D3DXFRAME Frame;
    
        ID3DXMesh* pMesh;
    
        if( Frame.pMeshContainer->MeshData.Type == D3DXMESHTYPE_MESH )
            pMesh = Frame.pMeshContainer->MeshData.pMesh;
        else
            pMesh = 0;  // model is ID3DXPatchMesh type
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多