Я переехал на Artstation. Все более-менее свежие работы будут публиковаться там.
Тихое прибежище блендериста
Работы свои и чужие, заметки. Иногда возможны уроки.
суббота, 26 октября 2019 г.
среда, 19 апреля 2017 г.
Сравнение игровых движков Unreal Engine 4 и Unity 5
В этом посте я постараюсь провести как можно более подробное сравнение двух популярных игровых движков. Движки рассматриваются в базовой поставке, т. е. без плагинов и дополнений. Упор при сравнении делаю на два аспекта: особенности использования их в связке с Blender 3D и работе редакторов в среде Linux. Последняя особенность проявляется уже на этапе установки движков.
Возможность | Unity 5 | UE 4 |
---|---|---|
Установка движков | устанавливается очень просто: с официального форума качается DEB-пакет для debian-based дистрибутивов и sh-скрипт для всех остальных и устанавливается как обычный пакет (мой любимый способ -- через консоль с помощью dpkg -i). В начале соответствующей темы форума указаны зависимости, которые необходимо удовлетворить перед установкой. Начиная с версии 2017.3.0f1 Unity Technologies перестали заморачиваться на упаковку пакетов. Они создали графический установщик, в котором можно выбрать какие компоненты нужно установть (голый редактор или с поддержкой сборки под различные платформы). | для UE 4 доступны исходные коды. И их ПРИДЁТСЯ качать. На официальной wiki движка есть достаточно подробная инструкция по получению исходников и сборки из них редактора. Epic Games так до сих пор и не выкатили стандартный Epic Launcher для Linux. С этим обстоятельством связана следующая особенность... |
Доступ к магазину ресурсов | Вкладка Asset store доступна прямо в редакторе, достаточно залогиниться в свой Unity ID -- и можно качать всё что нужно. | Доступ к Marketplace осуществляется исключительно из Epic Launcher, которого нет в Linux. Для этого приходится держать венду в дуалбуте или виртуалке. Epic Games заявили о поддержке Linux в 2014 году со словами "We love Linux!" однако, создаётся ощущение, что Linux они любят как-то вяло и неискренне. |
Документация и обучающие материалы | Весьма неплохая документация, даже переведена на русский язык. | Достаточно подробная документация, встроенные "обучалки", о которых движок сообщает миганием значка. Весьма неплохо для того чтобы освоиться в движке и понять как с этим работать. |
Интерфейс | Однооконный интерфейс с возможностью открытия дополнительных вкладок и выведения вкладок в отдельные окна. Большинство настроек появляются во вкладке Inspector. В Linux иногда появляются некоторые баги отрисовки интерфейса, но вполне преодолимые. | По умолчанию тоже одно окно, но почти на каждый чих открывается новое окно специализированного редактора, которое перекрывает основное. Причём, это окно можно сделать вкладкой основного и при следующем редактировании этого ресурса окно откроется уже в виде вкладки. Однако на каждый ресурс открывается отдельное окно и при большом количестве используемых ресурсов каждый раз вкладывать окно в окно может надоесть. К счастью, в настройках есть возможность включить автоматическое открытие вложенных окон. |
Транспорт контента | Текстуры, видеофайлы и blend-файлы можно записывать/читать прямо в каталоге проекта, они будут автоматически обновляться при сохранении файлов. Blend-файлы будут читаться только при условии, что Blender установлен в системе (ассоциирован с типом файлов), поскольку редактор использует блендеровский плагин экспорта FBX. | FBX, графические файлы можно сохранять прямо в каталог проекта. Программа сама предложит импортировать контент или реимпортировать, если файл был изменён. |
Работа с материалами и текстурами, возможности шейдинга | Хотя здесь используется PBR, возможностей шейдинга немного: металлическая или диэлектрическая глянцевость и прозрачность. Подповерхностное рассеивание и прочие плюшки нужно писать в виде отдельного шейдера или пользоваться плагинами. Назначать текстуры в Блендере бесполезно, это всё равно придётся делать в движке. | Здесь также используется PBR, имеются такие возможности, как SSS и преломления для прозрачных материалов. Редактор материалов основан на нодах, что позволяет добиваться весьма эффектных результатов. Если базовые карты (diffuse, normalmap) назначить материалу в Blender (Internal) renderer, то при импорте материалов и текстур они будут присоединены в соответствующие входы шейдера в движке. |
Программирование игрового процесса | Писать скрипты придётся буквально на каждый чих. Есть стандартные ассеты с предварительно написанными скриптами. Скрипты пишутся на C#. | Для программирования можно использовать как C++, так и встроенную систему блюпринтов, поделенных на классы, позволяющие решать специализированные задачи (человекоподобные персонажи, четырёхколёсные ТС). Блюпринты состоят из параметрической (компонентной) части, характерной для для конкретного класса, и из общей алгоритмической части, реализованной в виде системы нодов, что позволяет не знать конкретного языка программирования, но требует хотя бы общего понимания программирования (понятие о переменных, типах данных, функциях и т.д.). При запуске движка можно выбрать предустановки различных типов геймплея для быстрого прототипирования (ну и поковырять на предмет как оно там устроено). |
Отличия в инструментах редактора. | Есть встроенный редактор деревьев наподобие Speed Tree. | Шикарный компонент Bezier curve, который можно использовать в качестве пути для движения частиц или построения извилистой горной дороги с возможностью подогнать рельеф местности точно под меш дороги. |
Наконец, самое главное: ГРАФОНИЙ | Весьма симпатичная графика, хорошие зеркальные отражения на плоских поверхностях (при условии грамотно расположенного захватчика отражений), при этом вполне уверенно выдаёт 40 fps в сцене с более 1,3 млн треугольников с некоторыми оптимизациями при "ночном" освещении на GTX 1055Ti | Графика постепенно улучшается от релиза к релизу, но на сцене с несколькими сотнями тысяч треугольников выдаёт 15-17 fps. |
Пост, возможно, будет постепенно дополняться.
В целом, оба движка неплохо работают в Linux, но, не смотря на то, что Unity выпустили Linux-версию позже, чем UE, Unity выглядит гораздо более готовым для производства приложений в этой среде, чем UE4. UE4 можно изучать, но для финальной сборки, к сожалению, пока что лучше использовать MS Windows.
пятница, 19 февраля 2016 г.
Черновики, WIP-ы, наброски и прочий долгострой
суббота, 13 июня 2015 г.
Губка Менгера за несколько простых шагов. Урок.
Всем привет! Не так давно в одной социальной сети новичок пытался сделать губку Менгера по уроку и обратился ко мне за помощью с каким-то затруднением. Сейчас я точно не вспомню о сути затруднения, но точно помню, что я подумал, что урок слишком запутанный и перегруженный, поэтому решил создать свой урок.
Шаг первый:
Начнём, как водится, со стандартного куба. Накладываем на него три модификатора Array (Массив). Настройки модификаторов отличаются только осями, по которым происходит смещение.У новичков может возникнуть вопрос: "А почему бы не сделать смещение по всем осям в одном модификаторе?". Отвечаю: попробуйте! Не забываем во всех модификаторах проставить галки Merge – это избавит от необходимости удалять дублирующие вершины после применения модификаторов.
Накладываем модификаторы Array. |
Шаг второй:
Применяем все три модификатора. Переходим в режим редактирования и переключаемся в режим редактирования граней. На этом шаге нам нужно удалить все ненужные грани. Во-первых, удалим квадраты из центра. Для этого перейдём в режим каркасного (Wire) затенения при помощи клавиши Z, поочерёдно переключаясь между проекциями и активируя круговую кисть выделения (С), выделяем и удаляем соответствующие полигоны. Во-вторых, если вы покрутили модельку, то могли заметить, что некоторые полигоны имеют отличающийся оттенок - тёмный, чёрный или они вовсе прозрачные. Связано это с неправильной ориентацией нормалей, а ориентируются они неправильно вот почему: на предыдущем шаге мы в модификаторе Array активировали опцию Merge, из-за чего вершины смежных стенок кубов слились как и соответствующие рёбра и полигоны. То есть из одного ребра стали расти ТРИ полигона, поэтому программа не может решить как правильно ориентировать нормали. На этом этапе избавляться от внутренних полигонов будем следующим образом: перейдём в режим редактирования вершин (или рёбер), снимем выделение (А), затем нажмём комбинацию Ctrl+Alt+Shift+M. В меню Select эта опция называется Select Non-Manifold. У этого инструмента есть ряд вариантов использования, в том числе выбор дырок в сетке. Но в данном случае выделяются все вершины, относящиеся к рёбрам, из которых растёт более двух полигонов. Нажимаем X (или Delete, кто как привык) → Faces.
Удаляем центральные полигоны. |
Удаляем внутренние полигоны. |
Данный инструмент эффективен именно на этом шаге, потому что позволяет не затрагивать полигоны, являющиеся стенками пустот.
Шаг третий и четвёртый:
По сути это повторение предыдущих шагов. Мы точно так же накладываем три модификатора Array, применяем их и удаляем внутренние полигоны. Но поскольку теперь внутри нет полигонов, являющихся стенками пустот, мы просто выделяем их рамкой (B) в каркасном режиме и удаляем.
Опять Array. |
Удаляем центральные полигоны. |
Удаляем внутренние полигоны. |
Шаги повторяем столько раз, сколько уровней фрактала хотим добиться. Вот и всё!
Нет, не всё. На самом деле есть способ ещё проще. Идём в пользовательские настройки, активируем аддон Extra Opjects, затем нажимаем Add -> Mesh -> Extra -> Menger Sponge. Вуаля!
Нет, не всё. На самом деле есть способ ещё проще. Идём в пользовательские настройки, активируем аддон Extra Opjects, затем нажимаем Add -> Mesh -> Extra -> Menger Sponge. Вуаля!
понедельник, 1 июня 2015 г.
Ответы на некоторые вопросы новичков, которые непонятно как гуглить
В этом посте я буду собирать вопросы и ответы, которые мне в социальных сетях задают новички.
1. Что значит "применить масштаб" и зачем это делать?
Как известно, масштабировать (двигать, вращать, далее - манипулировать) что-то можно как в объектном режиме, так и в режиме редактирования. Например, когда манипулируешь в объектном режиме, то в N-панели видно, что помимо размера меняется некий параметр, допустим при масштабировании, изменяется параметр Scale. Вообще, у объекта есть ТРИ параметра, описывающих его, так сказать, место под солнцем: это Scale - описывает насколько объект отличается в масштабах от своего базового размера; Rotation - насколько его локальные координаты отклоняются от глобальных; Location - насколько далеко локальный центр координат (в роли которого выступает Origin объекта) находится от центра координат мира. Так вот: некоторые модификаторы и инструменты свои числовые параметры корректируют на эти значения. Яркий пример - фаска (Bevel). Если стандартный куб растянуть по осям Х в 2 раза, Y в 0,5, то ширина фаски будет скорректирована на эти значения в соответствующих направлениях. То есть, по сути, 4 метра по Х и 1 метр по Y будут "не чистыми" 4 и 1 метрами, а 2 метра умноженные на 2 и 0,5 соответственно. Поэтому, чтобы получить равномерную фаску, нужно или применить масштаб, или масштабировать меш в режиме редактирования. Или ещё яркий пример - модификатор Mirror. Новичков этот модификатор своим поведением иногда повергает в недоумение. Но на самом деле он мягкий и пушистый, достаточно знать, что, во-первых, он работает относительно Origin объекта, во-вторых, в его локальных координатах. Поэтому, если вы в настройках модификатора ткнули галку "Отражать по оси Х", а он отражает по оси Z (глобальной), то это означает, что объект, с которого вы начали модель, вы повернули в объектном режиме по оси Y. Это как раз тот случай, когда нужно применить вращение. Ну и третий пример, касающийся того же модификатора Mirror: оси отражения совпадают, но половинки заезжают друг на друга или наоборот, находятся очень далеко. Избавиться от этого проще простого: в режиме редактирования сдвинуть меш так, чтобы Origin находился в плоскости симметрии или сдвинуть всю модель так, чтобы срез симметрии совпадал с соответствующей нулевой плоскостью мира и применить Location (в этом случае Origin встанет в начало координат мира).
Возможно, у кого-то всё ещё стоит вопрос: "Но что конкретно делает применение параметра?" Ответ: оно делает изменённые, "мнимые" значения реальными, "честными", новыми базовыми. То есть размер куба честными 4,1,2 и Scale=1 вместо 2*2,2*0.5,2. Как если бы вы масштабировали, вращали и перемещали меш в режиме редактирования. Как-то так.
2. Какова логика слоёв (в нодах постобработки, материалов)?
Я пытаюсь наложить друг на друга два изображения через нод Alpha Over, но они накладываются друг на друга наоборот. Разве тут слои накладываются не так, как в (название любимого растрового редактора)? Где логика?
Логика тут есть. И расположение слоёв "как в фотошопе" - это только половина её. В чём она заключается? В банальном бытовом понимании слоёв, как в торте. То есть ВНИЗ мы кладём ПЕРВЫЙ слой, чуть выше - второй... на самом ВЕРХУ - ПОСЛЕДНИЙ. Так вот. Ноды стоит рассматривать в качестве... таблицы. Обычной такой таблицы из строк и столбцов. А в традиционной письменности таблицы пишутся и читаются слева направо и сверху вниз. То есть, ПЕРВЫЙ пункт таблицы находится на самом её ВЕРХУ, ПОСЛЕДНИЙ - ВНИЗУ. Так что "фотошоповская" логика попросту переворачивается с ног на голову: ПЕРВЫЙ НИЖНИЙ слой становится первым пунктом таблицы и располагается СВЕРХУ, ВТОРОЙ - вторым СВЕРХУ, ну а последний, ВЕРХНИЙ СЛОЙ располагается в самом НИЗУ. Только и всего.
3. Я создал (название объекта), сделал (название действия), как мне теперь изменить количество вершин в созданном объекте?
Создать объект заново. Я не шучу. Дело в том, что в Блендере ты не создаёшь объект с параметрами по количеству вершин. Даже так: в Т-панели (меню по F6) меняются не параметры объекта. Там меняются параметры ОПЕРАЦИИ. Создавая объект, мы совершаем ОПЕРАЦИЮ ДОБАВЛЕНИЯ объекта с параметрами ОПЕРАЦИИ "количество вершин", "радиус" и т. п. Как только мы совершаем другую ОПЕРАЦИЮ, в этом меню появляются её параметры.
воскресенье, 26 января 2014 г.
Несколько видеороликов.
Как-то раз сделал видеоурок по моделированию:
А это эксперимент по трекингу камеры:
вторник, 21 января 2014 г.
Мои собственные работы, которые есть на данный момент:
Даже когда не умеешь толком текстурить, настраивать материалы и свет, первая более-менее масштабная работа кажется себе нереально крутой. |
Пытаемся прогрессировать потихоньку. |
Результат одного ночного разговора в аське. |
Как-то раз мне надоели скучные обои... |
Работа выиграла конкурс "Баннер Блендер Украина январь 2012" |
Иллюстрация на тему "Мира смерти" Гарри Гаррисона - моей любимой книги. |
Четыре работы выше были сделаны в ходе работы над проектом Planner 5D. |
LuxRender
Просто интерьерчик.
А вот так это выглядит в Iray. |
Подписаться на:
Сообщения (Atom)