D3DXSavePRTCompBufferToFile 函数

将压缩的预计算辐射传输 (PRT) 缓冲区保存到磁盘。

语法

HRESULT D3DXSavePRTCompBufferToFile(
  _In_ LPCSTR              pFileName,
  _In_ LPD3DXPRTCOMPBUFFER pBuffer
);

参数

pFileName [in]

类型: LPCSTR

要保存压缩缓冲区的文件的名称。

pBuffer [in]

类型: LPD3DXPRTCOMPBUFFER

指向输入 ID3DXPRTCompBuffer 对象的指针的地址。

返回值

类型: HRESULT

如果 方法成功,则返回值 D3D_OK。 如果 方法失败,则可以 D3DERR_INVALIDCALL返回值。

备注

编译器设置还确定函数版本。 如果定义了 Unicode,则函数调用将解析为 D3DXSavePRTCompBufferToFileW。 否则,函数调用将解析为 D3DXSavePRTCompBufferToFileA

PCA 文件格式是标头形式的二进制文件,然后是两个或三个数据块。

struct PRTCompressHeader
{
    UINT NumSamples;
    UINT NumCoeffs;
    UINT NumChannels;
    UINT TexWidth;
    UINT TexHeight;
    UINT bIsTex;
    UINT NumClusters;
    UINT NumPCA;
};

对于 bIsTex 为非零的情况, NumSamples 应等于 TexWidth * TexHeight

标头后面的基数据块是 NumCoeffs * NumChannels * (NumPCA + 1) * NumClusters * sizeof(float) 字节。

接下来是 PCA 权重数据块,即 NumPCA * NumSamples * sizeof(float) 字节。

如果 NumClusters 大于 1,则文件以群集 ID 数据块 NumSamples * sizeof(UINT) 字节结束。

要求

要求
标头
D3DX9Mesh.h

D3dx9.lib

另请参阅

预计算的辐射传输函数