想要开启Irrlicht抗锯齿(anti-alias),可以在创建设备的时候,设置这个属性。创建设备irrlicht提供2个方法:
1. extern “C” IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice(
video::E_DRIVER_TYPE deviceType = video::EDT_SOFTWARE,
// parantheses are necessary for some compilers
const core::dimension2d<u32>& windowSize = (core::dimension2d<u32>(640,480)),
u32 bits = 16,
bool fullscreen = false,
bool stencilbuffer = false,
bool vsync = false,
IEventReceiver* receiver = 0);
2. extern “C” IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(
const SIrrlichtCreationParameters& parameters);
两者区别主要就是参数不同了,第二个方法提供的可控参数比较多,全部放在了一个结构体里面。我们注意到在第一个方法里面并没有提到关于抗锯齿的参数控制,查看第二个方法的参数所对应的结构体发现有一个字段就是抗锯齿,因此我们这样设置:
SIrrlichtCreationParameters Param;
Param.AntiAlias = 1;
这个值是一个抗锯齿的级别,这里我设置成了1. 级别越高,画面越精细,消耗的资源也就越多。
这里我重点想说的是,如果在非全屏的情况下,也就是窗口模式下,开启抗锯齿(AntiAlias设置成了大于0的值),那么你就会发现整个画面刷新的非常缓慢,几乎到了1fps的程度。
所以如果你要开启抗锯齿,就采用全屏模式,设置该结构体的FullScreen字段为true。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.