It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened,
visit the help center。
7年前关闭。
我正在尝试学习OpenGL,并查阅了一些“指南”和“教程”。这些“指南”和“教程”说,“执行此操作,然后执行此操作,然后您将获得绘制命令”。
我正在寻找某种OpenGL的学习材料,实际上可以解释引擎的工作原理,而不是让我无所适从。到目前为止,我已经咨询过
www.glprogramming.com/red/之类的东西,但一点也不开心。到目前为止,在第一章中,我不知道配置选项如何工作,opengl具有什么样的“上下文结构”,实际上是什么扩展,以及最重要的是,在阅读所有内容之后,这绝对没有任何意义:
我还阅读了一些内容,看到了诸如“ framebuffer”和“ renderbuffer”以及“ OpenGL context”之类的东西。我仍然不知道这些是什么(在阅读本文之前,我认为我至少知道什么是帧缓冲区)。相互矛盾的解释是,帧缓冲区保存所有原语的数据,并且帧缓冲区绑定到渲染缓冲区,该缓冲区执行某些操作?无论如何,所有这些“指南”都围绕绑定和缓冲这两个词,就像我在第1章中确切知道的那样。在红皮书的第1章中,我可以看到
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
。我不知道该怎么做,因为本章没有告诉我,下一章也没有告诉我。
想象一下,如果我只是向您扔了GObject系统,然后说:“好吧,是的,只是将这段代码放入其中,然后自定义它并编写您的应用程序。”这就是我所阅读的所有内容。用这种方法学习几乎是不可能的,因为我对幕后发生的事情一无所知。
我想知道:
什么是帧缓冲区
什么是帧缓冲区的内部结构
我如何使用/创建帧缓冲对象
我怀疑我可能不需要“渲染缓冲区”的相同内容
无论如何
什么是GL扩展以及它们如何与引擎交互
如果我想在屏幕上绘制3D立方体,我必须创建什么类型的对象以及这些对象的作用
关于opengl系统如何从头到尾进行初始化,涉及设置要绘制的内存,跟踪顶点/基元/纹理/其他元数据,渲染等。
管道从头到尾经历的过程,例如是否要在内存中的位置渲染红色方块
glVertex3f之类的调用如何与引擎交互
所有其他缓冲区的工作方式,例如“颜色缓冲区”和“顶点缓冲区”
像
GL_COLOR_BUFFER_BIT
这样的所有废话背后的理论
什么是深度缓冲区和模板缓冲区,它们如何与图形交互?它们是帧缓冲区对象的一部分吗?
基本上,我想在人们向我扔代码和奇怪术语之前真正学习OpenGL的理论。在开始从网络上无意识地复制代码并将其称为“学习”之前,我想知道该系统如何工作。由于某种原因,没有人会写这样的材料。
在座的任何人都可以解释这些事情或为我指明正确的方向(最好是了解我不了解GL的指南)吗?
我是一名优秀的程序员,十分优秀!