DirectX 9与OpenGL中的多重采样结果不同

时间:2017-08-31 08:59:21

标签: opengl directx msaa

首先,一些背景:

  • 我为游戏编写的3D引擎允许我在DirectX 9和OpenGL之间切换,这要归功于中间的API层。

  • 两者都允许用户启用多重采样(通过OpenGL的GL_ARB_multisample,DirectX的D3DMULTISAMPLE_x_SAMPLES)。为游戏窗口缓冲区启用了多重采样。

  • 我的角色模型使用了一个带有纹理图册的大纹理,因此我禁用了mipmapping以避免纹理出血。

我遇到以下结果:

  • 我应该在禁用DirectX或OpenGL的多次采样时获得相同的结果。

  • 正如我所希望的那样,当为两者启用多次采样时,我正确地对多边形进行边缘平滑。

  • 然而,在OpenGL中,似乎多次采样也具有类似于纹理过滤的效果,可能在每个像素的纹理中的不同点处进行多次采样,因为结果与mipmap将实现的结果相当。没有纹理出血 - 显然,很棒。然而,另一方面,DirectX似乎没有提供这种好处,因为纹理映射的结果不是消除锯齿,并且与禁用多采样时相同。

我非常想知道我是否可以做任何事情,以便在DirectX中获得与OpenGL相同的结果。也许我不知道好的关键字,但我找不到与多重采样的这个特定方面有关的文档。

0 个答案:

没有答案