2011-04-29 133 views
0

我想在屏幕上画一个简单的2D火柴人。我也希望它是反锯齿的。在OpenGL中绘制一个简单的反锯齿火柴人

问题是我想使用一个骨骼系统,这个系统会在我知道如何根据关节位置绘制火柴人本身之后写出来。这意味着我不能使用精灵 - 我希望我的火柴人在代码中完全可控。

如果能够绘制曲线,那将会很棒。

如果不是更好,使用模型绘制3D火柴人也会很棒。相机将会像2D一样定位,但我仍然会有深度。问题是我只有Maya的经验,并且在OpenGL中模型的输出和顶点加权看起来像一团糟......

我试图找到二维抗锯齿绘图的库或启用多采样和绘图通常,但我没有运气。我也尝试过使用OpenGL的原生反锯齿,但似乎不推荐使用,而且线条连接不好...

我不希望它太复杂,因为它不应该是 - 它只是我的计划的第一部分,它的绘制火柴人 ...

我希望你们能帮助我,我敢肯定,你比我更清楚:)

+0

你有没有写过任何代码?你尝试过什么吗?我们不在这里为您编写代码,我们可以帮助您解决具体问题。 – 2011-04-29 10:43:48

+0

我做过了,但没用。我不需要你为我写任何代码,我只需要一个方向,因为现在我有点失落。 – crazyspacemonkey 2011-04-29 11:14:06

回答

4

您可以启用GL_SMOOTH。要检查您的设备是否支持您所需的线条宽度以获得平滑线条,可以使用glGet(GL_SMOOTH_LINE_WIDTH_RANGE);

如果你希望你的代码是通用的,你也可以使用抗锯齿纹理。 看看这个链接

http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node62.html

+0

看起来很有意思,谢谢! – crazyspacemonkey 2011-04-29 11:17:06

+0

虽然看起来我需要自己实现这个方法,但它确实是我的最后一个选择 - 我在寻找类似cairo的东西,可以用于游戏。我不需要超高质量,只需要基本的抗锯齿和与OpenGL的集成。 – crazyspacemonkey 2011-04-29 11:40:25

0

获得抗锯齿是使用GL库,它知道如何让抗锯齿GL背景下,example,SDL的唯一途径。作为火柴人,你可以用彩色多边形绘制他。

+0

这个例子使用多重采样,所有卡都不支持(我的也不支持它),所以我需要更通用的东西,但谢谢! – crazyspacemonkey 2011-04-29 11:16:54

+0

@crazyspacemonkey:如果你的显卡不支持多重采样/全屏抗锯齿,我会非常惊讶。即使我的1999年GeForce2可以做一些FSAA。 – datenwolf 2011-04-29 12:38:10

+0

我有英特尔GMA X3000,我试图启用它,但我不能,因为GL_MULTISAMPLE_ARB不在我从wglGetExtensionsStringARB获得的扩展名列表中。如果有什么我在这里看不到...... :) – crazyspacemonkey 2011-04-29 13:28:48