首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标度矩阵与翻译矩阵相关问题

标度矩阵与翻译矩阵相关问题
EN

Stack Overflow用户
提问于 2011-03-29 07:56:29
回答 2查看 837关注 0票数 0

我正在将单向缩放矩阵设置为3D中的实体(例如实体1)。现在,我有另一个实体(实体2),它在这个实体之后,应该具有均匀的缩放。我应用于这两个实体的矩阵顺序如下..。

  1. 将entity1从原来的世界位置转换为原点
  2. 单向比例
  3. 把实体翻译回它在世界上的位置。

这个很管用。但是,如果我对实体2遵循相同的顺序,则不起作用。我在做世界坐标系中所有的矩阵变换。

这是我在计算机图形学这个令人惊叹的世界里迈出的第一步。如果有人能了解到各种坐标系(世界、模型、局部),并指导我如何计算从模型坐标系到世界坐标系的矩阵,我将不胜感激。反之亦然。

提前谢谢你,

阿图尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-29 10:11:46

我会先回答你的最后一个问题,希望它能让事情变得更清楚。

每当一个图形艺术家创建一个建筑物,一个怪物或一个景观,她将需要定义一个坐标系。它包含一个原点(0,0在哪里)和一些(x和y方向在哪里?)。这种选择完全是任意的,没有真正的重要性,但为了简单(在某种程度上,为了减少由于精度不够而造成的错误),原点通常是靠近对象的中心或参考点(例如树根)。

现在,如果艺术家聚集怪物和建筑内的景观,坐标可能不匹配。她本来可以把整个建筑和景观一起创造出来,虽然这并不总是可行的,更不用说方便了,但是对于怪物来说,去追逐一些可怜的MMO玩家,那是不可能的。

因此,我们需要一种方法来知道,在怪物奔跑的时候,手臂、腿、牙齿、触角和其他你不愿意看到的东西最终会出现在世界的什么地方。相对于怪物,他们的位置是非常清楚的。这就是我们所说的怪物坐标。更广泛地说,我们将调用本地坐标,意思是怪物的本地坐标。

那么世界坐标是什么?通常,它们将最有意义的内容称为引用,即被认为不会在其他事物周围移动的元素。这里,风景。

这就是矩阵发挥作用的地方。矩阵是什么?矩阵是一个操作符,它允许在不同的坐标系中表示坐标。它是坐标系统从一个系统到另一个的一个投影:从一个怪物到另一个场景,从一个场景到另一个摄像机,从一个摄像机到另一个屏幕.

矩阵可以表示从一个系统到另一个系统的任何转换:平移、旋转、缩放、剪切、扁平。或者是所有的人都是同一时间。恒等矩阵是不改变任何东西的矩阵。矩阵也可以组合:通过将平移矩阵和旋转矩阵相乘,得到两个平移和旋转的变换矩阵。这样做几次,你就可以得到汽车工厂机器人铰接式手臂尖端的位置,只需将每个关节的矩阵组合起来。

然后我们会遇到您的问题所在:平移然后旋转与旋转然后转换是不一样的。如果你不相信,自己试试:走然后转身,然后走,看看你怎么不会在同一个地方结束。最后,它意味着矩阵必须按照特定的顺序应用,这只取决于您想要做什么。

从你给出的解释来看,我怀疑这就是你出问题的地方,因为如果你先按比例进行翻译就会产生不同的结果。

票数 0
EN

Stack Overflow用户

发布于 2011-03-29 08:10:30

" world“坐标系使用一个完全未修改的矩阵来表示世界上的所有对象。这是最简单的方式来观察你的所有对象的位置在宏伟的事情。

“模型”坐标系非常类似于“局部”坐标系的概念。“局部”坐标系定义了一个以局部对象为基础的坐标系,因此,例如,(0,0)可以是这个局部坐标系中的对象的中心,并且正的Z轴可以向下看对象视图。“模型”坐标系本质上与此相同,但如果您与OpenGL混淆,即您有一个MODELVIEW矩阵,这个矩阵基本上就是目前使用的“局部”坐标系。你可以对这个“模型”矩阵进行操作,从世界坐标系到一个地方坐标系,到另一个地方坐标系,到另一个地方坐标系等等。

我认为,如果您对从"World“坐标系直接转换为对象的”本地“坐标系感兴趣,那么这是一篇很棒的文章可以帮助您解决这个问题。为了使用此解决方案,需要为您希望查找“本地”坐标系的对象提供前向、向上和侧向量(在"World“坐标术语中)。

我希望这能帮我弄清楚一点!:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5469489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档