什么是使用最少资源绘制和更新图形的最快方法?

时间:2013-02-02 03:06:49

标签: c++ performance graphics

我想学习开始绘制图形,但我对应该从哪里开始感到困惑。我知道我可以开始学习OpenGL或DirectX,但我想知道绘制图形有哪些其他选项,以及它们对OpenGL性能的明智表现。 用于将像素直接绘制到屏幕的C ++命令让我质疑图形渲染过程是如何完成的,如果仅使用这些C ++命令对于小事物(例如绘制自定义窗口)可能是更好的性能。

我真的不确定从哪里开始,所以任何流行的图形渲染软件/技术之间的客观比较都会非常有用。

1 个答案:

答案 0 :(得分:2)

一般来说,有几种方法可以在屏幕上或图像中绘制内容。

  • 硬件渲染(OpenGL)
    要开始学习OpenGL,您应该阅读教程"Learning Modern 3D Graphics Programming"。该教程非常好;它解释了所有必要的数学,从简单的例子开始,关注性能。它是非常现代的(如果你谷歌的“OpenGL教程”,你会发现很多旧的教程使用古老的“固定管道方法”)。

  • 软件渲染
    我个人建议使用Qt framework来执行此任务。 (当然,也有其他图书馆可以做到这一点。) 在其上创建一个新的QImage或QPixmap对象和一个QPainter。然后,您可以使用图像上的QPainter命令进行绘制。然后,您可以将图像保存到文件或在屏幕上显示。您还可以使用自定义paint event中的QPainter直接在屏幕上呈现。

  • 自定义每像素绘图
    使用此方法来学习计算机图形学的“低级”内容。如果库提供的唯一操作是“设置像素x,y到颜色r,g,b”,了解如何在屏幕上绘制线条。这也可以使用Qt的QImage::setPixel

  • 来完成