我想学习开始绘制图形,但我对应该从哪里开始感到困惑。我知道我可以开始学习OpenGL或DirectX,但我想知道绘制图形有哪些其他选项,以及它们对OpenGL性能的明智表现。 用于将像素直接绘制到屏幕的C ++命令让我质疑图形渲染过程是如何完成的,如果仅使用这些C ++命令对于小事物(例如绘制自定义窗口)可能是更好的性能。
我真的不确定从哪里开始,所以任何流行的图形渲染软件/技术之间的客观比较都会非常有用。
答案 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。