好奇是否有通用工具用于创建包含文本(或可能是其他元素)的图像,这些图像被扭曲以显示为图像的原始部分。这些“真实”的广告牌照片可让您将自己的图像或文字放在广告牌上,就是一个例子。另一个例子是zazzle如何通过扭曲文本或图形来让您预览T恤设计,使其看起来好像它稍微变形到面料的曲线。
我是.Net的人,但我很有兴趣看到这类项目的任何一般解决方案,或者甚至只是关于该主题的其他讨论的一些指示将会有所帮助。
澄清 - 技术的匮乏是好的,但最终我很好奇是否有工具包可以帮助自动化其中的一些,并且可能潜在地用于动态环境中以进行按需图像生成。答案 0 :(得分:2)
“正确”的方法是确定应该显示文本的表面的角度,以及表面具有的纹理(如果有的话)。然后,您在计算机中以与摄像机相同的角度和相对距离重新创建虚拟曲面,然后在其上应用包含文本的纹理,并将其“凹凸贴图”以使您的文本看起来直接在砖墙上绘制或者。调整纹理的光照以匹配场景(可能使用“着色器”来控制基于曲面/凹凸贴图上每个点的角度的光的折射),然后将您的贴图纹理与原始图像叠加。这背后的数学是整个计算机图形行业的基石,并且仍在开发新工具以更好更快地完成它;您可以在System.Windows.Media.3D命名空间(或.NET的XNA Framework加载项)中找到可以帮助您的工具。
这是数百万美元电影效果背后的基本过程;拍摄没有CG元素的真实场景(或者可以绘制或旋转出来的替身),在网络空间中创建一个“虚拟场景”,然后“跟踪”虚拟摄像机在该集合中的移动以匹配移动真正的相机通过真实的设置。然后,您可以在任何地方渲染您想要的任何内容。
“便宜”的做法是不打扰“跟踪”(一个非常耗时的过程,特别是在动态图片中),而只是对关于位置,角度等进行“最佳猜测”。元素,只需在其顶部绘制文本。 PhotoShop有可以用这种方式呈现文本的工具,但是由于你在编程站点中提出这个问题,我认为你想要编写自己的解决方案。
答案 1 :(得分:1)
对于广告牌,您想要将2D图像扭曲为看起来像是在标志的平面上,您可以使用4角针技术。您可以给出图像的4个角的坐标,以及希望这些角映射到的坐标,然后求解线性方程组以生成透视变换矩阵。它描述了here。
对于衬衫变形,它可能是具有固定输入网格的一般变形方法。从Google search可以看出,一般扭曲是一个非常大的主题。