如何使用适当的抗锯齿绘制圆圈?
How to draw circles with proper anti-aliasing?
按照 pyglet's official documentation about shapes 的第一个代码片段中给出的示例,我清楚地看到了圆圈的锯齿状边缘,至少在我的系统上显然没有以任何成功的方式消除锯齿。这是我的代码和屏幕截图:
import pyglet
from pyglet import shapes
window = pyglet.window.Window(fullscreen=True)
batch = pyglet.graphics.Batch()
circle = shapes.Circle(700, 150, 100, color=(50, 225, 30), batch=batch)
@window.event
def on_draw():
window.clear()
batch.draw()
pyglet.app.run()
所以我想知道是不是pyglet不直接迎合弧、圆、线的抗锯齿
而且,您将如何使用 pyglet 获得平滑的 circle/arc 边缘和平滑的线条 ― 您会推荐一个特定的中间 (python) 库来绘制平滑边缘的形状吗?你会从 pyglet's own OpenGL bindings 调用 OpenGL 来顺利完成吗?
十多年前的相关讨论:
Pyglet OpenGL drawing anti-aliasing
您必须创建一个 OpenGL window,并为多重采样配置帧缓冲区(参见 Creating an OpenGL context ans Specifying the OpenGL context properties):
import pyglet
config = pyglet.gl.Config()
config.sample_buffers = 1
config.samples = 4
indow = pyglet.window.Window(config=config)
按照 pyglet's official documentation about shapes 的第一个代码片段中给出的示例,我清楚地看到了圆圈的锯齿状边缘,至少在我的系统上显然没有以任何成功的方式消除锯齿。这是我的代码和屏幕截图:
import pyglet
from pyglet import shapes
window = pyglet.window.Window(fullscreen=True)
batch = pyglet.graphics.Batch()
circle = shapes.Circle(700, 150, 100, color=(50, 225, 30), batch=batch)
@window.event
def on_draw():
window.clear()
batch.draw()
pyglet.app.run()
所以我想知道是不是pyglet不直接迎合弧、圆、线的抗锯齿
而且,您将如何使用 pyglet 获得平滑的 circle/arc 边缘和平滑的线条 ― 您会推荐一个特定的中间 (python) 库来绘制平滑边缘的形状吗?你会从 pyglet's own OpenGL bindings 调用 OpenGL 来顺利完成吗?
十多年前的相关讨论: Pyglet OpenGL drawing anti-aliasing
您必须创建一个 OpenGL window,并为多重采样配置帧缓冲区(参见 Creating an OpenGL context ans Specifying the OpenGL context properties):
import pyglet
config = pyglet.gl.Config()
config.sample_buffers = 1
config.samples = 4
indow = pyglet.window.Window(config=config)