gpt4 book ai didi

ios - opengles在iphone中显示人脸

转载 作者:可可西里 更新时间:2023-11-01 05:09:34 24 4
gpt4 key购买 nike

我需要将 2D 人脸转换为 3D 人脸。我用了this link加载“.obj”文件并映射纹理。此示例仅适用于立方体和金字塔。我加载了一个人脸“.obj”文件。

这将加载.obj 文件并可以正确获取人脸,如下所示。 enter image description here

但我的问题是我需要在不更改“.obj”文件的情况下显示不同的人脸。仅通过纹理映射。

但由于 obj 文件的模型不同,因此纹理未正确映射。我刚刚尝试更改用作纹理的“.png”文件,下面是结果,其中纹理已映射但不完全符合我的预期,如下所示。

enter image description here

以下是我的几个问题:

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

2) 如果上述问题的解决方案是“形状匹配”,我该如何使用 opengles 来实现?

3) 最后一个基本问题,我需要大面积显示图片,如何让显示区域变大?

最佳答案

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

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

Texture Swapping with misaligned vertices

如您所见,纹理是根据模型制作的。所以任何交换到不同的几何目标都会导致失真。简化后,人的头部/面部有两个组成部分:内部(骨骼/几何)和外部(皮肤/纹理)。内部方面显然定义了外部,因此在同一个 .obj 文件上完美的纹理交换将不起作用,除非您通过交换更改模型的几何形状。

2) 这可以通过称为 displacement mapping 的技术实现。可以在 OpenGL ES 中实现,尽管对于多个头/面来说有预期的困难。这将需要您的目标 .obj 几何体从一个非常通用的模型开始,例如人体模型,然后使用每个纹理来移动模型顶点的位置。我认为您需要非常熟悉建模、图形、着色器和数学才能实现这一目标!

enter image description here

3) 我将在下一次更新中添加更多变换选项(缩放和平移)。 Xcode 项目实际上是为了展示 PERL 脚本,而不是作为 iOS 上 OpenGL ES 的入门。现在,找到 modelViewMatrix 并摆弄一下:

GLKMatrix4Scale(_modelViewMatrix, 0.30, 0.33, 0.30);

希望这能回答您所有的问题!

关于ios - opengles在iphone中显示人脸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15344430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com