2

我很喜欢在游戏编程的背景下学习使用 OpenGL,并且我尝试过创建小形状。我想知道是否有任何资源或应用程序可以使用简单的类似绘画的界面生成类似于以下代码的代码。

glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINE_STRIP);
glVertex2f(1, 0);
glVertex2f(2, 3);
glVertex2f(4, 5);
glEnd();

我无法思考正确的尺寸来生成形状并得出正确的坐标。

澄清一下,我不是在寻找一个程序,我可以自由地在其中绘制东西并期望它能够创建好的代码来使用。只是一种表示和修改您需要的坐标集的视觉方式。

我通过在油漆中绘制形状并测量像素之间相对于单个点的距离在一定程度上解决了这个问题,但它并不那么优雅。

4

4 回答 4

1

听起来您正在寻找一种将 2d 几何图形导入应用程序的方法。我认为最好的方法是开发内容管道。它是这样的:

  1. 您可以在 3D 建模程序(如 Google 的 Sketchup)中创建内容。在您的情况下,您将使用多边形绘制 2d 形状。

  2. 您需要一个转换工具来将数据从原始格式转换为目标应用程序可以理解的格式。从 Sketchup 中获取多边形和顶点数据的一种方法是导出到 Collada 并让您的工具读取和处理它。(最简单的格式是三角形或线条的列表。)

  3. 在您的代码中编写一个几何加载器,以读取您的转换工具创建的数据。您需要编写使用顶点数组来显示几何图形的 opengl 代码。

于 2010-07-26T17:20:19.190 回答
0

您将使用的坐标仅取决于您定义视口的方式和您正在操作的分辨率。事实上,您可能会考虑在您想要的任意坐标系中收集鼠标点击的坐标,然后将这些坐标映射到opengl 坐标。

于 2010-01-28T15:14:29.347 回答
0

你期待什么样的图书馆?

像drawSquare(dx,dy);?画圆(半径);?

drawPoly(x1,y1,x2,y2....);?

这不是与 glVertex 完全相同但名称不同吗?抽象在哪里?

于 2010-01-29T02:34:07.557 回答
0

我制作了其中一个……它将采用位图图像,并从中生成几何图形。尝试查找三角测量。

第一步是生成形状的边缘,将其从像素转换为顶点和边缘,找到所有边缘像素并在每个像素上放置一个顶点,然后基于顶点之间的距离或(更好)梯度差异在边缘之间剔除顶点并减少网格的多边形数。

如果您的形状绘图程序使用“矢量图形”而不是像素,即绘制点并在它们之间绘制线条,那么您可以跳过第一步,您只需要进行三角测量。

第二步,一旦你有了边和顶点,就是三角剖分,为了生成三角形,剪耳是一种简单的方法,例如。

至于要使用的坐标?正如其他人所说,这完全取决于你,为了简单起见,我只在像素坐标中工作。

然后,您可以根据需要缩放和平移以转换形状以供使用。

于 2010-01-29T08:03:38.010 回答