增强现实 - 如何在ios中替换茶壶对象后渲染纹理

时间:2013-09-23 14:02:22

标签: ios opengl-es augmented-reality autocad vuforia

我是ios开发人员,在iPhone上开发AR。自定义vuforia SDK以替换茶壶对象。 到目前为止,能够用另一个3d .obj模型取代茶壶。我使用过家具模型但是如何在示例代码文件中获取该家具(.png)文件的纹理,如TextureTeapotBlue.png。     我做了很多事情:

  1. 使用3d max:render to texture属性将对象烘焙到其png纹理文件。但结果是合适的。
  2. 将.mtl文件转换为.h文件但不使用png / tga文件。
  3. 最后我找到了链接:https://developer.vuforia.com/forum/qcar-api/texture-problem-imagetargets-when-changing-model
  4. 该链接包含找到的解决方案 “我发现了问题,它太棘手了......事实上,像blender,3DSMax这样的软件,不像OpenGL ES那样使用相同的坐标系(U,V用于纹理映射)...... OpenGL ES使用一个混合器使用的镜像。所以我必须通过应用水平镜像变换来转换纹理.--- Allan“

    这里不理解“水平镜像转换”并生成它。

    给我正确的方向,在我的3d对象上正确渲染纹理图像。

1 个答案:

答案 0 :(得分:0)

我认为“水平镜像转换”只是一种说法,需要交换纹理坐标。因此,例如,如果四边形的纹理坐标是:

GLfloat TexCoords[] =
{
    0.0f, 1.0f,
    1.0f, 1.0f,
    1.0f, 0.0f,
    0.0f, 0.0f
};

然后,只需交换这样的垂直值即可镜像图像:

GLfloat MirroredTexCoords[] =
{
    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f
};