返回首页

替换gl_Position = gl_ModelViewProjectionMa

时间:2019-07-26 来源:原创/投稿/转载作者:管理员点击:

  这里有几个问题,但我还是没有线年前用OpenGL编程,并注意到进入现代OpenGL有多么困难。面是一个可怕的混乱,当谈到的例子,你永远不知道它的版本,任何版本似乎混合了各种代码示例。3至少。所以我做的第一件事是从glVertex3fv移动到最后使用glVertexAttribPointer(通过一个步骤与glVertexPointer,直到我读到这已经过时了)。这工作得很好,但是当试图放置纹理时,我被卡住了,我认为这是因为错误的定位,我想摆脱c ++代码:

  一切都在神奇。现在不要误会我,我是魔术的大粉丝,但...然后我发现了几个矩阵转换,可以用于获取一个矩阵替换glFrustum,但每当我尝试替换它,它失败了(虽然我认为我理解了glFrustum后面的数学和转换为矩阵)。

  因此,我现在不知道的是在哪里替换和在着色器中。我不知道在什么时候glMatrixMode发生和“when”用一些统一的矩阵(传递args作为统一不是这里的问题)。我不能计算我已经读了多少教程,但我总是困惑所有混合版本。我总是很高兴一些代码示例,但请OpenGL 3或更高。

  此位的着色器代码执行与上面相同的功能。什么改变是内置的 gl_ModelViewProjectionMatrix 被3个统一的变量(可以组合为一个,如果你确保自己在C + )。并且内置 gl_Vertex 被替换为输入变量。

  现在你知道如何,我想解决“when”的问题。你说你不清楚矩阵模式的东西,让我回到我早先的说法“忘记它”。矩阵模式是这样的,所以你可以告诉opengl其内置应该受到OpenGL矩阵操作的调用,如glTranslate,glFrustum等等,但所有这一切都已经走了。你现在负责管理涉及的(可能许多)矩阵。所有你需要做的是在绘制之前传递它们(如上所示),你会很好。

  下面是一个工作示例(如果你被gl :: ...所惊讶,而不是gl ...这是因为我使用了一个由glLoadGen生成的opengl头,它将所有的opengl API函数放在gl命名空间中)。

  这里有几个问题,但我还是没有线年前用OpenGL编程,并注意到进入现代OpenGL有多么困难。面是一个可怕的混乱,当谈到的例子,你永远不知道它的版本,任何版本似乎混合了各种代码示例。好??吧,我有一个旧代码我想更新到OpenGL>

  3至少。所以我做的第一件事是从glVertex3fv移动到最后使用glVertexAttribPointer(通过一个步骤与glVertexPointer,直到我读到这已经过时了)。这工作得很好,但是当试图放置纹理时,我被卡住了,我认为这是因为错误的定位,我想摆脱c ++代码:

  一切都在神奇。现在不要误会我,我是魔术的大粉丝,但...然后我发现了几个矩阵转换,可以用于获取一个矩阵替换glFrustum,但每当我尝试替换它,它失败了(虽然我认为我理解了glFrustum后面的数学和转换为矩阵)。

【责任编辑:管理员】
随机推荐 更多>>