gpt4 book ai didi

c++ - 我如何在 C++ 中的 OpenGL SuperBible 中使用变换矩阵而不使用着色器?

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:16 25 4
gpt4 key购买 nike

我精通 C++,但对 openGL 和 OpenGL SuperBible 还很陌生。我想采用先前开发人员在着色器中使用的投影矩阵,并在没有着色器的情况下应用该矩阵。比如我想取下面的(只贴出相关代码):

GLShaderManager shaderManager;
// Zoom and shade
shaderManager.UseStockShader(GLT_SHADER_FLAT, viewFrustum.GetProjectionMatrix(), vGreen);

并使用它来调整缩放而不应用着色器(其中 ???? 是我正在寻找的功能):

// Adjust the zoom without applying a shader
????(viewFrustum.GetProjectionMatrix());

我的问题是,我可以使用什么函数来做到这一点?请注意,viewFrustum.GetProjectionMatrix() 中的矩阵已经设置好,我试图避免重新编码整个功能。我正在寻找一个只应用矩阵而不干扰颜色的函数。

澄清:我正在绘制的对象可以有超过 100 万个多边形,并且会改变颜色。我只是在寻找一个可以代替 ???? 的函数。

最佳答案

您需要了解 OpenGL 中矩阵的配置,例如它们有多少行和列以及它们是行主还是列主。这可以从很多地方收集到,包括:

  1. official OpenGL specs .
  2. 一些 tutorial on the subject
  3. 来自许多与 OpenGL 兼容的矩阵数学库的来源。

事实上,大多数基于 OpenGL 的 3D 引擎都具有一些兼容的基本矩阵支持形式。实际上,只使用其中一个库可能更好。

@genpfault 建议GLM这看起来很有希望。

关于c++ - 我如何在 C++ 中的 OpenGL SuperBible 中使用变换矩阵而不使用着色器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23767868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com