opengl 着色器坐标系

TKNgu

我在页面上学习 OpenGL:https : //learnopengl.com/Getting-started/Coordinate-Systems例如,他们使用 3 个矩阵(模型、视图、投影)并将所有矩阵推送到着色器程序。但是可以计算器 MVPmat = Projection * View * Model on CPU 并推送一次到着色器。

  1. 使用3个矩阵:

    • +使用 GPU。
    • +清洁。
    • - 需要所有像素的计算器 MVPmat。
    • - 使用 16 或 32 位计算器。
  2. 在 CPU 上使用 MVPmat = Projection * View * Model。

    • +每个模型一次。
    • +使用 64 位计算器。
    • - 使用 CPU。
    • -不干净。

什么是最好的方法?我在 GG 上找不到答案,或者可能是我很笨。

P/S 对不起我的英语。谢谢。

迈克尔·肯泽尔

我不确定您所说的“干净”与“不干净”是什么意思。我也不确定为什么你认为在 CPU 上计算模型-视图-投影矩阵意味着这必须使用 64 位精度来完成。当涉及到与图形相关的事情时,几乎不需要 64 位浮点算法。实际上,通常只需要单精度浮点数就行了。除非,例如,您正在做一些真正需要这种精度的科学计算……

回答您的问题:如果使用组合模型-视图-投影矩阵足以满足您的需求,那么使用组合矩阵似乎是最佳解决方案。您只需计算一次组合矩阵。您只需将一个矩阵而不是三个上传到 GPU。您只需在着色器中获取一个矩阵而不是三个。你只需要在着色器中做一个矩阵向量乘法而不是三个......

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章