我正在尝试学习 OpenGL。我有使用 C 和 C++、设置构建环境以及所有这些爵士乐的经验,但我正试图找出一个好的起点。
我知道 OpenGL <= 2.1 中突出的固定功能管道,而且它似乎相对容易上手。但是,OpenGL 在 OpenGL >= 3.1 中推送的核心配置文件让我因为弃用而想要远离 FFP。但我对它在 3.1 及更高版本中的工作方式感到困惑。在 2.1 及以下版本中,当您绘制形状时,您有 glBegin(GL_WHATEVER) 和 glEnd()。在查看核心配置文件 API 时,我注意到的第一件事是这两个函数调用消失了。我意识到可能有一个简单的替换,但是看到从这样一个基本任务中取出的东西(看似有用)是非常令人震惊的。似乎从 c 标准库中弃用 printf() 。当我阅读最新的红皮书时,
在阅读类似问题的各种答案时,我会看到典型的“基于着色器”或“全部由着色器完成”等。如果我想在黑色背景上绘制一个简单的白色方块(最新红皮书中的第一个示例) ,我根本不明白着色器与绘制盒子有什么关系。他们不应该做......好吧......阴影?我已经考虑购买橙皮书和蓝皮书,但我不想再花钱购买将其全部隐藏在图书馆(蓝皮书)或将谈论编程着色器的东西在 3D 环境中执行一些照明任务(橙皮书)。
那么我从哪里开始呢?我如何只使用核心轮廓绘制一个盒子(或立方体或金字塔或其他任何东西)。我不是在这里要求代码片段,我正在寻找一个广泛的教程或一本书或有人可以指出我的东西。如果之前已经回答过,但我没有找到,请重定向我。