Как деформировать изображение для наклонной крыши?

У меня есть друг / клиент, который хочет нарисовать одну графическую фреску на крыше своего гаража / сарая, но они хотят, чтобы она отображалась в «правильной» перспективе, если смотреть, стоя на лужайке соседа.

Во-первых, какая информация мне потребуется от клиента, чтобы даже начать работать над этим (лучшие предположения = ширина крыши, высота/подъем и уклон, а также углы наклона; возможно, расстояние между навесом и видимым соседом и т. д.) и, во-вторых, как это сделать? Я использую всю эту информацию, чтобы правильно деформировать обложку?

Я ожидаю, что графика должна казаться немного неестественно перегруженной сверху, если смотреть плоско, но она будет выглядеть правильно, если смотреть под углом от вас, верно?

У меня есть Adobe Photoshop/Illustrator CC, и я баловался деформацией в обоих, но я не знаю, насколько точны мои результаты.

Честно говоря, я бы даже не пытался, если бы это не было для друга, так как это не совсем в моей рулевой рубке, но решил, что приложу все усилия... помогите? (Я тоже рад узнать больше, если у вас есть рекомендуемые ресурсы, а не личные знания / советы и рекомендации.)

Я чувствую, что появляется ссылка на Джулиана Бивера (ужасно длинная ссылка на Google Images).

Ответы (3)

Если я правильно понял задачу, сосед наблюдает за украшенной крышей гаража из своего сада. Крыша имеет довольно сильно искаженную окраску (здесь только квадрат, круг + какие-то случайные символы)

введите описание изображения здесь

Картина на крыше искажена так, что видимое изображение не кажется искаженным. Он должен видеть это так:

введите описание изображения здесь

Все фигуры и буквы текста должны выглядеть идеально ровно и иметь правильные пропорции. Искажение картины компенсирует влияние наклона угла обзора и разницы расстояний. Прямо на лице картина будет такой:

введите описание изображения здесь

Все растянуто, причем верхняя сторона растянута больше, чем нижняя. Это компенсирует большее расстояние до конька крыши.

Вначале вы должны заметить, что обычная плоская 2D-картина может быть построена точно только для одного места глаза наблюдателя. Некоторые сложные трехмерные структуры могут создать правильную иллюзию для большей области просмотра. Эта тема будет пропущена в этом ответе, мы придерживаемся 2D-изображений.

В этом случае требуется своего рода обратное преобразование перспективы:

введите описание изображения здесь

Пусть глаз наблюдателя находится в точке S. Видимое изображение должно находиться на красной плоскости. Каждая точка (P) видимого изображения должна быть представлена ​​реальной нарисованной точкой (Q) на крыше. Я думаю, у художника уже есть представление о том, что должно быть на красном самолете. Может есть готовый чертеж, только его нужно правильно растянуть и масштабировать на крышу.

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

Математика для этого была найдена в первой половине 17 века философом Декартом. Он не использовал его в практических конструкциях. Он представил его как инструмент для объективного описания мира. Каким-то образом ему удалось избежать полиции Ватикана, и мы получили аналитическую геометрию.

Декарт обнаружил, что каждую плоскость можно представить в виде множества точек (x,y,z), удовлетворяющих уравнению плоскости, имеющему вид Jx+Ky+Lz+M=0, где J...M - числа. Если мы установим начало координат x=y=z=0 наших координат xyz равным S, координаты xyz точки Q можно вычислить, умножив координаты P на то же число. Это происходит из-за того, что S, P и Q находятся на одной прямой.

Пусть P имеет координаты x=P1, y=P2 и z=P3. Мы можем найти нужный множитель v, подставив перемноженные координаты в уравнение плоскости крыши. Уравнение теперь JvP1+KvP2+LvP3+M=0. Отсюда v=-M/(JP1+KP2+LP3). После вычисления v с этим у нас есть координаты Q.

Это было просто. На практике мы должны сделать гораздо больше. Вначале нам нужны координаты xyz трех точек обеих плоскостей, чтобы определить уравнения плоскостей. Изображения на практике имеют свои внутренние координаты. В графических программах P будет иметь координаты A, B, а Q будет иметь координаты C, D. Нам нужны формулы вращения и переноса для преобразования координат изображения A и B в координаты xyz и координаты xyz на крыше в координаты изображения C и D. Преобразования координат требуют матричных вычислений, что возможно, например. с Эксель. Изображение на крыше можно было бы нарисовать, если бы у художника были достаточно хорошо подобранные и рассчитанные пары точек (A,B) <-> (C,D).

Я предполагаю, что это начинает звучать не по теме или, по крайней мере, чрезвычайно утомительно, поэтому мы не продолжаем. Любой, кто серьезно изучал инженерную математику несколько месяцев, сможет разобраться в деталях после прочтения предыдущей истории. Мы строим аппроксимацию практическим способом с почти нулевой математикой.

Начните практическую работу с измерения сторон W и H потолочной панели:

введите описание изображения здесь

В качестве числового примера примем W=486 см и H=400 см.

Чтобы запечатлеть эффект размещения точки наблюдения S, сделайте снимок. Наведите камеру на реальную точку наблюдения и снимайте в направлении середины крыши. Вы получаете что-то вроде этого:

введите описание изображения здесь

Это скриншот отрендеренного перспективного вида спереди моей 3D-модели, потому что у меня нет гаража. Если бы он у меня был, возможно, я бы не стал красить его крышу, чтобы проверить свою теорию.

У вас должен быть хороший объектив или вы должны иметь возможность компенсировать искажения объектива с помощью программного обеспечения. Прямые линии должны быть прямыми и на фото. Любая видимая кривизна портит результат. Имейте максимально возможное фокусное расстояние, чтобы получить как можно большее изображение в пикселях. Обрезка стены не повредит, важна крыша. Идеально, если смотровая площадка будет находиться посередине ширины гаража, но это не обязательно. Держите камеру прямо, чтобы получить горизонтальное изображение.

Перейти к фотошопу. Обрежьте изображение так, чтобы крыша заполнила его как можно полностью:

введите описание изображения здесь

Крыша в моем случае укладывается в 1077 х 325 пикселей. Художественное произведение в нужной видимой перспективе должно поместиться внутри крыши. 1077 x 325, вероятно, слишком низкое разрешение для уличной живописи, поэтому может быть полезно пропорционально увеличить размер фотографии, например. до 500%. Для нашего примера подойдет 1077 x 325.

Давайте поместим рисунок на новый слой. Здесь он заполняет область крыши фотографии:

введите описание изображения здесь

Полотно должно быть натянуто, чтобы иметь пропорции настоящей крыши. Ширина фотографии говорит о том, что на 486 см должно приходиться 1077 пикселей. Новая высота холста должна быть (1077/486)400 пикселей = 886 пикселей.

введите описание изображения здесь

Исходный фотослой теперь закрыт, потому что артворк заполняет область крыши.

Следующий шаг не является математически точным. Мы не знаем, как преобразования Photoshop выполняют свою работу в деталях. Вся документация только качественная. Но мы растягиваем иллюстрацию с помощью Edit > Transform > Distort, чтобы точно заполнить всю область изображения. Сделайте выделение, нажав Ctrl+щелчок по значку слоя Artwork на панели слоев перед применением Edit > Transform > Distort. Убедитесь, что ничего не обрезано, когда вы перетаскиваете верхний край и углы!

введите описание изображения здесь

В результате должна получиться желаемая картина, масштабированная по размеру изображения.

Как я уже сказал, у меня нет гаража, чтобы проверить это, но мы можем перенести результат на 3D-модель:

введите описание изображения здесь

После рендеринга модели, видимой в перспективе с исходной точки наблюдения, результат будет таким:

введите описание изображения здесь

Это не на 100% идеально, но, возможно, этого достаточно.

Сделанный.

Добро пожаловать в Stack Exchange! Вы говорите о

Анаморфная иллюзия — вам понадобится проектор.

Я полагаю, что есть несколько способов сделать это — они описаны здесь и здесь .

Советы, как это сделать, следующие:

  1. Изучите свое местоположение.
  2. Проработайте свою концепцию и иллюстрацию.
  3. Тщательно настройте проектор.
  4. Используйте проекцию, чтобы обвести контуры.
  5. Краска, шаг назад, краска.
  6. Альтернативы покраске.
  1. они хотят, чтобы он выглядел в «правильной» перспективе, если смотреть стоя на лужайке соседа → сделать несколько снимков с этого конкретного ракурса и со всех точек зрения.
  2. какая информация мне потребуется от клиента, чтобы даже начать работать над этим → концептуальные идеи о содержании изображения.
  3. ширина крыши, высота/подъем и уклон, а также углы наклона → Да для всех.
  4. Выберите изображение, которое лучше всего соответствует обзору выбранной точки зрения, и поместите его в качестве шаблона в документ Illustrator.
  5. Воспроизведите каркас крыши в верхнем слое, следуя этому шаблону и используя реальные размеры в масштабе.
  6. Нарисуйте все структурные линии в соответствии с перспективой внутри этого кадра. Этот вопрос/ответ может помочь. Эти структурные линии помогут впоследствии воспроизвести увеличенное изображение на настоящей террасе.
  7. Получив эту основу для рисования, начните разрабатывать идеи / эскизы проекта.
  8. Как только иллюстрация будет закончена, (только) если необходимо настроить ее с более реалистичными деталями, завершите ее в Photoshop.