在一个真实的建模过程中、可能一个模型的几个顶点有很大的数值坐标、
如(100,200,300)(200,300,100)。。。
但是、最后想显示在opengl的窗口内、就必须规范化到 x ,y ∈【-1,1】,z ∈【-1,1】上
但这个区间的点显示在屏幕上、还需要隐含的变化、也就是转换成【像素坐标】【像素坐标左上角是00,右下角是 winWidth,winHeight】、这一变换不是在 shader里算的,
而是 glViewPort() 自动进行的!所以我们不用去关心最后模型应该在屏幕的哪个地方!也就是说想显示个三角面片的话是针对NDC去定位,
而不是针对窗口用像素去定位!
opengl 最开始的教程里的三角形的顶点坐标都设置的很小、都处于 NDC 中、就是为了在没有任何变换矩阵的情况下、让模型能正常显示
其实后面引入了MVP矩阵变换、就可以指定任意大小的坐标了、会有矩阵的运算来进行这种坐标的映射。
learnOpenGL教程中的这段话值得深思:注意体会 have been 和 should(看英文其实理解东西更快、中文的翻译大多很别扭、让人抓不住重点)