我正在学习webgl。我设法绘制了东西并希望了解管道。现在,我看到的每个教程都会在加载网格之前解释矩阵。虽然它对大多数人都有好处,但我认为我需要专注于加载外部几何体的过程,可能是通过json文件。我已经读过openGL默认显示正交的东西,所以我问:是否可以显示没有任何转换的3d网格?
答案 0 :(得分:1)
现在,我看到的每个教程都会在加载网格之前解释矩阵。
是。因为了解转换是必不可少的,而将需要使用它们。它们并不难理解,越早绕过它们越好。实际上,对于模型 - 视图转换部分的OpenGL,它实际上相当简单:
转换矩阵只是放在"父级"中的一堆向量(在列中)。坐标系。第一列定义了"嵌入"的X,Y和Z轴的方式。坐标系在" parent"中对齐,W列移动它。通过改变基本矢量的长度,你可以伸展,即缩放。
那就是它,在模型视图中没有什么比这更重要了。学习矩阵乘法的规则。矩阵向量乘法只是矩阵乘法的一种特殊情况。
投影矩阵有点棘手,但我建议你不要太烦恼,只需使用GLM,Eigen :: 3D或linmath.h来构建矩阵。投影矩阵的最佳类比是"镜头" OpenGL,即这是您应用缩放(也称为视野),倾斜和移位的地方。但是#34;相机的位置"是通过模型视图定义的。
是否可以显示没有任何变换的3d网格?
没有。因为网格坐标必须转换为屏幕坐标。然而,身份变换是完全可能的,是的,在正交投影上看起来像死了,其中任一维度中的坐标范围[-1,1]被映射以填充视口。