glLoadIdentidty();
glBegin(GL_POINTS);
glVertex3f(0f,0f,0f);
glEnd();
为什么我看到的程序里面画图的命令都是在glMatrixMode(GL_MODELVIEW);之后?不是应该先建好模型再进行模型和视图变换吗?那么这样画出来的点是在哪个坐标系下面的?
3 个解决方案
#1
难以解释
0.先摆好物体,1.然后选点放相机,2.再决定拍下的图像采用那种投影方式 正常0,1,2是我们考虑问题的顺序
但在GL中,这个顺序是反的,即你要先确定2 投影方式,然后放好相机(理解gluLookAt函数),然后摆放你的可视对象
0.先摆好物体,1.然后选点放相机,2.再决定拍下的图像采用那种投影方式 正常0,1,2是我们考虑问题的顺序
但在GL中,这个顺序是反的,即你要先确定2 投影方式,然后放好相机(理解gluLookAt函数),然后摆放你的可视对象
#2
投影矩阵与坐标系无关
模型视图矩阵是相对于一个隐含的世界坐标系来定位的
glTranslate3f(0,0,-10),可能看到资料这个函数可理解为相机沿Z正向移动10,也可理解为将所有物体沿Z负向移动10
建议熟悉gluLookAt函数,将View设置和模型彻底分离! 此函数就是设置相机在世界坐标系中的位置即视向
glTranslate和glRotate函数操作的就是3D可视化对象,把这些对象摆到指定的位置,比如将一个圆杯子放到方桌的桌面中心,涉及0.杯子和方桌在建模时的坐标系, 1. 将杯子移动到桌面的位姿矩阵 可能还涉及建模时的方向问题
模型视图矩阵是相对于一个隐含的世界坐标系来定位的
glTranslate3f(0,0,-10),可能看到资料这个函数可理解为相机沿Z正向移动10,也可理解为将所有物体沿Z负向移动10
建议熟悉gluLookAt函数,将View设置和模型彻底分离! 此函数就是设置相机在世界坐标系中的位置即视向
glTranslate和glRotate函数操作的就是3D可视化对象,把这些对象摆到指定的位置,比如将一个圆杯子放到方桌的桌面中心,涉及0.杯子和方桌在建模时的坐标系, 1. 将杯子移动到桌面的位姿矩阵 可能还涉及建模时的方向问题
#3
谢楼上,具体原理我还无法理清。但已经知道建模是在modelview矩阵操作后的坐标系下面的。
#1
难以解释
0.先摆好物体,1.然后选点放相机,2.再决定拍下的图像采用那种投影方式 正常0,1,2是我们考虑问题的顺序
但在GL中,这个顺序是反的,即你要先确定2 投影方式,然后放好相机(理解gluLookAt函数),然后摆放你的可视对象
0.先摆好物体,1.然后选点放相机,2.再决定拍下的图像采用那种投影方式 正常0,1,2是我们考虑问题的顺序
但在GL中,这个顺序是反的,即你要先确定2 投影方式,然后放好相机(理解gluLookAt函数),然后摆放你的可视对象
#2
投影矩阵与坐标系无关
模型视图矩阵是相对于一个隐含的世界坐标系来定位的
glTranslate3f(0,0,-10),可能看到资料这个函数可理解为相机沿Z正向移动10,也可理解为将所有物体沿Z负向移动10
建议熟悉gluLookAt函数,将View设置和模型彻底分离! 此函数就是设置相机在世界坐标系中的位置即视向
glTranslate和glRotate函数操作的就是3D可视化对象,把这些对象摆到指定的位置,比如将一个圆杯子放到方桌的桌面中心,涉及0.杯子和方桌在建模时的坐标系, 1. 将杯子移动到桌面的位姿矩阵 可能还涉及建模时的方向问题
模型视图矩阵是相对于一个隐含的世界坐标系来定位的
glTranslate3f(0,0,-10),可能看到资料这个函数可理解为相机沿Z正向移动10,也可理解为将所有物体沿Z负向移动10
建议熟悉gluLookAt函数,将View设置和模型彻底分离! 此函数就是设置相机在世界坐标系中的位置即视向
glTranslate和glRotate函数操作的就是3D可视化对象,把这些对象摆到指定的位置,比如将一个圆杯子放到方桌的桌面中心,涉及0.杯子和方桌在建模时的坐标系, 1. 将杯子移动到桌面的位姿矩阵 可能还涉及建模时的方向问题
#3
谢楼上,具体原理我还无法理清。但已经知道建模是在modelview矩阵操作后的坐标系下面的。