4

我的团队目前仅限于在opengl 1.4平台上绘制图像,这意味着我们不能使用任何漂亮的纹理映射来绘制图像(是的,我们仅限于使用intel集成图形平台,这很烦人)。到目前为止,我们能够绘制、缩放和翻转图像,但是做图形的人声称在使用 glDrawPixels 时无法通过 glRotate 进行旋转,我们必须使用纹理等等,这在英特尔平台上不起作用。

我和他打赌午餐有一个旋转功能,比如 glRotate,它适用于直接位图。有这样的功能吗?glRotate 会起作用吗?我对这个图形的东西有点新手,但是库不允许位图旋转,除非通过纹理旋转,这似乎很可笑。

谢谢。

4

1 回答 1

7

您不能将 glRotate 与 glDrawPixels 一起使用。

glDrawPixels 是迄今为止将像素放到屏幕上的最差和性能最低的方法。您甚至可以通过使用糟糕的软件光栅化器将像素放到屏幕上来获得更好的性能。

简而言之,glDRawPixels 会将像素数据从进程内存复制到图形内存,并会进行一些非常简单的转换,例如翻转和缩放。所有更高级的东西(如旋转)都需要您实际使用图形芯片组的功能。例如,您必须使用纹理。

纹理确实有效。它们还适用于 GL 1.4 和 Intel 图形芯片组。我自己在这样的芯片组上工作了很长一段时间。您不会获得现代 ATI 或 NVIDIA 芯片组的性能,但它们也没有那么糟糕。

我最好的选择是,有人试图创建非两倍大小的纹理,但没有这样做,并决定纹理通常不适用于芯片组。

这不是真的。他们确实工作。您只需要知道 OpenGL 要求您以二维的幂创建纹理,并且您必须使用较大纹理的子矩形或将多个图像放入一个非常大的纹理(后者称为纹理图集)。

您可以通过调整纹理坐标来补偿较大纹理中的较小图像。

于 2008-10-21T23:23:51.187 回答