Irrlicht 抗锯齿

想要开启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。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *