Создание станции метро в 3ds max
3ds Max долгое время является лидирующим продуктом и стандартом индустрии на рынке архитектурной визуализации. За годы для него было создано множество профессиональных инструментов – от небольших скриптов, слегка упрощающих работу и автоматизирующих однотипные задачи, до сложнейших процедурных систем и проприетарных рендер-движков.
Многие такие инструменты значительно ускоряют рабочий процесс, а при наличии должного опыта обращения с ними – позволяют выжимать максимум возможностей из 3ds Max для каждой задачи, будь то масштабная анимация или набор статичных ракурсов.
В этом обзоре мы рассмотрим 5 плагинов и скриптов, добавляющих полноценный новый функционал или оптимизирующих набор однотипных действий.
1. Multiscatter
Скаттер – вид инструментов, которые позволяют быстро создавать множество копий одного или нескольких объектов на поверхности других, затрачивая при этом меньшее количество ресурсов на рендеринг (в сравнении, к примеру, с ручной расстановкой объектов в сцене).
Скаттеры значительно упрощают процесс работы по “озеленению” сцены, или наполнению ее множеством любых однотипных объектов. Для избежания визуальных повторений в кадре можно использовать настройки случайных угла поворота и размеров для каждого объекта. Дополнительный контроль над областью, в которой распределяются объекты, можно получить, используя сплайны как ограничители.
Основное преимущество плагина Multiscatter над своими аналогами – возможность работы со всеми рендер движками.
При работе с симуляцией различных жидкостей незаменим плагин RealFlow. С его помощью значительно проще можно создать водопад, фонтан или морское побережье с волнами, оставляющими за собой пену, и многое другое. При работе с плагином возможно контролировать условия симулируемой сцены: гравитацию и ветер.
RealFlow может работать как отдельное приложение, либо использоваться в качестве плагина к таким программам, как 3ds Max, Maya, Cinema 4D и Houdini.
Значительным преимуществом RealFlow является интуитивно понятный интерфейс.
Для создания анимированной растительности в 3ds Max Вам пригодится плагин GrowFX. С его помощью можно создать как различные деревья, так и цветы, траву и вьющиеся растения, огибающие поверхности объектов. Функционал плагина позволяет создавать растительные композиции, анимировать любые параметры, включая рост растений, и симуляцию порывов ветра.
Благодаря применению технологии Meta Mesh ствол и ветви объединяются в единую поверхность с плавными переходами в точках соприкосновения, что позволяет на выходе получать максимально реалистичный результат.
4. Phoenix FD
Плагин Phoenix FD также, как и Realflow, используется для работы с симуляциями, однако его специализация – взрывы, горение и дым (однако, возможность создания пены и брызг также не исключается). Phoenix FD также отлично подойдет для создания вихря или урагана, огня или эффекта плавления.
5. Floor Generator
Плагин Floor Generator служит для быстрого создания геометрии различных напольных покрытий – ламината, паркета и плитки. В плагин включены пресеты для наиболее часто встречающихся вариантов укладки: шеврон, елочка и т.д. Floor Generator незаменим для создания детализированных интерьерных визуализаций.
1. Prune Scene
Незаменимый скрипт, позволяющий сохранять порядок в сцене и свободное место на диске. При помощи Prune Scene Вы можете очистить сцену от скопившегося мусора, пустых слоев и скриптовых вирусов. Зачастую это позволяет значительно уменьшить размер и ускорить сохранение сцены.
2. Collect Asset
Еще один элемент обязательного набора – Collect Asset. Скрипт позволяет нажатием нескольких кнопок собрать все внешние текстуры и других используемые файлы (к примеру, HDRI и IES-карты, LUT-пресеты и т.д.) в одну папку. Имеется проверка на совпадение имен файлов, возможность быстрого перехода между абсолютными и относительными путями и массового удаления утерянных карт.
Сохраняет многие часы при совместной работе в коллективе.
3. Interactive Universal Renamer
Многофункциональный скрипт для переименования объектов, материалов, слоев и даже используемых внешних файлов. Удобен при работе с комплексными сценами.
4. Drag & Drop Reference Images
При помощи этого скрипта можно быстро помещать в сцену нужные изображения (как одно, так и несколько сразу): после перетаскивания во вьюпорт они будут автоматически размещены на плоскости соответствующего размера. Наиболее часто используется при работе с референсами, либо чертежами.
5. ImageCompHelper
Скрипт, в соответствии со своим названием упрощает работу по выстраиванию композиции кадра при помощи правила третей и золотого сечения.
UPD: По просьбам в комментах добавляю ссылку на вращабельную схему на Javascript
К сожалению, код javascript вставить в тело поста не удалось
Добрый день! Недавно я читал блог одного урбаниста, который рассуждал о том, какая должна быть идеальная схема метро.Схему метро можно рисовать исходя из двух принципов:
- Схема должна быть удобной и простой для запоминания и ориентирования
- Схема должна соответствовать географии города
Достаточно вспомнить, как выглядит схема Московского метро с красивыми кольцами и прямыми линиями:
и сравнить с географически точным планом:
На плане видно что кольца вовсе не являются идеально ровными и концентрическими, линии изгибаются гораздо сильнее, чем в схеме, а плотность станций в центре города настолько велика, что в плане практически невозможно разобраться.
И хотя второе изображение гораздо точнее отображает реальность, видно, что пользоваться для планирования маршрута в метро удобнее первой схемой.
И тут мне в голову пришла следующая мысль: «Как выглядело бы метро, если бы критерием для построения схемы являлось время, требуемое для перемещения от одной станции к другой?». То есть если от одной станции до другой добраться быстро, то пространственно они на схеме располагались бы недалеко.
Очевидно, что в двумерном пространстве невозможно нарисовать такую схему, в которой расстояние между двумя станциями равнялось бы времени путешествия от одной к другой из-за сложной топологии графа метро.
Также есть догадка, что такое точно возможно при построении схемы в пространстве с высокой размерностью (верхняя оценка n-1, где n- число станций). Для пространства с небольшим количеством измерений такую схему можно построить лишь приближенно.
Задача построения карты метро по времени путешествия выглядит типичной задачей оптимизации.
Пусть у нас есть начальный набор координат всех станций (X,Y,Z) и целевая матрица попарных времен (расстояний). Можно сконструировать метрику «неправильность» данного набора координат и далее минимизировать ее методом градиентного спуска по каждой из координат каждой станции. В качестве метрики можно взять простую функцию среднеквадратичного отклонения расстояний.
Что же, осталось дело за малым — нужно получить данные о том, сколько времени следует затратить на путешествие от любой станции московского метро к любой другой.
Первой мыслью было проверить api яндекс метро и вытащить оттуда эти данные. К сожалению, описания api и найти не удалось. Смотреть времена вручную в приложении долго (в метро 268 станций и размер матрицы времен 268*268=71824). Поэтому я решил разобраться в исходных данных Яндекс Метро. Так как доступа к серверу нет, был скачан apk файл с приложением и обнаружены необходимые данные. Вся информация о метро замечательно структурирована и хранится в формате JSON в папке assets/metrokit/ apk-архива приложения. Все данные хранятся в self-explanotary структурах. Meta.json содержит информацию о городах, схемы которых присутствуют в приложении, а также id данных схем.
По id схемы находим папку с JSON, относящиеся и к Москве.
Файл data.json содержит основную информацию о графе метро, включая названия узлов графа, id узлов, географические координаты узлов, информацию о переходах с одной станции на другую (id, время перехода, тип перехода — перегон или пешком, по улицу или нет, время интересующее нас в секундах) а также много дополнительной информации о входах и выходах со станции. С этим достаточно легко разобраться. Начнем писать код для построения нашей схемы.
Импортируем необходимые библиотеки:
Структура словарей и списков python полностью соответствует структуре формата json, поэтому читаем иннформацию о метро и создаем объекты, соответствующие json объектам.
Создаем словарь, ставящий в соответствие узлы графа и станции (это необходима для так как к именам привязаны именно станции, а не узлы графа)
Также на всякий случай сохраним координаты узлов для возможности построения географической карты (нормированы на диапазон 0-1)
Создадим граф метро со связями. Зададим веса каждой связи. Вес соответствует времени в пути. Удалим узлы, не являющиеся станциями (по-моему это выходы из метро а связи к ним нужны для яндекс карт при расчете времени, но точно не разбирался) создадим словарь id узла- реальное название на русском языке
Определим к какой ветке (к какому id ветки) относится каждый узел (это понадобится позже для раскрашивания линий метро на схеме)
библиотека networkx позволяет найти длину кратчайшего пути от одного узла к другому при помощи функции nx.shortest_path_length(G, id1, id2, weight='length'), поэтому можно считать что с подготовкой данных закончили. Следующее, что необходимо сделать — подготовить модель, которая будет оптимизировать координаты станций.
Для этого разберемяся, что будет даваться на вход, на выход и как будем оптимизировать матрицу координат станций.
Предположим, у нас есть матрица всех координат (3x268). Умножение one-hot вектора (вектора, где везде 0, кроме одной единичной координаты на месте n) размерности 268 на данную матрицу координат даст 3 координаты, соответствующие станции n. Если мы возьмем пару one-hot векторов и умножим их на необходимую матрицу, то получим две тройки координат. Из пары координат можно расчитать евклидово расстояние между станциями. Таким образом, можно определить архитектуру нашей модели:
на вход мы подаем пару станций, на выходе получаем расстояние между ними.
После того, как мы определились с форматом данных для обучения модели, подготовим данные с использованием поиска расстояний на графе:
Оптимизируем методом градиентного спуска матрицу координат станций.
Если мы будем использовать фреймворк keras для машинного обучения, то получим следующее:
заметим, что в качестве начальных координат в слое layer1 мы используем реальные географические координаты -это необходимо для того, чтобы не попасть в локальный минимум функции СКО. Третью координату инициализируем ненулевой для получения ненулевого градиента (если в начале карта будет абсолютно плоской, смещение любой станции вверх или вниз будет равнозначно, следовательно градиент равен 0 и оптимизации z не произойдет). Последний элемент нашей модели (Dense(1)) влияет на масштабирование схемы для соответствия временной шкале.
Расстояние будем измерять в часах, а не секундах, так как порядки расстояний — около 1 часа, а для более эффективного обучении модели важно, чтобы все величины (входные данные, веса, targetы) были примерно одного порядка по величине. Если эти значения близки к 1, то можно использовать стандартные значения шага при оптимизации (0.001-0.01).
Строка model.layers[2].trainable=False замораживает координаты станций и на первом этапе варьируется один параметр — масштаб. После подбора масштаба нашей схемы размораживаем координаты и оптимизируем уже их:
видим, что на вход подаем сразу все пары станций, на выходе — все расстояния и наша оптимизация- full batch gradient descent (один шаг на всех данных). Функция loss в данном случае — среднеквадратичное отклонение и можно видеть, что оно составило 0.015 в конце обучения, что значит среднеквадратичное отклонение менее чем в 1 минуты для любой пары станций. Иными словами, полученная схема позволяет точно узнать расстояние, которое требуется, чтобы добраться от одной станции к другой по расстоянию по прямой между станциями сточностью +-1 минута!
Но давайте посмотрим, как выглядит наша схема!
получим координаты станций, возьмем цветовую кодировку линий и построим 3d изображение с подписями (код для красивого отображения подписей взят отсюда):
Так как возникли трудности с конвертацией в интерактивный 3d формат для браузера, выкладываю гифки:
более красиво и узнаваемо выглядит версия без текста:
UPD: Добавим линии метро нужного цвета и создадим гифку. Черные линии — переходы между станциями:
Из данной схемы можно сделать некоторые интересные выводы, которые не столь очевидны из других схем. Для некоторых веток, например зеленой, синей или фиолетовой МЦК (розовое кольцо) практически бесполезно из-за неудобных пересадок, что видно в удалении кольца от этих веток. Самые длинные по времени маршруты — от коммунарки до щелкого или пятницкого шоссе (коней красной и розовая/синяя линии) длинные маршруты так же алмаатинская-рассказовка и бунинская аллея-некрасовка. На севере Москвы, судя по плану, происходит частичное дублирование серой и салатовой ветками — они находятся рядом на схеме. Было бы итересно посмотреть на то, как новые линии (МЦД, БКЛ) и кто чаще будет пользоваться ими. В любом случае, надеюсь, подобные схемы могут быть интересным инструментам анализа, вдохновения и планирования поездок.
Всем привет! Хочу поделиться с Вами своими знаниями о 3d моделировании, а конкретно о программе ЗDs max. Эта статья рассчитана на начинающих 3d-шников или на людей, которые не знают где скачать программу и что нужно знать, чтобы начать в ней работать.
Выводы
Проблемы с «Mozilla Firefox»
В процессе работы выяснилось, что «Mozilla Firefox» переоптимизированна. В то время как другие ребята исправно отображают всю графику, «Mozilla» допускает пропуск рендера элементов, если элемент не виден пользователю — закрыт div'ом сверху или просто вне области видимости монитора. Как сознательный гражданин я добавил баг, который до сих пор неподтверждён, так как удовлетворить просьбу предоставить the simplest possible testcase у меня не получается, на малом количестве элементов всё работает нормально, а ссылки на проект, видимо, не достаточно.
Если это читает представитель «Mozilla»: Ребят, работает криво независимо от платформы (windows/mac) и версии (наблюдается и в старых версиях), чесслово.
В качестве заключения
Несмотря на то, что в html5 осталась некоторая сырость, пришло время его использовать. Не нужно нагружать процессоры пользователей, добавляя на каждый второй сайт «модные» эффекты, которые ещё вчера были в рассылке для frontend-разработчиков.
Но пришло время делать удобные транспортные схемы и интерактивные продукты, доступные с любого устройства.
Я не понимаю, почему тот же «Яндекс» не переведёт Я.Метро на новую официальную схему, которая будет работать везде; пользователям мобильных устройств ребята предпочитают показывать ссылки на приложения. Магазины (приложений) полны клиентов для соц.сетей и крупных сайтов и, на мой взгляд, есть в этом что-то неправильное.
Работа над каждым проектом сопряжена с несколько идеализированными ожиданиями, действительность же отрезвляет.
Я посчитал нужным вынести сюда несколько моментов:
1. Спасибо за обратную связь и первое на моей практике пожертвование. Для авторов (меня в частности) это действитель важно.
2. В существующем независимом виде проект обновляться не будет.
Я допустил много ошибок и согласен с рядом улучшений, которые можно сделать. Их реализация заставила бы отказаться от того, над чем я работаю сейчас, а непрекращающееся развитие метро сделало бы процесс нескончаемым.
3. Я постараюсь ответить на вопросы о реализации или предоставить существующую информацию, если таковые нужны. Спрашивайте в комментариях.
3ds Max долгое время является лидирующим продуктом и стандартом индустрии на рынке архитектурной визуализации. За годы для него было создано множество профессиональных инструментов – от небольших скриптов, слегка упрощающих работу и автоматизирующих однотипные задачи, до сложнейших процедурных систем и проприетарных рендер-движков.
Многие такие инструменты значительно ускоряют рабочий процесс, а при наличии должного опыта обращения с ними – позволяют выжимать максимум возможностей из 3ds Max для каждой задачи, будь то масштабная анимация или набор статичных ракурсов.
В этом обзоре мы рассмотрим 5 плагинов и скриптов, добавляющих полноценный новый функционал или оптимизирующих набор однотипных действий.
1. Multiscatter
Скаттер – вид инструментов, которые позволяют быстро создавать множество копий одного или нескольких объектов на поверхности других, затрачивая при этом меньшее количество ресурсов на рендеринг (в сравнении, к примеру, с ручной расстановкой объектов в сцене).
Скаттеры значительно упрощают процесс работы по “озеленению” сцены, или наполнению ее множеством любых однотипных объектов. Для избежания визуальных повторений в кадре можно использовать настройки случайных угла поворота и размеров для каждого объекта. Дополнительный контроль над областью, в которой распределяются объекты, можно получить, используя сплайны как ограничители.
Основное преимущество плагина Multiscatter над своими аналогами – возможность работы со всеми рендер движками.
При работе с симуляцией различных жидкостей незаменим плагин RealFlow. С его помощью значительно проще можно создать водопад, фонтан или морское побережье с волнами, оставляющими за собой пену, и многое другое. При работе с плагином возможно контролировать условия симулируемой сцены: гравитацию и ветер.
RealFlow может работать как отдельное приложение, либо использоваться в качестве плагина к таким программам, как 3ds Max, Maya, Cinema 4D и Houdini.
Значительным преимуществом RealFlow является интуитивно понятный интерфейс.
Для создания анимированной растительности в 3ds Max Вам пригодится плагин GrowFX. С его помощью можно создать как различные деревья, так и цветы, траву и вьющиеся растения, огибающие поверхности объектов. Функционал плагина позволяет создавать растительные композиции, анимировать любые параметры, включая рост растений, и симуляцию порывов ветра.
Благодаря применению технологии Meta Mesh ствол и ветви объединяются в единую поверхность с плавными переходами в точках соприкосновения, что позволяет на выходе получать максимально реалистичный результат.
4. Phoenix FD
Плагин Phoenix FD также, как и Realflow, используется для работы с симуляциями, однако его специализация – взрывы, горение и дым (однако, возможность создания пены и брызг также не исключается). Phoenix FD также отлично подойдет для создания вихря или урагана, огня или эффекта плавления.
5. Floor Generator
Плагин Floor Generator служит для быстрого создания геометрии различных напольных покрытий – ламината, паркета и плитки. В плагин включены пресеты для наиболее часто встречающихся вариантов укладки: шеврон, елочка и т.д. Floor Generator незаменим для создания детализированных интерьерных визуализаций.
1. Prune Scene
Незаменимый скрипт, позволяющий сохранять порядок в сцене и свободное место на диске. При помощи Prune Scene Вы можете очистить сцену от скопившегося мусора, пустых слоев и скриптовых вирусов. Зачастую это позволяет значительно уменьшить размер и ускорить сохранение сцены.
2. Collect Asset
Еще один элемент обязательного набора – Collect Asset. Скрипт позволяет нажатием нескольких кнопок собрать все внешние текстуры и других используемые файлы (к примеру, HDRI и IES-карты, LUT-пресеты и т.д.) в одну папку. Имеется проверка на совпадение имен файлов, возможность быстрого перехода между абсолютными и относительными путями и массового удаления утерянных карт.
Сохраняет многие часы при совместной работе в коллективе.
3. Interactive Universal Renamer
Многофункциональный скрипт для переименования объектов, материалов, слоев и даже используемых внешних файлов. Удобен при работе с комплексными сценами.
4. Drag & Drop Reference Images
При помощи этого скрипта можно быстро помещать в сцену нужные изображения (как одно, так и несколько сразу): после перетаскивания во вьюпорт они будут автоматически размещены на плоскости соответствующего размера. Наиболее часто используется при работе с референсами, либо чертежами.
5. ImageCompHelper
Скрипт, в соответствии со своим названием упрощает работу по выстраиванию композиции кадра при помощи правила третей и правила золотого сечения.
Фильтруем
Здесь тоже нестрашно. Проверим, находится ли значение станции в выбранном диапозоне и спрячем станцию, если нет. Когда разберёмся со станциями, поймём, что делать с остальными элементами: если станция спрятана, ни название, ни переход к ней, ни отрезок ветки не должны быть отображены.
Используйте свойство visibility, так как opacity хоть и спрячет элементы, но оставит их выделяемыми и кликабельными.
Так же мы видим, что некоторые станции имеют одно название. Соответственно, прятать название нужно только когда спрятана последняя из станций, связанных с этим названием.
Остаётся настроить понравившийся вам range slider. По определенным причинам я написал свой. Ленивым адекватным людям посоветую, например, этот.
Формируем требования
- Показ станций и линий для выбранного диапазона дат
- Красота — «Студия Лебедева» разработала замечательную схему; её и возьмём за основу.
- Удобство использования.
- Для ввода значений я решил использовать ползунки (range slider). С ними мы добьёмся интерактивности и изменений «на лету».
- Я привык к функционалу картографических сервисов, позволяющих менять масштаб и двигать карту, — реализуем его; тем более что наша схема, по факту, и есть карта.
- Добавим возможность поделиться ссылкой на выборку.
Отображаем схему
Чтобы сделать схему интерактивной нам, для начала, нужна сама схема. Взглянем на то, что мы хотим получить и разберём картинку на простые элементы.
Станции
Самое главное на схеме, — станции, поэтому начнём с них. Всего 3 типа: конечные, пересадочные и обычные. 2 прямоугольника и круг. Что может быть проще? Кропотливо расставим их на полотне, а некоторые ещё и повернём.
Сохраните схему как картинку, задайте невысокую прозрачность и расположите её под нашим svg-холстом, которому задайте такие же размеры. Это упростит расстановку станций.
Чтобы с комфортом двигаться дальше, я так же добавил в свойства станций их индекс (числовой) и линию, — чуть ниже вы поймёте, для чего это сделано.
Если вы делаете нечто большее, нежели proof of concept, не пожалейте нескольких часов на написание редактора с возможностью перетаскивания станций и указания их свойств. Обслуживать вашу карту станет на порядок проще. Целесообразность прямо пропорциональна количеству станций и их свойств.
Линии
Что же такое линия? Это набор отрезков между станциями. У нас есть координаты, индексы и линии станций — а значит мы легко нарисуем отрезки. Пройдёмся по станциям и будем руководствоваться следующей логикой для каждой из них: если есть станция той же линии, но с индексом старше на единицу, то рисуем между ними сегмент.
Взгляните на схему и попробуйте ответить, какие 2 сегмента не будут нарисованы?
1. отрезок на кольцевой, соединяющий «младшую» и «старшую» по индексу станции
2. отрезок между «Выставочной» и «Киевской»
Как мы увидим, начало и конец сегмента идут не совсем так, как нам надо. Добавим для каждого из 3 типов станций смещение, высчитанное опытным путём. Так же наши сегменты заданы прямыми, но сами линии много где причудливо изогнуты. Пожалуй, это самая кропотливая часть работы над проектом, для ряда сегментов добавим исключение в поведении. Благо, синтаксис несложный.
Переходы
Svg графика использует модель слоёв, а значит чтобы получить нужный результат, каждый переход сделаем с помощью двух кривых: цветная с толстой обводкой пониже и белая с тонкой повыше. Итогое расположение элементов следующее, от нижних к верхним: линии, отрезки переходов с цветной толстой обводкой, станции, отрезки переходов с тонкой белой обводкой, подложка названия станций, название станций.
Названия станций и подложка
Отобразим названия и выровняем текст с помощью свойства text-anchor. Способа осуществить перенос строки, кроме как созданием дополнительного элемента, к сожалению, нет.
Подложку текста сделаем обычным полупрозрачным прямоугольком. Размеры и координаты текста мы получим с помощью getBBox.
Потратив некоторое время на поиски более изящного решения подложки текста, на stackoverflow вы найдёте заплюсованное предложение использовать фильтр. Я советую использовать это решение только в случае единичного отображения графики. Если предполагаются дальнейшие манипуляции с графикой, фильтр поведёт себя некорректно.
Студенческая лицензия
Может, это станет для кого-то открытием, но всю продукцию Autodesk можно установить абсолютно бесплатно с лицензией. Как это делается на примере 3d max:
1. Пройдите по ссылке и нажмите Create Account.
2. В новом окне укажите вашу страну, обязательно образовательный статус Student, дату рождения и нажмите Next.
3. Заполните поля: Имя, Фамилия, укажите электронную почту, повторите ее в поле Confirm email и придумайте пароль. Пароль должен содержать в себе как цифры, так и буквы на латинице. Поставьте галочку как на скриншоте и нажмите Create Account.
5. Вас перебросит на страницу авторизации, введите ваш E-mail и нажмите «Далее».
7. Вы увидите уведомление о том, что ваш аккаунт подтвержден. Нажмите «Done».
8. Далее вас спросят, в каком учебном заведении вы проходите обучение. Для этого в первой строчке нужно указать Knower, всплывет подсказка: Can't find your school? Нажмите на нее.
9. Вас снова перебросит в предыдущее окно, где уже будет указан учебный центр. Останется выбрать во второй строчке Other и ниже — период обучения (рекомендую ставить 4 года). Нажмите Next.
Вас перенаправит на страницу, с которой мы начали (если этого не произошло, перейдите по ссылке и авторизуйтесь).
1) Далее укажите версию 3ds max, которую хотите скачать, выберите операционную систему и язык (English). Обязательно перепишите себе Serial number и Product key — они будет необходимы для активации студенческой версии на 3 года! (они также придут вам на почту).
2) После того как скачается дистрибутив программы, запустите его (это может занять время, не торопитесь), выберите путь извлечения (рекомендуем диск С) и нажмите «ОК».
3) Дождитесь, пока установщик распакуется, во всплывающем окне нажмите Install.
4) В следующем окне поставьте галочку I Accept и нажмите Next.
5) Далее поставьте галочку Stand-Alone, введите ваш серийный номер и ключ продукта, которые сохраняли ранее (их можно найти в почте) и нажмите Next.
6) Выберите папку сохранения программы (рекомендуем диск С), нажмите Install и наблюдайте за процессом установки.
7) После установки программы запустите 3ds Max, в появившемся окне нажмите I Agree.
8) Когда он запустится, посмотрите, что написано наверху. Если Student Version, все отлично! Autodesk 3ds max активирован, и вы можете пользоваться студенческой версией целых 3 года совершенно бесплатно!
9) ВАЖНО! Если после шага 18 у вас возникла ошибка 400 и при каждом запуске выскакивает окно, в котором написано, что версия программы на 30 дней, вам необходимо активировать 3ds max вручную. Как это сделать смотрите здесь. Если такой ошибки нет, полный порядок — все активировалось автоматически!
Характеристики компьютера
Итак, я приступил к изучению 3Ds max. Первое, на что акцентировали внимание преподаватели — для быстрого рендера и стабильной работы в ней нужна серьезная машина. Конечно, первые мои проекты делались на ноутбуке с самыми минимальными требованиями на 2012 год. Но все же считаю, что любой человек, решивший встать на путь 3d-шника, должен хотя бы знать, на что нужно делать упор при покупке компьютера:
Процессор – сердце вашего компьютера. Основная нагрузка в рендере ложится именно на него. Иными словами, чем быстрее ваш процессор, тем быстрее будут рендериться сцены.
Материнская плата – необходима для объединения всех частей системного блока в единое целое. Она слабо влияет на производительность в 3d графике, однако именно от качества материнской платы зависит возможность разгона процессора, так как при этом повышается энергопотребление и нагрузка на цепи питания процессора (которые расположены как раз на материнской плате).
Оперативная память – при работе компьютера в ней хранятся данные, необходимые процессору для вычислений. При работе в 3d в ней хранятся файлы проекта – модели, текстуры, а при запуске рендера — промежуточные вычисления. Основной характеристикой памяти применительно к 3d графике является объём.
Видеокарта – необходима для вывода изображения на монитор. Все, что происходит в окнах проекций 3d программ, обрабатывает видеокарта, и от её мощности зависит комфорт работы в выбранном вами софте. Основными характеристиками, которые будут определять комфортность работы с картой (разумеется, в рамках конкретного поколения карт и одного производителя) являются количество потоковых процессоров, их частота и объём видеопамяти. Другие параметры, например, разрядность шины, в 3d графике будут иметь меньшее влияние на производительность.
Система охлаждения («кулер») – необходима для отвода тепла от процессора. Бывают жидкостные и воздушные. Воздушные системы могут быть активными и пассивными (если в системе охлаждения присутствует вентилятор, она называется активной, если вентилятор отсутствует – пассивной). Плюс пассивных систем – отсутствие шума, минус – низкая производительность. Активные системы шумят, но обеспечивают высокую производительность, эффективно охлаждая процессор даже жарким летом.
Жидкостное охлаждение бывает замкнутое и сборное. Замкнутое продаётся уже готовым к использованию и не требует (или почти не требует) обслуживания, в то время как сборное требует сборки пользователем и доливки охлаждающей жидкости.
Жесткий диск – необходим для хранения информации. В отличие от оперативной памяти способен сохранять данные и после выключения питания компьютера. Жесткие диски делятся на твердотельные и накопители на твёрдых магнитных дисках (HDD). Твердотельные накопители (они же SSD) очень быстрые, тихие, лишены таких недостатков как большое время доступа либо фрагментация, однако имеют высокую цену за 1Гб и меньшую, чем у HDD надёжность. SSD предназначены для установки на них программ (с целью повышения скорости запуска и сохранения проектных файлов) и для повышения комфортности работы (SSD не является обязательным комплектующим, на нём можно экономить при недостатке финансов на сборку ПК). HDD же предназначены для хранения больших объёмов информации. Они более медленные, чем SSD, подвержены фрагментации, однако имеют крайне низкую цену за 1Гб места и очень надёжны, так как техпроцесс их производства хорошо отлажен.
Блок питания – необходим для подачи напряжения на схемы питания компьютера. Блок питания необходимо подбирать индивидуально под каждый компьютер, учитывая количество и мощность компонентов, а также наличие разгона.
Я отлично понимаю, что у всех разные финансовые возможности, поэтому представляю лишь перечень минимальных условий, оставляя выбор за вами. Однако расстраиваться, если вы не проходите даже по минимальным требованиям, не стоит. Берите свой ноутбук или компьютер, устанавливайте ЗDs max версии 12 и ниже, пробуйте! В любом случае в первое время вы не сможете использовать все ресурсы ЗDs max…
Исправляем недочёты
С клиента на сервер
Волевым решением переносим логику на сервер и кешируем выдачу, чтобы не считать каждый раз. Теперь можно отказаться от Snap.svg на клиенте!
Самописный генератор градиентов для svg весил всего ничего и был изящен, но иногда не срабатывал: к некоторым элементам не применялся ни один из градиентов, только цвет. В то же время с другими элементами градиенты работали абсолютно нормально. Устав от «чёрной магии» я вернул библиотеку в строй. Всё же я пишу доказательство работоспособности, а не «продукт».
Нужно закрыть вопрос с масштабированием и возможностью двигать на мобильных. Подумайте, как бы вы справились с этим.
Начал с поиска библиотек (остановился на hammer.js) и даже ознакомится с документацией, но вспомнил про ТРИЗ. Генрих Альтшуллер определяет идеальный объект, как объект, которого нет, а его функция выполняется.
У нас на носимых устройствах уже есть замечательная поддержка масштабирования и сдвига. А значит… Да, я просто вырубил для телефонов и планшетов манипуляцию с viewBox-свойством.
Что принёс перенос в цифрах?
Масштабируем и двигаем
Ответственность за это возьмёт на себя свойство viewBox. Ребята из «Микрософт» написали отличную статью с примерами. Для перехвата скрола я использовал jQuery Mousewheel. Признаться, не самая тривиальная задача, так как при изменении масштаба нужно учитывать сдвиг относительно изначального положения с соответсвующим зуму коэффициентом.
Что дальше?
- А дальше вам нужно изучить интерфейс. За что отвечает каждая кнопочка, окно, значок.
- Затем — стандартные примитивы, с помощью которых в 3ds max в основном все и рисуется.
- Далее вас ждет серьезная тема — модификаторы, применяя которые можно нарисовать самые сложные объекты.
Параллельно (тем, кто пока не дружит с иностранными языками) советую изучать английский. Именно на нем снимают самые классные уроки. Правда, придется научиться различать сложные диалекты и интонации (мне было сложно понять, что говорит англоязычный индус, а в итоге данный урок оказался одним из самых полезных).
Ставьте перед собой конкретные цели! Например, мой первый урок был посвящен моделированию яблока, а второй – стола и стульев. Верьте в себя, горите идеями не сомневайтесь в своих способностях, — у вас все получится!
Хочу заметить — мы с вами живем в 21 веке. В интернете имеется масса статей, уроков и отзывов о 3ds max. Данная статья – мое сугубо личное мнение, основанное на собственном опыте. Спасибо всем, кто ее прочел (надеюсь, она помогла вам разобраться, что такое 3ds max и как приступить к ее изучению). Удачи!
Московское метро меняется. Желающий представить себе схему, скажем, 1945 года без проблем соберёт данные из открытых источников; остаётся вопрос с представлением результата, — не на круговой диаграмме же его показывать. В статье я расскажу об основных шагах в создании proof-of-concept сервиса, позволяющего показать схему метро, например, на 1 мая 74 года (слева) или станции с глубиной заложения больше 30 метров (справа).
С чего все началось
Вкратце расскажу о моем знакомстве с ЗDs max. Мне всегда хотелось творить, поэтому после окончания школы я поступил учиться на архитектора. На 3 курсе обучения мы стали проектировать здания и интерьеры, которые требовали красивой и красочной визуализации (чтобы будущий заказчик захотел приобрести данный проект). Я выбрал очень серьезную и сложную программу ЗDs max, которую изучаю до сих пор.
Конечно, решить поставленную задачу можно было и с помощью более доступных и простых программ, таких как:
ArchiCAD — программный пакет для архитекторов, основанный на технологии информационного моделирования (Building Information Modeling — BIM), созданный фирмой Graphisoft. Предназначен для проектирования архитектурно-строительных конструкций и решений, а также элементов ландшафта, мебели и так далее.
Проще говоря, когда вы чертите чертежи, эта программа автоматически выстраивает 3d модель и так же автоматически рассчитывает конструкции. Она пользуется большой популярностью у архитекторов и конструкторов.
Естественно, существует аналог ArchiCAD — Autodesk Revit.
SketchUP — программа для моделирования относительно простых трёхмерных объектов — строений, мебели, интерьера.
Но я посчитал, что выбор этих упрощенных программ будет несерьезным и непрофессиональным шагом (хотя изучить их все же пришлось – они входили в программу обучения).
С чего все началось
Вкратце расскажу о моем знакомстве с ЗDs max. Мне всегда хотелось творить, поэтому после окончания школы я поступил учиться на архитектора. На 3 курсе обучения мы стали проектировать здания и интерьеры, которые требовали красивой и красочной визуализации (чтобы будущий заказчик захотел приобрести данный проект). Я выбрал очень серьезную и сложную программу ЗDs max, которую изучаю до сих пор.
Конечно, решить поставленную задачу можно было и с помощью более доступных и простых программ, таких как:
ArchiCAD — программный пакет для архитекторов, основанный на технологии информационного моделирования (Building Information Modeling — BIM), созданный фирмой Graphisoft. Предназначен для проектирования архитектурно-строительных конструкций и решений, а также элементов ландшафта, мебели и так далее.
Проще говоря, когда вы чертите чертежи, эта программа автоматически выстраивает 3d модель и так же автоматически рассчитывает конструкции. Она пользуется большой популярностью у архитекторов и конструкторов.
Естественно, существует аналог ArchiCAD — Autodesk Revit.
SketchUP — программа для моделирования относительно простых трёхмерных объектов — строений, мебели, интерьера.
Но я посчитал, что выбор этих упрощенных программ будет несерьезным и непрофессиональным шагом (хотя изучить их все же пришлось – они входили в программу обучения).
Почти всё
Я использовал модульную архитектуру (вышло где-то полтора десятка модулей), в помощь взял Snap.svg. Данные подгружались динамично, просчитывались и, так как часть вещей была сделана с помощью promises (я использовал jquery, так что их взял оттуда же), я даже смог добавить нехитрый прогресс бар пока всё загружается.
Радость длилась, пока я не решил зайти с телефона… На весьма неглупой lumia 1020 сервис грузился дольше, чем пол минуты. Я же абсолютно забыли о цене манипуляций с dom. У нас, на секунду, больше тысячи элементов! Да и манипуляции с viewBox на мобильном устройстве не работали нормально.
Перекрашиваем
Я выбрал цвета по умолчанию для станций как цвета их линий. Но что, если мы хотим перекрасить всё по произвольному градиенту? Это не так сложно как может показаться.
Мы имеем произвольный градиент от одного цвета к другому, который для удобства берём в каналах, значение станции (например, глубину заложения 23 метра) и максимальное и минимальное возможые значения (0 для наземных станций и 80 для самой глубокой «Парк Победы»). Посчитаем процентное соотношение значения станции к разности крайних значений и полученное отношение применим к разности значений по кажому каналу. Вот он наш цвет.
Остальные элементы на странице покрасим градиентом, у нас есть координаты и цвета станций — а это всё что нужно.
3Ds max. C чего начать?
1. Папка проекта
Первое что нужно сделать, начиная работу в 3d max — создать папку проекта. Она обеспечивает простой способ хранения всех ваших файлов, организованных для конкретного проекта.
• Application Menu → Manage → Set Project Folder
• Quick Access Toolbar → (Project Folder)
Папка проекта всегда является локальной, то есть 3d max, создает свою папочку в компьютере, в которую сохраняет автобеки. Путь для этого может зависеть от используемой вами операционной системы:
Вы можете использовать Set Project Folder, чтобы указать другое место. Или установить папку проекта из диалогового окна Asset Tracking → меню Paths.
При установке папки проекта 3ds max автоматически создает серию папок внутри нее, таких как archives, autoback, downloads, export, express, import, materiallibraries, previews, scenes и т.д. При сохранении или открытии файлов из браузера это местоположение (папки проекта 3ds) используется по умолчанию. Использование последовательной структуры папок проекта среди членов команды – хорошая практика для организации работы и обмена файлами.
При установке папки проекта 3ds max может отображать предупреждение — некоторые пути к файлам больше не действительны. Если сцены, с которыми вы работаете, принадлежат выбранному проекту, можно безопасно игнорировать это предупреждение.
3ds max создает файл MXP с различными путями, которые относятся к папке проекта, и сохраняет его в папку, которую вы выбрали.
Примечание: Среди файлов, установленных вместе с 3ds max — ряд материалов библиотек, а также карт, используемых этими библиотеками. Эти файлы по умолчанию размещены в папке программы, в \ materiallibraries и \ карты подпутей соответственно. Если вы хотите использовать какой-либо из материалов библиотек в проекте, рекомендуется скопировать файлы библиотеки в папку проект\ materiallibraries. А в случае необходимости можно использовать внешнюю функцию настройки Path чтобы добавить \ карты путь вместе с их подпутями (включите Add подпутей при добавлении \ карты пути).
2. Единицы измерения
- Любую сцену в 3ds max нужно начинать с установки единиц измерения.
При этом внутренние математические операции преобразуются в соответствии с выбранными единицами измерения.
Проверьте и при необходимости включите флажок Respect System Units in Files (автоматически переключаться в системные единицы открываемого файла).
При открытии файла с другими системными единицами 3ds max выведет диалоговое окно,
в котором должен быть выбран переключатель Adopt the File’s Unit Scale? (Адаптировать под единицы открываемого файла?).
Помните, что размеры объектов сцены должны соотноситься с единицами измерения.
Если размер реальной комнаты равен 12 метрам, то и размер моделируемой комнаты должен быть 12 метров — 12000 мм, но никак не 12 дюймов или 12 миллиметров.
3. Рендеринг
Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения модели с помощью компьютерной программы.
Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоской картинки — цифрового растрового изображения — по разработанной 3D-сцене. Синонимом в данном контексте является визуализация.
Визуализация — один из наиболее важных разделов компьютерной графики, тесным образом связанный с остальными на практике. Обычно программные пакеты трёхмерного моделирования и анимации включают в себя также и функцию рендеринга.
В зависимости от цели различают пре-рендеринг (достаточно медленный процесс визуализации, применяющийся в основном при создании видео) и рендеринг в режиме реального времени (например, в компьютерных играх). Последний часто использует 3D-ускорители.
Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).
Существуют отдельные программные продукты, выполняющие рендеринг. Самые распространённые — это Corona render и V-ray.
В интернете можно встретить много споров на тему: «Что же лучше — Corona или V-ray?»
Мною проверено на практике — легче. Ее не нужно настраивать до потери пульса, как V-ray, которая при любом клике на не ту галочку перестанет рендерить вообще. Можно даже рендерить с установками, которые стоят у который у Сorona по умолчанию. Также она стабильней, чем V-ray. И есть бесплатная версия на официальном сайте для всех желающих ее попробовать. V-ray же очень дорогой, и смысла его приобретать я не вижу (особенно если вы – только начинающий).
Читайте также: