1

我在 Blender 中创建了一个简单的 3D 模型,并将其导入 iPhone SDK 的 OpenGLES。导入的模型大部分都没有问题,但正如您从包含的照片链接(photobucket)中看到的那样,OpenGL 正在将模型拉伸到超出其预期比例。圆柱体做成卵形,蹲下的矩形体做成高大等。我是 OpenGL 的新手,所以请赐教:为什么 OpenGL(ES) 会拉伸我的 3D 模型,有哪些故障排除步骤?

PICS (请自行在新窗口中打开链接)

Lego Brick 在 Blender
中建模 Lego Brick 在 Blender 中建模
Lego Brick 在 OpenGLES 中渲染(拉伸) Lego Brick
在 OpenGLES 中渲染(拉伸) Lego Brick 在 OpenGLES 中
渲染(拉伸)

4

2 回答 2

2

也许您在搅拌机中的对象具有与 1 不同的比例之一,它可能不会被导出(例如,如果您只导出网格,而不是搅拌机对象)。

在搅拌机中,您可以在对象模式下使用 Alt S -> Clear Scale 清除比例。

于 2009-07-01T08:14:43.300 回答
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 屏幕。

于 2011-01-15T11:58:30.043 回答