为什么在计算机图形学中使用同质坐标?
如果在矩阵变换中不使用同质坐标,将会有什么问题?
为什么在计算机图形学中使用同质坐标?
如果在矩阵变换中不使用同质坐标,将会有什么问题?
Answers:
它的名称是:均质坐标非常均匀。齐次表示旋转,平移,缩放和其他变换的统一表示。
统一表示允许优化。3D图形硬件可以专门用于在4x4矩阵上执行矩阵乘法。甚至可以专门识别和保存0或1的乘法,因为它们经常被使用。
不使用齐次坐标可能难以充分利用经过高度优化的硬件。无论哪种程序都认识到,可以使用硬件的优化指令(通常是编译器,但有时情况会更复杂)来实现同类坐标,而很难优化其他表示形式。它将选择优化程度较低的指令,因此不会利用硬件的潜力。
就像有个例子一样:索尼的PS4可以执行大规模矩阵乘法。它的优点是如此之大,以至于它被抢购一空,因为它们使用的是集群而不是更昂贵的超级计算机。索尼随后要求不得将其硬件用于军事目的。是的,超级计算机是军事装备。
对于研究人员来说,即使不涉及图形,使用图形卡来计算其矩阵乘法也已变得非常普遍。仅仅是因为它们比通用CPU更好。为了进行比较,现代多核CPU的流水线数量约为16个(x0.5或x2无关紧要),而GPU的流水线数量约为1024个。
除了允许实际并行处理的管道外,核心还不止这些。核心在线程上工作。必须对线程进行显式编程。管道在指令级别上工作。芯片可以自己或多或少地并行化指令。
作为一种个人品味,我总是(尽可能)避免使用均一的坐标,而是首选纯直角坐标系。
主要原因是这样的事实:齐次坐标在转换矩阵中使用4个琐碎的条目(0、0、0、1),这涉及无用的存储和计算(也是通用矩阵计算例程的开销,该例程在默认情况下使用)这个案例)。
缺点是在编写方程式时您需要加倍小心,并失去对矩阵理论的支持,但到目前为止,我还幸免于难。
plain Cartesian formulation
或链接到描述其在3D图形中的用法的资源吗?
w
?
仿射坐标的计算通常需要除法,与加法或乘法相比,除法成本很高。使用投影坐标时通常不需要除法。
使用投影坐标(更普遍地,使用投影几何)也趋向于消除特殊情况,从而使所有内容更简单,更统一。