Техника рендеринга изображений - для добавления реалистичного текста к существующим фотографиям - PullRequest
2 голосов
/ 24 февраля 2012

Интересно, есть ли общие инструменты для создания изображений, которые содержат текст (или, возможно, другие элементы), которые искажаются, чтобы отображаться как оригинальная часть изображения. Эти «настоящие» фотографии с рекламных щитов, позволяющие вам разместить на доске собственное изображение или текст, являются одним из примеров. Другим примером является то, как zazzle позволяет предварительно просматривать дизайн футболки, искажая текст или графику, чтобы они выглядели так, как будто они слегка деформируются в кривые ткани.

Я парень .Net, но мне интересно узнать какие-либо общие решения для такого рода проектов или даже просто некоторые ссылки на другие обсуждения по этой теме.

Разъяснение - описание методов - это хорошо, но в конечном итоге мне любопытно, есть ли там наборы инструментов, которые помогают автоматизировать некоторые из них и которые могут потенциально использоваться в динамической среде для генерации изображений по требованию.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

«Правильный» способ сделать это состоит в том, чтобы определить угол поверхности, на которой должен отображаться текст, и какую, если таковая имеется, текстуру поверхности имеет. Затем вы воссоздаете виртуальную поверхность в компьютере под тем же углом и относительным расстоянием до камеры, затем накладываете на нее текстуру, содержащую ваш текст, и «наносите на карту» ее, чтобы текст казался нарисованным прямо на кирпичной стене. или. Отрегулируйте освещение текстуры в соответствии со сценой (возможно, используя «шейдер» для управления преломлением света в зависимости от угла каждой точки на поверхности / рельефной карте), затем просто наложите наложенную текстуру на исходное изображение. Математика, лежащая в основе этого, является краеугольным камнем всей индустрии компьютерной графики, и все еще разрабатываются новые инструменты, чтобы сделать это лучше и быстрее; вы можете найти инструменты в пространстве имен System.Windows.Media.3D (или надстройке XNA Framework для .NET), которые помогут вам в этом.

Это основной процесс, который стоит за эффектами кино за несколько миллионов долларов; снимать реальную сцену без элементов компьютерной графики (или с элементами ожидания, которые можно раскрашивать или ротоскопировать), создавать «виртуальный набор» в киберпространстве, а затем «отслеживать» движения виртуальной камеры, перемещающейся через этот набор, в соответствии с реальная камера через реальный набор. Затем вы можете рендерить все, что хотите в этом кадре, где угодно.

«Дешевый» способ сделать это - не беспокоиться о «отслеживании» (очень трудоемкий процесс, особенно в движущемся изображении), а вместо этого просто «сделать правильное предположение» о местоположении, угле и т. Д. элементы, и просто нарисуйте свой текст поверх него. В PhotoShop есть инструменты, которые могут отображать текст таким способом, но, поскольку вы задаете этот вопрос на сайте программирования, я бы предположил, что вы хотите написать собственное решение.

1 голос
/ 24 февраля 2012

Для вывески, где вы хотите исказить 2D-изображение, чтобы оно выглядело так, как будто оно лежит на плоскости знака, вы можете использовать технику 4-угольного штифта.Вы даете ему координаты 4 углов вашего изображения и координаты, которые вы хотите, чтобы эти углы отображали, затем решаете систему линейных уравнений для получения матрицы преобразования перспективы.Здесь описано .

Что касается искажения рубашки, то, вероятно, это общий метод деформации с фиксированной входной сеткой.Общая деформация - очень большая тема, как вы можете видеть из этого поиска Google .

...