对于学习者来说,用 C/C++(2D 和 3D)开始基本图形编程有哪些好的选择?我想尝试书中给出的东西(3D 数学入门)。 显然我不想使用OpenGL。
我有一台装有 Linux (Debian) 的机器。我在 Linux 上的选择是什么?QT 或 GTK 还是别的什么?
编辑:我不想使用 OpenGL,因为它为我做了大部分有趣的工作。像,旋转,投影等。我想学习这些东西。
使用 OpenGL。您可以使用旧版 OpenGL 并将转换矩阵保留为恒等,并在调用glVertex
* 之前进行自己的旋转投影等,或者使用带有着色器的现代 OpenGL,您必须自己在顶点着色器中实现这些功能。
对于 2D 图形,我推荐SDL Library。它简单但功能强大。库 API 是 C/C++ 原生的,但支持您能想到的所有语言。您不必使用 OpenGL,但如果您以后决定使用它,SDL 会支持它。它还支持大多数音频和视频文件。我发现与初学者游戏开发人员一起工作很棒。
浏览以下链接中的教程。您不需要任何图形库 http://www.codermind.com/articles/Raytracer-in-C++-Introduction-What-is-ray-tracing.html
完成教程后,然后在 OpenCL 中重写光线追踪器并使用 SDL 显示像素缓冲区。使用实时全局照明给您的朋友留下深刻印象,他们认为 OpenGL 是处理图形的唯一方法。
看看tinyrenderer。
在本系列文章中,我想通过编写它的克隆(非常简化的一个)来展示 OpenGL 的工作方式。令人惊讶的是,我经常遇到无法克服最初学习 OpenGL/DirectX 的障碍的人。因此,我准备了一系列简短的讲座,之后我的学生展示了相当不错的渲染器。