首先,一些背景:
我为游戏编写的3D引擎允许我在DirectX 9和OpenGL之间切换,这要归功于中间的API层。
两者都允许用户启用多重采样(通过OpenGL的GL_ARB_multisample,DirectX的D3DMULTISAMPLE_x_SAMPLES)。为游戏窗口缓冲区启用了多重采样。
我的角色模型使用了一个带有纹理图册的大纹理,因此我禁用了mipmapping以避免纹理出血。
我遇到以下结果:
我应该在禁用DirectX或OpenGL的多次采样时获得相同的结果。
正如我所希望的那样,当为两者启用多次采样时,我正确地对多边形进行边缘平滑。
然而,在OpenGL中,似乎多次采样也具有类似于纹理过滤的效果,可能在每个像素的纹理中的不同点处进行多次采样,因为结果与mipmap将实现的结果相当。没有纹理出血 - 显然,很棒。然而,另一方面,DirectX似乎没有提供这种好处,因为纹理映射的结果不是消除锯齿,并且与禁用多采样时相同。
我非常想知道我是否可以做任何事情,以便在DirectX中获得与OpenGL相同的结果。也许我不知道好的关键字,但我找不到与多重采样的这个特定方面有关的文档。