Советы и лайфхаки

Как в 3d max сделать рельеф – Создание ландшафта в 3d max — Дизайн, 3Д и все такое…

Создание ландшафта в 3d max — Дизайн, 3Д и все такое…

Недавно мне пришлось прочитать несколько уроков на тему построения ландшафта в 3ds Max. Помню, что тогда меня удивила неспособность встроенного инструментария 3ds Max быстро и внятно создать имитацию земной тверди, всегда встречались какие-нибудь неудобства. Поэтому я решил провести ревизию основных методов моделирования рельефа и вывести наиболее удобный с точки зрения создания и дальнейшего редактирования. И, понятное дело, если надо получить точную модель реальной земной поверхности, за основу в любом случае придется брать горизонтали высот как на географической карте.

Набор сплайнов-горизонталей для построения рельефа

1. Составной объект Terrain

Поверхность Terrain: слева несглаженная, справа после Turbo Smooth

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

2. Плагин Populate:Terrain

Результат работы плагина Populate: Terrain в 3ds Max

Аналогично предыдущему способу строит рельеф на основе набора сплайнов-горизонталей, но на выходе мы получаем идеальную четырехугольную сетку, которую легко редактировать на следующих этапах. Результирующий объект представляет собой сплайн с наложенным сверху модификатором EditPoly (в стеке отображается как Populate:Terrain). Плагин предназначен для версий Autodesk 3ds Max от 2010 до 2012 (32 и 64 бит) и абсолютно бесплатен для коммерческого использования. Скачать Populate:Terrain можно с официального сайта разработчиков.

3. Модификатор Displace.

Поверхность из плоскости модификатором Displace и картой Noise

Поверхность строится на основе объекта Plane, разбитым на нужное количество сегментов, к которому применяется модификатор Displace с черно-белой текстурой на основе карты высот. Способ хорош правильной четырехугольной сеткой, плотность которой легко менять, плох же самой необходимостью рисовать текстуру где-нибудь в фотошопе.  Для получения точного рельефа придется прорисовать точную карту, рассчитав требуемый оттенок серого для каждой горизонтали.

4. Paint Deformation в Edit Poly

Поверхность получена из Plane с помощью Paint Deform

Плоскость преобразуем в полигональную сетку и рисуем нужный рельеф мышкой (кнопка Push/Pull в свитке Paint Deformation на командной панели). Cпособ идеально подходит для быстрой прорисовки почти произвольной поверхности, поскольку вы можете строить горы и впадины прямо в окне проекции . В этот же раздел можно записать и другие похожие способы создания произвольного рельефа из плоскости: модификатором Noise, Wave…

5. Модификатором Surface из сплайнов.

Пример рельефа Surface по сплайнам

Этапы работы этим способом: сплайны-горизонтали собираем в один объект-сплайн, применяем модификатор CrossSection, модификатор Surface — получаем сглаженную поверхность. Сложность этого способа заключается в необходимости добиваться одинакового количества вершин на горизонталях — абсолютно нереальное требование на сложных поверхностях.

Можно подобрать еще какие-нибудь экзотические способы, моделить нурбсами, полигонами и еще много чем, но думаю, что оптимальный результат с точки зрения скорость-качество дает плагин  Populate:Terrain. Конечная поверхность легко редактируется, замечательно сглаживается, при этом за основу можно брать готовые горизонтали с топоосновы в AutoCAD, что гарантирует точность построений.

kleontev.ru

Создаем рельеф региона в 3D MAX за 5 минут

Сегодня мы предложим вам не совсем стандартный подход по созданию рельефа целых регионов и территорий. Сам принцип пригодиться и для менее масштабных пространств. Одним словом, это один из методов создания топографии и рельефа в 3D MAX (без моделирования). А также покажем как и где можно достать бесплатно информацию по рельефу для моделирования.

1) Заходим не сайт «Глобального обозревателя данных» NASA, LP DAAC и прочих западных институтов связанных с космической съемкой.

2) Регистрируемся. Подробно останавливаться на этом пункте не будем. Знаний школьного английского для этого хватит.

3) Далее выбираем себе регион. Например Сицилию или побережье Балтийского моря Литвы. Мы лишь покажем суть этого метода. Для менее масштабных территорий нужно искать другие источники. Тут пригодилась бы Ваша помощь, если у Вас есть другие источники — напишите об этом в комментариях к этой записи.

Мы присмотрели остров Корсика

4) Выделяем заинтересовавший нас регион, например с простым прямоугольником

Выделяем регион

5) Дальше нужно лишь скачать данные по этому региону в нужном нам формате

Выбираем формат данных для скачивания

6) Скачиваем

Все готово — скачиваем

Для быстрого моделирования рельефа используем InfraWorks. Импортируем в Infraworks как растер.

Результат готов:

3d модель острова КорсикаОстров имеет сложный рельеф как видим

А вот так остров Корсика выглядит со спутника на самом деле.

Остров Корсика. Спутник NASA

Дальше просто выбираем Экспорт в FBX, если хотим работать в 3D MAX

redcastle.by

Создание кирпичной стены, ландшафта или как сделать рельефную поверхность в 3d max

Этот урок посвящен созданию кирпичной (каменной) стены или ландшафта в 3d max. Это очень простой и легкий урок для начинающих, не требующий определенных знаний по 3d max и его может освоить любой желающий. Для создания нашей реалистичной  стены выберем подходящие нам текстуры. Для примера я выбрал текстуры каменной и кирпичной стены

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

Создавать нашу рельефную поверхность будем при помощи плоскости и модификатора Displace. Для этого откроем стандартные примитивы и создадим плоскость.

Ширину и длину плоскости зададим равной 100 мм, количество сегментов с каждой стороны будет 450.

Далее откроем панель модификаторов и выберем  Displace (перед этим выделив нашу плоскость).

Затем в параметре «Image», «Bitmap» зададим нашу текстуру.

Наша текстура

Далее в параметре Strength зададим рельефность 4мм.

Как видно на картинке поверхность получилась очень колючей и не ровной, поэтому сгладим ее при помощи параметра «Blur» — равный  1,0

Полученный результат)

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

Откроем редактор материалов (кнопка М) и загрузим текстуру стены (кнопка Diffuse см. ниже).

Далее просто перетащим нашу текстуру на созданную плоскость и смотрим результат

Для создания 3d орнамента делаем все как показано выше, только вместо плоскости строится куб из Box (Standard Primitives) и на него накладывается модификатор и текстура.

Для создания ландшафта в 3d max делается все тоже самое, что описано ранее, только в качестве текстуры выбираете текстуру дыма,

а параметр Strength (в модификаторе Displase) ставим побольше, равный 30, подбираем под себя нужную высоту холмов.

В дальнейшем, если нужна будет корректировка поверхности, то нужно редактировать параметры «Map» — размеры поверхности, тип поверхности: плоская, цилиндрическая, сферическая и.т.д. Также здесь можно сделать настройки текстуры —  U Tile, V Tile, W Tile (растяжение, сжатие, наклон) В параметре Alignment — можно задать расположение относительно осей X,Y,Z и других элементов.

 

на Ваш сайт.

3dfox.ru

Как наложить дороги на рельеф в 3ds Max

В таких случаях я пользуюсь следующим методом:
1. Рельеф - Editable Poly.
2. Создаю материал. На диффузный цвет назначаю текстуру (чертеж) генплана, на котором нанесены дороги, здания и прочее. Жму кнопку Show Shaded Material In Viewport.
3. В максе создаю Plane. На него назначаю ранее созданный материал генплана. Подгоняю Plane под нужный масштаб (либо указываю конкретные его размеры, если нужно).
4. Поверх этого Plane создаю сплайн. Вернее, этим сплайном "обрисовываю" или "обвожу" все контуры дорог и пешеходных связей. Редактирую сплайн по точкам до нужного уровня приближенности к исходному чертежу.
5. Удаляю Plane с текстурой генплана.
6. Поднимаю сплайн-контур дорог так, чтобы он находился НАД Editable poly (рельеф) и не пересекался с ним.
7. Выделяю рельеф ижму кнопку Create Compound Objects - SHAPE MERGE (по нашенски - создать компонованный объект - перенять форму). Настройки обычно не трогаю (вроде), а жму кнопку Pick Shape (ткнуть форму), - и жму в свой сплайн-контур дорог.

После вышеуказанных действий обычно происходит перенос на рельеф вертикальной проекции контура дорог. Далее рельеф перегоняю снова в Editable Poly, и уже там извращаюсь с полигонами и точками (лишние удаляю вручную), и готово.

В результате мы имеем Editable Poly объект рельефа, в геометрии которого ребрами, так сказать, отображены контуры дорог.
На полигоны зелени - травку, на полигоны дороги - асфальт)
Чо-то много написал, а делать вроде быстрее гораздо🙂🙂

На представленных картинках есть некое несоответствие масштабности. И вышеописанный мной метод не ахти подойдет для данного рельефа просто ввиду того, что перепады медлу горизонталями слишком резкие. Автомобильные дороги не допускают перепадов... по крайней мере, таких. Будет смотреться ненатурально. Дороги на таком рельефе идут либо по насыпи, либо по выемке. Так что тут, вероятнее всего, я бы делал дороги отдельным Editable Poly, из которого вытягивал бы в стороны полигоны для насыпей и выемок, а рельеф пришлось бы продавить или урезать полигони для выемок. Ну, как-то так...

ru.renderstuff.com

Создание ландшафта в 3d max

Создание ландшафта в 3d max

Автор: Константин Леонтьев

Источник: http://kleontev.ru/2011/11/sozdanie-landshafta-v-3d-max/

Недавно мне пришлось прочитать несколько уроков на тему построения ландшафта в 3ds Max. Помню, что тогда меня удивила неспособность встроенного инструментария 3ds Max быстро и внятно создать имитацию земной тверди, всегда встречались какие-нибудь неудобства. Поэтому я решил провести ревизию основных методов моделирования рельефа и вывести наиболее удобный с точки зрения создания и дальнейшего редактирования. И, понятное дело, если надо получить точную модель реальной земной поверхности, за основу в любом случае придется брать горизонтали высот как на географической карте.

Набор сплайнов-горизонталей для построения рельефа

1. Составной объект Terrain

Поверхность Terrain: слева несглаженная, справа после Turbo Smooth

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

2. Плагин Populate:Terrain

Результат работы плагина Populate: Terrain в 3ds Max

Аналогично предыдущему способу строит рельеф на основе набора сплайнов-горизонталей, но на выходе мы получаем идеальную четырехугольную сетку, которую легко редактировать на следующих этапах. Результирующий объект представляет собой сплайн с наложенным сверху модификатором EditPoly (в стеке отображается как Populate:Terrain). Плагин предназначен для версий Autodesk 3ds Max от 2010 до 2012 (32 и 64 бит) и абсолютно бесплатен для коммерческого использования. Скачать Populate:Terrain можно с официального сайта разработчиков.

3. Модификатор Displace.

Поверхность из плоскости модификатором Displace и картой Noise

Поверхность строится на основе объекта Plane, разбитым на нужное количество сегментов, к которому применяется модификатор Displace с черно-белой текстурой на основе карты высот. Способ хорош правильной четырехугольной сеткой, плотность которой легко менять, плох же самой необходимостью рисовать текстуру где-нибудь в фотошопе. Для получения точного рельефа придется прорисовать точную карту, рассчитав требуемый оттенок серого для каждой горизонтали.

4. Paint Deformation в Edit Poly

Поверхность получена из Plane с помощью Paint Deform

Плоскость преобразуем в полигональную сетку и рисуем нужный рельеф мышкой (кнопка Push/Pull в свитке Paint Deformation на командной панели). Cпособ идеально подходит для быстрой прорисовки почти произвольной поверхности, поскольку вы можете строить горы и впадины прямо в окне проекции . В этот же раздел можно записать и другие похожие способы создания произвольного рельефа из плоскости: модификатором Noise, Wave…

5. Модификатором Surface из сплайнов.

Пример рельефа Surface по сплайнам

Этапы работы этим способом: сплайны-горизонтали собираем в один объект-сплайн, применяем модификатор CrossSection, модификатор Surface — получаем сглаженную поверхность. Сложность этого способа заключается в необходимости добиваться одинакового количества вершин на горизонталях — абсолютно нереальное требование на сложных поверхностях.

Можно подобрать еще какие-нибудь экзотические способы, моделить нурбсами, полигонами и еще много чем, но думаю, что оптимальный результат с точки зрения скорость-качество дает плагин Populate:Terrain. Конечная поверхность легко редактируется, замечательно сглаживается, при этом за основу можно брать готовые горизонтали с топоосновы в AutoCAD, что гарантирует точность построений.

Дата сообщения: 07.01.2012 20:45 [#] [@]

art-talk.ru

рельеф, отражение, самосвечение в 3DS MAX – видео урок TeachVideo

Карты текстуры в 3Ds MAX®


Reflection (Отражение) - при необходимости создания любых зеркальных или частично отражающих объектов применяются текстурные карты в этом канале.

Refraction (Преломление) - используется для создания эффектов, добавляющих натуральность прозрачным и полупрозрачным объектам. Возникающие при этом искажения и световые эффекты почти полностью имитируют фотореализм таких материалов, как вода и стекло.

Self-Illumination (Самосвечение) - позволяет управлять собственным свечением объекта по правилу, аналогичному картам непрозрачности.

Bump (Создание рельефа) - один из самых важных каналов, если требуется значительная деталировка неровностей рельефа объекта, но усложнение его геометрии слишком затруднено. Правило проецирования карт рельефа аналогично картам Opacity, но уровень яркости влияет уже на выпуклость/ вогнутость поверхности объекта. Необходимо все же отметить, что реальная геометрия объекта не изменяется и чем острее угол зрения, тем менее натурально выглядят все неровности, имитируемые картами текстуры канала Bump (Рельефа).

Остальные каналы имеют более редкое применение, и детально останавливаться на их особенностях мы не будем.

Все используемые карты текстуры должны проецироваться на поверхность объекта. Эта процедура в Мах называется Mapping (Проецирование Карты) и задается приложением модификатора UVW Map (UVW Карта). Для назначения объекту модификатора нужно выбрать UVW Map из общего списка панели Modify (Редактирование). В стек объекта будет добавлен новый модификатор, имеющий Gizmo (Габаритный Контейнер) темно-оранжевого цвета, отображающий тип проецирования и его габаритные размеры.
Все настройки и переключатели сосредоточены в свитке Parameters (Параметры)

www.teachvideo.ru

Микрорельеф в 3dsMax - 3ds Max - Каталог статей

Автор: Владислав Константинов

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

Есть несколько способов создать/имитировать рельеф в 3dsMax:

  1. Моделирование
  2. Bump maps
  3. Diffuse maps
  4. Normal maps
  5. Displacement

Рассмотрим их все по порядку, случаи их применения, плюсы и минусы:

1. Моделирование

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

 Рис.1

Несомненные плюсы реальной геометрии: корректный абрис объекта (Рис.1.B). и корректная тень (Рис.1.С). Создание рельефа с помощью моделирования является предпочтительным способом с точки зрения получения качественного продукта на выходе. Однако же при достаточной детализации возрастает и количество полигонов в модели, что значительно увеличивает время просчета изображения. Поэтому часто используют альтернативные способы.

2. Bump maps

Можно создать нехитрую черно-белую карту (растровую или процедурную) описывающую неровности материала – чем светлее участок карты, тем «выше» точка рельефа и наоборот. Bump-карты не изменяют геометрии вашего объекта, а лишь управляют отражением света от его поверхности, в результате чего создается иллюзия, что материал имеет неровности (Рис.2.А). Поэтому часто такой рельеф называют псевдорельефом.

 Рис.2

Разумеется, с применением карты абрис объекта не меняется (Рис.2.В) (и характер тени, конечно). Следовательно применять Bump лучше на моделях среднего плана. Поэтому же не следует иммитировать bump-картами слишком большие перепады рельефа (это лучше предоставить реальной геометрии). Сцены с картами Bump визуализируются значительно быстрее, чем с реальной геометрией.

Bump-карты могут существенно изменить внешний вид материала, а значит и сделать его интереснее. На Рис.3 все материалы созданы с использованием bump-карт.

 Рис.3

Необязательно использовать только рисованные (или фотографические) Bump-карты. Вполне неплохих результатов можно добиться комбинируя стандартные процедурные карты доступные в 3ds Max - Рис.4.

 Рис.4

3. Diffuse maps (Диффузные карты)

Взгляните на рисунок Рис.5. Между изображениями A и B почти не видно разницы. Тем не менее на рисунке Рис.5.А изображен материал только с диффузной картой (непосредственная окраска поверхности), на рисунке Рис.5.B к диффузной карте добавляется Bump-карта для формирования микрорельефа.

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

 Рис.5

Однако для криволинейных поверхностей (особенно, если они отражают) bump-карты усиливают свою роль в формировании материала. На Рис.6.В. действие bump-карты очень заметно, а значит применение ее оправдано.

 Рис.6

4. Normal maps (Карты нормалей)

В своей физике карты нормалей сходны с bump-картами. Отличие состоит в том, что карты Bump строятся на основе двух измерений (по шкале от черного до белого), а Normal во всех трех. Поэтому карты нормалей выглядят немного необычно (Рис.7).

 Рис.7 (Автор рисунка: Cory Sponseller)

Карты нормалей очень активно используются в играх, так как позволяют существенно сократить количество полигонов, почти не потеряв в детализации модели. На Рис.8.А изображена низкополигональная (!) модель (700 полигонов), на Рис.8.В карта нормалей соответственно.

 Рис.8 (Автор рисунка: Buddikaman)

Первоначальная высокополигональная модель (со всеми узорами и орнаментами) этого сундука содержала почти 2 миллиона полигонов. Понятно, что такой «тяжелый» сундук использовать в игре было бы просто невозможно.

Карты нормалей не очень требовательны к ресурсам, благодаря современным видеокартам.

5. Displacement (Смещение геометрии)

Displacement является некоторым симбиозом реальной геометрии и имитации рельефа с помощью карт. С одной стороны, мы не моделируем вручную рельеф поверхности, а используем карту. С другой стороны мы имеем на выходе реальную геометрию, а не имитацию.

Для Displacement используют черно-белые карты высот (точно такие же как и для Bump).

Displacement целесообразно использовать там, где при ручном моделировании вы потеряете очень много времени в виду сложности сетки. Задачи, которые можно решить с помощью Displacement чрезвычайно широки: горы, протекторы автомобильных шин, сложные фактуры пола и даже трава и махровое полотенце. И конечно многое другое.

 Рис.9

Благодаря реальной геометрии на выходе и корректному абрису объекта, Displacement можно использовать при любых ракурсах и на любых планах. Следует отметить, что расчет карт смещения довольно сильно нагружает процессор компьютера. Чем больше карта Displacement, тем точнее детали геометрии на выходе, но и тем больше время визуализации.

Что же выбрать? Боюсь, что дать однозначный ответ здесь невозможно. Для каждой задачи вам понадобится свой способ формирования рельефа. И возможно, что в одной сцене вы используете и bump, и displacement, и normal; что-то сделаете реальной геометрией, а какая-то модель останется довольствоваться диффузной картой.

Как использовать карты микрорельефа в 3ds Max?

Если с честным моделированием все более-менее понятно, то как поступить с картами Bump, Diffuse, Normal, Displacement? Как заставить их работать?

Почти все карты (процедурные и растровые) в 3ds Max помещаются в специальные слоты (каналы). Слоты для материалов можно найти в Map Editor (Редактор материалов – горячая клавиша M) на свитке Maps (Карты) – Рис.10.

 Рис.10

В зависимости от того, с каким типом материала мы в данный момент работаем, список карт будет меняться. На Рис.10 мы можем видеть карты для материала типа VrayMtl (материал используется с визуализатором Vray). Левый столбик свитка содержит названия карт. Самые часто используемые карты:

  • Diffuse (Диффузная – непосредственная окраска объекта, его фактура)
  • Reflect (Отражение – сила отражательной способности материала)
  • Refract (Преломление – насколько сильно материал преломляет свет)
  • Glossiness (Глянцевитость – сила размытия блика на поверхности)
  • Bump (Микрорельеф – карта неровностей поверхности)
  • Opacity (Непрозрачность – управляет прозрачностью объекта)

Правее названий карт располагается столбик с окнами-счетчиками, где можно указать силу действия карты на выбранный параметр. Большинство карт используют значения от 0 до 100, но встречаются исключения, например Bump позволяет задавать числа от -1000 до 1000. Галочка после окна-счетчика позволяет включить/исключить действие карты на материал.

Если в слоте не указана какая-либо карта, то слот содержит надпись None (Пусто). Если карта добавлена, то слот меняет свое название на имя карты – Рис.11.

 Рис.11

Добавить карту можно, щелкнув по слоту левой кнопкой мыши и в открывшемся списке выбрав требуемую, нажать ОК. Если карта выбирается растровая (Bitmap), то после необходимо указать в диалоговом окне путь к растровому файлу. Удалить карту из слота не сложнее – правая кнопка мыши по слоту, выбрать в контекстном меню команду Clear (Очистить) или Cut (Вырезать), в последнем случае карта при удалении будет помещена в буфер.

Итак по порядку.

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

С диффузной картой дело обстоит точно также как с картой Bump. Только слот следует использовать Diffuse. Это по сути самое простое текстурирование объекта – просто окрашивание его в какой-то рисунок.

Карты нормалей помещаются в слот Bump, но в списке тип карты следует выбрать Normal Bump (даже если карта у вас растровая), после в настройках самой карты Normal Bump указать непосредственно карту, отвечающую за микрорельеф – Рис.12. Получится некоторая вложенность «карта в карте».

 Рис.12

Карты Displacement нужно помещать в слот Displace. Следует учитывать, что чем большее разрешение имеет карта, тем качественнее произойдет смещение геометрии, но тем больше будет время визуализации. Иногда большие карты просто «подвешивают» компьютер. Displacement - очень затратная по расчетным ресурсам технология.

Также можно поместить карту в слот модификатора VrayDisplacementMod, предварительно назначив последний на ваш объект. Актуально, только, если вы используете визуализатор Vray.

Где найти карты?

Карты Diffuse – это фотографии, рисунки или коллажи из того и другого. Bump и Displace в большинстве случаев представляют собой обесцвеченные (использовать цветные изображения бессмысленно) и скорректированные аналоги диффузных карт. Карты нормалей можно получить с помощью плагинов также из обычных рисунков или фотографий. Но если у вас под рукой есть высокополигональная копия объекта, то имеет смысл «снять» Normal Map с high-poly модели и спроецировать на low-poly, но это тема отдельного урока.

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

3dmodels.clan.su

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *