我正在尝试创建一个正交视图(与最终的透视图分开)。我知道视图的比例,位置,它是向上的向量,以及它所看到的点。因此,仅使用glm::lookAt()
创建视图矩阵似乎最简单,除非无法指定比例。
有没有办法引入glm::lookAt()
缩放?我认为缩放由lookAt制作的矩阵是不可能的,因为缩放需要首先发生以获得“预期”结果(对象看起来更大或更小,比如放大或缩小相机)。我可能在那里错了。
如果在使用lookAt时无法实现,那么是否有一系列相同的glm函数?
答案 0 :(得分:0)
就矩阵变换而言,您可以从缩放开始,然后应用glm::lookAt()
矩阵。我不熟悉glm,但我之前使用过GLUT。你应该可以像这样进行矩阵乘法(我假设你已经将所有东西都转换成场景空间,定义了所有的变量等)。
TransformedVector = glm::lookAt(cameraPosition,
cameraTarget,
upVector) *
glm::scale(scalingFactor,
scalingFactor,
scalingFactor) *
OriginalVector;
如果此行为异常,请尝试更换glm::lookAt()
和glm::scale()
订单。