2

好奇是否有通用工具可用于创建包含文本(或可能其他元素)的图像,这些文本会被扭曲以显示为图像的原始部分。这些“真实”的广告牌照片可以让您将自己的图像或文字放在广告牌上就是一个例子。另一个例子是 zazzle 如何让您预览您的 T 恤设计,方法是扭曲文本或图形,使其看起来好像略微变形到织物的曲线。

我是一个 .Net 人,但有兴趣查看此类项目的任何通用解决方案,或者甚至只是指向有关该主题的其他讨论的一些指针会有所帮助。

澄清-技术描述很好,但最终我很好奇是否有工具包可以帮助自动化其中的一些,并且可能在动态环境中用于按需图像生成。

4

2 回答 2

2

做到这一点的“正确”方法是确定应该显示文本的表面的角度,以及表面的纹理(如果有的话)。然后,您在计算机中以与相机相同的角度和相对距离重新创建一个虚拟表面,然后在其上应用包含您的文本的纹理,并“凹凸映射”它以使您的文本看起来直接绘制在砖墙上或者。调整纹理的照明以匹配场景(可能使用“着色器”根据表面/凹凸贴图上每个点的角度控制光线的折射),然后只需将映射纹理与原始图像叠加。这背后的数学是整个计算机图形行业的基石,并且仍在开发新工具以更好更快地做到这一点;您可以在 System.Windows.Media 中找到工具。

这是数百万美元电影效果背后的基本过程;在没有 CG 元素的情况下拍摄真实场景(或使用可以绘制或旋转的替身),在网络空间中创建一个“虚拟场景”,然后“跟踪”虚拟摄像机在该场景中的移动以匹配真实的相机通过真实的集合。然后,您可以在该镜头中随心所欲地渲染任何内容。

做到这一点的“便宜”方法是不打扰“跟踪”(一个非常耗时的过程,尤其是在运动图片中),而只是对元素的位置、角度等进行“最佳猜测”,并简单地将您的文本绘制在它的顶部。PhotoShop 具有可以以这种方式呈现文本的工具,但是由于您在编程站点中提出这个问题,我假设您想要编写自己的解决方案。

于 2012-02-24T17:19:57.507 回答
1

对于广告牌,您想要扭曲 2D 图像使其看起来像位于标志平面上,您可以使用 4 角针技术。您给它图像的 4 个角的坐标,以及您希望这些角映射到的坐标,然后求解线性方程组以生成透视变换矩阵。它在这里描述。

至于衬衫变形,大概是一个固定输入网格的通用变形方法。从这个Google 搜索中可以看出,一般翘曲是一个非常大的话题。

于 2012-02-24T17:20:29.937 回答