Irrlichtでマルチサンプリングを有効にしますか?


7

Irrlichtを使用する小さなゲームに取り組んでいます。私はIrrlichtにかなり慣れていないので、どうすればマルチサンプリングを有効にできるのかと思っていました。デバイスドライバーは次のようにEDT_OPENGL開始されます。

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

マルチサンプリングを有効にするにはどうすればよいですか?

回答:


4

これが解決策ですが、現在の関数の代わりにcreateDeviceExを呼び出す必要があります。

AntiAliasメンバーをtrue(または別の値)に設定して、SIrrlichtCreationParameters構造体を上記の関数に渡す必要があります。変数は符号なし整数であり、ブール値ではないようです。もちろん、質問のIrrlichtDeviceと同じ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は残念ながらあまり役に立ちません)

おやすみなさい、これがお役に立てば幸いです!:-)


あなたの答えとuser1201210の組み合わせは正しいと思います。「params.AntiAlias = 8;」である必要があります。高いほど良いようです。
James Zaghini 2013年

AntiAlias値は、ブール値ではなくu8であることを意図しています。有効な値は2のべき乗なので、2、4、8、16です。高すぎる係数を指定すると、通常、デバイスは次に大きい数値にフォールバックします。1は通常0と同じですが、ハードウェアが1に対してAntiAlias値として特別な意味を持っているかどうかによって異なります。
Octopus

2

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;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.