我在看一个叫Morfo的很酷的应用程序。根据他们的产品描述-
使用Morfo快速将你朋友的脸部照片变成一个会说话、跳舞、疯狂的3D角色!一旦被捕获,你可以让你的朋友用愚蠢的声音说任何你想说的话,摇滚,化妆,炫耀一双巨大的绿色猫眼,突然增加300磅,甚至更多。
因此,如果你拍摄一张史蒂夫·乔布斯的普通2D图像,并将其提供给这个应用程序,它会将其转换为该图像的3D模型,用户可以与其进行交互。

我的问题如下:
任何指针,链接到objectiveC中的网站或库,都是非常感谢的。
更新:这个this product here演示展示了如何使用模板机制进行转换。也就是说,在输入2D图像后,需要设置面部的边界、眼睛所在的位置、嘴唇的大小和长度。然后,它会将其转换为3D模型。这部分是如何完成的?他们可能使用的是什么框架或库?
发布于 2012-03-07 18:06:04
这是一个宽泛的问题,但我可以为你指出3D渲染如何工作的正确方向,相信我,这是一个巨大的主题,背后有几十年的工作,还有很多要放在这里。不知道你在3D渲染技术上有多快,所以我会给你一个纹理的基本概念,并给你一套很好的教程。
其想法是,在3D渲染中,3D模型可以使用称为纹理贴图的2d图像进行纹理处理。你使用2D图像,并将其包裹在3d模型周围,可以是一个简单的基本体,如立方体的球体,也可以是更高级的,如经典的茶壶或人头模型等。纹理可以从任何地方拍摄,我在过去使用摄像头输入来使用摄像头流中的视频对网格进行纹理处理,我使用了摄像头中的照片,这就是如何做到这一点的。这就是如何将面渲染到3D模型中。
在iOS和大多数移动设备上,3D渲染使用硬件加速,利用OpenGLES。关于你的问题,这真的很快,这取决于你如何实现你的渲染代码。
它使用反循环中提到的映射(缩放、旋转视频中的模板)的方式允许你让纹理适合模型,并将眼睛放在渲染代码中。
因此,如果你想学习这篇文章,我建议你阅读Jeff Lamarche教程“从头开始”作为入门教程:
http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html
其次,我已经读了大约4本关于OpenGLES的书,关于一般设计和平台细节的书。我推荐这本书:
http://www.amazon.co.uk/iPhone-Programming-Developing-Graphical-Applications/dp/0596804822/ref=sr_1_1?ie=UTF8&qid=1331114559&sr=8-1
发布于 2012-01-21 16:25:13
在我看来,他们是如何做到这一点的。只是我的想法,还没有在现实生活中看到应用程序。
他们有一个人头的三维模型。当你点击2D图像上的某些点时,它们会调整3D模型中的对应点,因此它代表了特定人脸的特征,如眼睛之间的距离,嘴唇的宽度等。接下来,使用这些控制点将2D图像中的纹理应用于3D模型,因此我们得到了一个带纹理的3D人头模型。考虑到我们的感知能够从2D图像重建3D形状(例如,我们看着2D照片并仍然想象3D人),没有必要准确地重建3D形状,纹理就可以做到这一点。
发布于 2012-03-08 16:44:53
在3D图像的渲染中存在一个问题,称为UV mapping,它获取3D模型并定义一组边,这将创建一个用于为模型生成不同纹理的图像。
现在,如果你注意到Morfo,你定义了头部,眼睛,嘴巴和鼻子的边缘。有了这些信息,Morfo知道如何将其纹理放置到已定义的模型中。
在模型上加载纹理的过程并不复杂,这可以在任何支持某些技术(如OpenGL )的设备上完成
https://stackoverflow.com/questions/8951492
复制相似问题