OpenGL画点,为什么点的坐标值超出[-1,1]范围就显示不了???

问题一:OpenGL画点,为什么点的坐标值超出[-1,1]范围就显示不了?
问题二:我的obj文件中的顶点坐标都超出了这个范围,有100多的,怎么导入?
问题三:我的obj文件中的Face(面)有些是3个顶点的,有些是4个顶点的,请问
应该用TRIANGLES还是POLYGON??
多谢大侠们指教

3个回答

OpenGL工作在一个叫做NDC(Normalized Device Coordinates)的坐标系统下,在这个坐标系统中,x、y和z的值全部都坐落在[-1, +1]范围内,超出这个范围的点会被OpenGL忽略。因为我们直接使用OpenGL的NDC坐标系统,所以顶点坐标的值在-1到+1之间。

tuomasiyyq
tuomasiyyq http://ask.csdn.net/questions/260222
大约 4 年之前 回复
tuomasiyyq
tuomasiyyq 那我应该怎样解决这个问题呢,下面提到了设置视景体,这样可以吗?如果可以的话,我视景体的x,y,z三个坐标值都要大于我点的x,y,z的最大值吗?
大约 4 年之前 回复

设置投影模式,这样坐标就可以是超过-1到1了。Opengl的坐标是可以无限大的,通过设定视场大小来确定显示的范围,只有在视场范围内的坐标才能被看见,在视场之外的看不到。视场是可以用函数设定的。具体你要看看投影模式怎么回事。我很久没弄opengl了,具体也不太了解。

tuomasiyyq
tuomasiyyq http://ask.csdn.net/questions/260222
大约 4 年之前 回复
tuomasiyyq
tuomasiyyq 谢谢你,就是要设置视景体,但是我画了一个点,它不在视景体内,怎么也能显示呢?求解答,代码如下:
大约 4 年之前 回复

polygon是多边形的意思,顶点要多于三点,三个顶点是画不出来的。triangles是画多个三角形,根据点的顺序,每三个点画一个三角形,四个点画两个三角形。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问