我在Blender中创建了一个简单的3D模型,并将其导入到iPhone SDK的OpenGLES中。导入的模型大部分没有问题但是从包含的照片链接(photobucket)可以看出,OpenGL正在将模型拉伸超出预期的比例。圆形圆柱体是圆形的,深蹲的矩形体高,等等。我是OpenGL的新手所以请赐教:为什么OpenGL(ES)会拉伸我的3D模型以及有哪些故障排除步骤?
PICS (请自行在新窗口中打开链接)
Lego Brick Modeled in Blender
Lego Brick Modeled in Blender
Lego Brick Rendered (Stretched) in OpenGLES
Lego Brick Rendered (Stretched)in OpenGLES
Lego Brick Rendered (Stretched) in OpenGLES
答案 0 :(得分:2)
也许您在blender中的对象有一个与1不同的比例,它可能无法导出(例如,如果您只导出网格,而不是blender对象)。
在搅拌机中,您可以使用Alt S清除秤 - >在对象模式下清除缩放。
答案 1 :(得分:2)
我知道这已经过时了,但如果有人正在搜索此问题以获得正确的参考,那将会非常有用。
在OpenGL中渲染时,投影矩阵在模板中的渲染时设置为单位矩阵:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
这意味着openGL将呈现为宽高比为1:1的屏幕。要解决此问题,您可以执行以下操作:
float m[16] = {1.33,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1};
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(m);
将宽高比设置为1.33:1或3:2,对应于iPhone屏幕。