我在编写程序时遇到问题。目前我正在读取OBJ文件并正确呈现它。但我的问题是,有些图像不适合我的窗口。
我尝试使用glScalef进行缩放,但图像仍然变形。 (几乎总是在Z上)
以下是我设置窗口的方式:
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
float w = gLDrawable.getWidth();
float h = gLDrawable.getHeight();
if(w > h) gl.glOrtho(-1.0*(w/h), 1.0*w/h, -1.0, 1.0, -1.0, 1.0);
else gl.glOrtho(-1.0, 1.0, -1.0*(h/w), 1.0*h/w, -1.0, 1.0);
这是我的缩放尝试
if(m.getXVertexMax() - m.getXVertexMin() > w) gl.glScalef(w/(m.getXVertexMax() - m.getXVertexMin()), 1, 1);
else gl.glScalef(1/(m.getXVertexMax() - m.getXVertexMin()), 1, 1);
if(m.getYVertexMax() - m.getYVertexMin() > h) gl.glScalef(1, h/(m.getYVertexMax() - m.getYVertexMin()), 1);
else gl.glScalef(1, 1/(m.getYVertexMax() - m.getYVertexMin()), 1);
gl.glScalef(1, 1, (1/(m.getZVertexMax() - m.getZVertexMin())));
无论我尝试什么,图像总是在x上短或在z上非常大!
有人可以帮忙吗?谢谢: - )
答案 0 :(得分:1)
您需要均匀缩放,如果缩放X轴,则将Y和Z缩放相同的量。