在Direct3D9中读取和写入反锯齿纹理

我对Direct3D9中的纹理和曲面有些困惑。 现在,看起来相当简单,只能从纹理中读取,只写入表面,而在创建纹理时,则可以将曲面设置为渲染目标。

我不明白的是CreateTexture函数。 它的CreateRenderTarget相当于一个只渲染和从不读取的表面,而不是反锯齿参数的选项,而CreateTexture则不会,即使您可以明确地使用它来创建渲染目标。

这是否意味着不可能为例如具有抗锯齿的阴影映射创建中间纹理?

我相当确定你不能直接读取一个MSAA(反锯齿)渲染目标作为D3D9中的纹理。 (我相信你可以在D3D10-11中做到这一点)。 在D3D9中,您必须通过使用StretchRect将其复制到非MSAA渲染目标来“parsing”MSAA渲染目标。 这会产生一个带有抗锯齿的简单图像,然后您可以将其用作纹理。