0

我是 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

该链接包含找到的解决方案
“我发现了问题,它太棘手了......事实上,像blender,3DSMax这样的软件,不使用与OpenGL ES相同的坐标系(纹理映射的U,V)。 .. OpenGL ES 使用一个搅拌机使用的镜像。所以我必须通过应用水平镜像变换来变换纹理。---Allan"

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

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

4

1 回答 1

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
};
于 2013-09-24T21:53:02.500 回答