在Irrlicht中启用多重采样?

我正在做一个使用Irrlicht的小游戏。 我对Irrlicht相当陌生,我想知道如何启用多重采样。 设备驱动程序EDT_OPENGL是这样启动的:

 IrrlichtDevice *device = createDevice(video::EDT_OPENGL, core::dimension2d<u32>(800, 700), 16, NO); 

我如何启用多重采样?

这里有一个解决scheme,但是你需要调用createDeviceEx而不是当前的函数。

您必须将一个SIrrlichtCreationParameters结构传递给上述函数,AntiAlias成员设置为true (或另一个值?似乎该variables是一个无符号整数,而不是一个布尔,从来没有注意到)。 当然,你必须定义一些其他的结构成员才能拥有与你的问题相同的IrrlichtDevice。 ;)

如果你愿意的话,下面是一段代码:(警告:自从1年以来我没有使用Irrlicht)

 SIrrlichtCreationParameters params = SIrrlichtCreationParameters(); params.AntiAlias = true; params.DriverType = video::EDT_OPENGL; params.WindowSize = core::dimension2d<u32>(800, 700); IrrlichtDevice *device = createDeviceEx(params); 

看到这里 (不幸的是没有太多)的信息。 (不幸的是Irrlicht doc实际上不是非常有用的)

希望这有助于,晚安! 🙂

Minishlink答案的快速补充: AntiAlias是在抗锯齿中使用的样本数量。 以下片段来自Irrlicht的COpenGLDriver.cpp。

 // This value determines the number of samples used for antialiasing // My experience is that 8 does not show a big // improvement over 4, but 4 shows a big improvement // over 2. if(AntiAlias > 32) AntiAlias = 32;