快板5中的消除混叠
Anti-aliasing in allegro 5
本文关键字:快板 更新时间:2023-10-16
如何使allegro 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 %in",
al_get_display_option(display, ALLEGRO_SAMPLES));
}
else {
printf("Without multisampling.n");
}
您有两个选项:直线平滑或多重采样。
可以使用glEnable(GL_line_SMOOTH)激活线条平滑。请注意,当您通过Allegro划线时,Allegro 5可能会重置此选项。
另一种选择是创建多采样显示。这必须在调用al_create_display
之前完成。方法是这样的:
al_set_new_display_option(ALLEGRO_SAMPLE_BUFFERS, 1, ALLEGRO_REQUIRE);
al_set_new_display_option(ALLEGRO_SAMPLES, #, ALLEGRO_SUGGEST);
上面的#应该是要使用的样本数。有多少这取决于实现,Allegro没有帮助。这就是为什么我使用ALLEGRO_SUGGEST而不是REQUIRE作为样本数量。你使用的样品越多,你得到的质量就越好。8个样本可能是大多数硬件支持的一个不错的值。
相关文章:
- 如何在快板的屏幕中显示子位图的绘制?
- 在 main.cpp 的上下文中找不到目录(带有 CMake 的快板)
- 快板获取当前窗口大小
- 快板 5:检查操纵杆是否"neutral"
- 快板 5 游戏无法使用 GCC 编译
- 快板不与克里昂合作(0xC000007B)
- 快板 5 + MinGW:音频插件不起作用
- C++ 快板第一个显示程序 - 平移旋转刻度
- 快板无法正确链接
- "Cannot find -lallegro-5.0.4-monolith-mt" 使用快板的开发C++错误
- 快板 5 如何隐藏/卸载位图
- 全屏模式下的快板颜色更改
- 快板 5 加载数据文件
- 快板乒乓球碰撞问题
- 快板帧速率问题
- 快板 5 不起作用
- 快板5窗口无法关闭
- 在全屏运行快板程序后出现屏幕分辨率问题
- 快板al_load_ttf_font找不到文件
- C++ 快板停止样品