【发布时间】:2014-04-25 10:30:00
【问题描述】:
如果这是一个愚蠢的问题,我很抱歉,但我一直想知道为什么有这么多示例顶点着色器,其中包含模型视图矩阵。在我的程序中,我有以下情况:
- 投影矩阵几乎不会改变(例如,在调整应用窗口大小时)并且它是独立的,这很好,
- 模型矩阵经常变化(例如模型上的变换),
- 视图矩阵也经常变化(例如,改变观察方向、四处走动……)。
如果我要在顶点着色器中使用模型视图矩阵,我必须在 CPU 上执行矩阵乘法并上传单个矩阵。另一种方法是上传模型和视图矩阵并在 GPU 上进行乘法运算。关键是,视图矩阵不一定与模型矩阵同时发生变化,但如果使用模型视图矩阵,则必须执行 CPU 乘法和上传,只要它们中的任何一个发生变化。为什么不使用单独的视图矩阵和模型矩阵来实现快速 GPU 乘法,并可能大致相同数量的 GPU 矩阵上传?
【问题讨论】:
-
当我想减少 javascript 中矩阵数学的数量时,我已经在 webgl 中完成了此操作,因此在某些情况下它是有意义的。