1

描画時に allegro 5 でアンチエイリアスを使用するにはどうすればよいですか? 斜めの線が滑らかに見えるようにする必要があります。現在、それらは陰影のあるピクセルの線だけであり、エッジが硬く見えます。

4

2 に答える 2

5

プリミティブのアンチ エイリアシングを有効にするには:

// before creating the display:
al_set_new_display_option(ALLEGRO_SAMPLE_BUFFERS, 1, ALLEGRO_SUGGEST);
al_set_new_display_option(ALLEGRO_SAMPLES, 8, ALLEGRO_SUGGEST);

display = al_create_display(640, 480);

アンチエイリアシングは、バック バッファーに直接描画されたプリミティブに対してのみ機能することに注意してください。他の場所では機能しません。

OpenGL では、カードがARB_multisample拡張機能をサポートしている必要があります。

有効になっているかどうかを確認するには (ALLEGRO_SUGGEST を使用する場合):

if (al_get_display_option(display, ALLEGRO_SAMPLE_BUFFERS)) {
   printf("With multisampling, level %i\n",
     al_get_display_option(display, ALLEGRO_SAMPLES));
}
else {
   printf("Without multisampling.\n");
}
于 2011-06-17T22:17:43.627 に答える
3

ライン スムージングまたはマルチサンプリングの 2 つのオプションがあります。

glEnable(GL_LINE_SMOOTH) を使用してライン スムージングを有効にできます。Allegro を介して線を引くと、Allegro 5 がこれをリセットする場合があることに注意してください。

もう 1 つの方法は、マルチサンプル表示を作成することです。これは、 を呼び出す前に行う必要がありますal_create_display。その方法は次のようになります。

al_set_new_display_option(ALLEGRO_SAMPLE_BUFFERS, 1, ALLEGRO_REQUIRE);
al_set_new_display_option(ALLEGRO_SAMPLES, #, ALLEGRO_SUGGEST);

上記の # は、使用するサンプルの数です。幾つか?これは実装に依存し、Allegro は役に立ちません。そのため、サンプル数に REQUIRE ではなく ALLEGRO_SUGGEST を使用しました。使用するサンプルが多いほど、品質が向上します。8 サンプルは、ほとんどのハードウェアでサポートされている適切な値です。

于 2011-06-17T21:42:52.173 に答える