opengles在iphone中显示人脸

我需要做一个人脸2D面对3D面孔。 我用这个链接加载一个“.obj”文件并映射纹理。 这个例子只适用于立方体和金字塔。 我加载了一个人脸“.obj”文件。

这加载.obj文件,并可以正确获取人脸,如下所示。 在这里输入图像说明

但我的问题是我需要显示不同的人脸而不改变“.obj”文件。 只是通过纹理映射。

但是由于obj文件是不同的模型,纹理没有得到正确的映射。 我只是尝试更改用作纹理的“.png”文件,下面是纹理映射的结果,但不是我所期望的,如下所示。

在这里输入图像说明

以下是我的几个问题:

1)我需要加载不同的图像相同的模型(具有相同的.obj文件)的纹理。 在opengles中可能吗?

2)如果上述问题的解决scheme是“形状匹配”,那么我怎么用opengles呢?

3)最后一个基本问题,我需要大面积的显示图像,如何使显示区域更大?

mtl2opengl实际上是我的项目,所以感谢使用它!

1)如果两个纹理以完全相同的方式映射到UV顶点,则可以实现完美纹理交换而不失真的唯一方法。 看看下面的图片:

纹理与未对齐的顶点交换

  • 模特A: 金发女郎
  • 模型B: 阿什利头

正如你所看到的,纹理是适合模型的。 所以任何交换到不同的几何目标都会导致失真。 简化的人体头部/面部有两个部分:内部(骨骼/几何)和外部(肤色/纹理)。 内部方面显然定义了外观,因此,除非使用交换来更改模型的几何graphics,否则在相同的.obj文件上交换完美的纹理将不起作用。

2)这是可能的一种称为位移映射的技术,可以在OpenGL ES中实现,但预计会有多个头部/面部的困难。 这将要求你的目标.obj几何体从一个漂亮的通用模型开始,像一个人体模型,然后使用每个纹理来移动模型顶点的位置。 我认为你需要对build模,graphics,着色器和math非常舒适,才能把这一个拉开!

在这里输入图像说明

  • 通过维基百科

3)我将在下一次更新中添加更多的转换选项(比例和转换)。 Xcode项目实际上是为了展示PERL脚本,而不是作为iOS上的OpenGL ES的入门。 现在,findmodelViewMatrix并摆弄这一点点:

 GLKMatrix4Scale(_modelViewMatrix, 0.30, 0.33, 0.30); 

希望能回答你所有的问题!