0

我有一个场景如下:OpenGL ES中的摄像头

一个3D盒子,其基部以原点为中心,四个矩形围绕盒子的底部。我们可以把它看作是一个四面都有街道的建筑。我想获得投影视图模型矩阵。我已经准备好基于相机设置的投影和视图矩阵,但我不确定模型矩阵。场景中的每个对象是否会有一个不同的模型矩阵或整个场景只有一个模型矩阵?

立方体和矩形的模型矩阵是什么?

我希望在建筑物的所有四面的街道上移动摄像机。

回答

0

它可以以任何方式完成,但我建议为每个建筑物(立方体)分别建立一个模型矩阵,这可能只包含翻译。每个翻译都有不同的来源翻译。然后,在使用glDrawArrays()绘制每个模型矩阵之前,将每个这些模型矩阵依次传递给顶点着色器。您的相机位置应进入也传递给顶点着色器的视图投影矩阵,但仅在相机实际移动时更新。您的顶点着色器必须将模型和视图投影矩阵相乘。这将工作的必要条件放到着色器中,它应该放在哪里。

+0

译文应该从哪里出发,盒子和矩形的中心到原点? – Hellboy

+0

是的,确切地说。这样可以轻松缩放或旋转整个场景,例如,通过将所有模型矩阵乘以单个比例或旋转矩阵,或者两者兼而有之。 – ClayMontgomery

+0

所以,我会做这样的事情。 PVRTMat4 ViewMatrix = PVRTMat4 :: LookAtRH(vFrom,vTo,vUp); PVRTMat4 ProjectionMatrix = PVRTMat4 :: PerspectiveFovRH(DEG2RAD(fFOV),AspectRatio,CameraNear,CameraFar,PVRTMat4 :: OGL,rotate);对于(i = 0; i Hellboy