我正在ASP.NET中创建一个Web应用程序,如下所示: http://www.zazzle.com/cr/design/pt-mug
除了在对象周围包裹图像外,我知道如何做所有事情。 如果我只需要堆叠图像,这将是一项简单的任务 另一方面,如果它们是扁平的,但如果它是圆形物体,就像这个杯子一样 是的,这有点棘手。
我的第一个猜测是为GDI +创建某种算法 模拟对象周围的“包裹”图像(实际上它不是一个3d对象, 它只是它的截图。
我认为这将是原始方法,它会导致质量非常差, 如果我能让它发挥作用。
所以,我的第二个猜测是实现了我想要的3D渲染器 为某个对象提供图像映射,它会将该图像渲染到对象上 并实时返回渲染图像。那可能吗? 还有其他方法吗?我从哪里开始?
答案 0 :(得分:1)
如果您愿意尝试使用商业产品,我的公司会为.NET编写一个名为DotImage的光栅处理SDK。如果您尝试一下,请查看PolygonTransform
。您提供多边形作为点列表,并且类使图像变形以适合多边形内部。如果您需要示例代码,请与我们联系。
答案 1 :(得分:0)
它可能是某种OpenGL 3D渲染,但是对于这种效果,图像可以很容易地以纯2D方式变形。水平方向,它需要在从杯子侧面离开的地方挤压。每列像素需要根据哪个列垂直移动不同的量 - 使得图像的水平线变为“U”形。使用正确的参数,这样的变形可以模仿正确的3D形状。通过在正确的位置使图像变亮/变暗,可以应用照明效果。