В предыдущей статье мы с вами рассмотрели как разработать Qt приложение, используя стандартные средства для проектирования интерфейсов QtDesigner — очень хорошее средство, если вы разрабатываете вполне обычное приложение, не требующее поддержки 3-х мерной графики и эффектов. Но иногда возникает потребность в быстрой разработке интерфейса с поддержкой 3D. К счастью в Qt Creator существует специальный инструмент для решения данной задачи — инструмент для быстрого проектирования интерфейсов Qt Quick!
Создание приложения Qt Quick
Итак, давайте начнём! Первое что нам нужно сделать, так это создать новый проект используя сочетание клавиш Ctrl + N или выбрав пункт главного меню Фаил — Создать файл или проект…
Далее выберем пункт Приложение Qt Quick
Пишу 3D Движок на Python [ Pygame + Numpy ]
Далее пройдём стандартную процедуру создания Qt проекта, как мы это делали ранее. В итоге у вас должно получиться следующее:
Здесь я назвал проект simple_tree потому как в данном проекте я покажу как отрисовать простое дерево в 3-х мерном пространстве, пользуясь уже готовой 3D-моделью и файлами текстур. Вы же можете выбрать любой другой объект — главное чтобы он был не слишком сложным. Об этом мы ещё поговорим далее.
И ещё я пользуюсь Git, чтобы поделиться с вами исходным кодом готового проекта, особенно с теми из вас, кому не терпиться сразу получить готовое решение! Вам это необязательно делать, но при желании вы тоже можете поделиться своим творением в комментариях! Скидывайте ваши имаджи и ссылки на ваши проекты на гите!
Работа над проектом
Итак, наш проект создан, в результате вы видите перед собой главное окно QtCreator:
Структура проекта выглядит проще, нежели чем в случае разработки обычного приложения, так как отсутствуют файлы для главного окна приложения, а вместо них мы имеем файл main.qml, который тоже описывает интерфейс, но делает это с помощью специального языка QML.
Qt Modeling Language
Qt Modeling Language (QML) — специальный язык разметки, предназначенный для создания пользовательского интерфейса. Из официальной документации:
QML — это спецификация пользовательского интерфейса и язык программирования. Он позволяет разработчикам и дизайнерам создавать высокопроизводительные, плавно анимированные и визуально привлекательные приложения. QML предлагает читаемый декларативный JSON-подобный синтаксис с поддержкой императивных выражений JavaScript в сочетании с динамическими привязками свойств объектов.
Иными словами QML это язык разметки пользовательского интерфейса для Qt приложения, чем-то напоминающий JSON по синтаксису. С помощью него вы можете создавать интерфейсы, добавлять анимацию и 3D-графику — в общем, делать ваши приложения живыми и красивыми!
Как создать игру с нуля | Все подробности для начинающих
Вы можете познакомиться с QML, например прочитав статью о QML на официальном сайте Qt. Для нашей работы нам потребуется всего несколько элементов данного языка, касающихся 3D-графики, но если вы хотите в действительности овладеть этим инструментом, то я советую вам подружиться с официальной документацией по языку QML — благо, что она очень хорошо и подробно написана.
Google Translate Page
Если же вас смущает обилие английского языка, то вы можете использовать плагин Google Translate Page, поставляемый с браузером Google Chrome — для перевода страницы на русский язык достаточно одного клика по кнопке в правом верхнем углу экрана:
Данный плагин доступен также и в браузере Firefox, но требует для этого специальной установки. В крайнем случае, если ваш браузер не поддерживает этот плагин, вы можете воспользоваться приложением Google Переводчик: если ввести URL-ссылку на страницу в окно переводчика, в окне перевода появиться гиперссылка на страницу с переводом. К примеру наша статья про QML будет выглядеть следующим образом:
Обратите внимание что исходный код в блоке снизу переводится так же как и обычный текст, поэтому для нормального чтения вам потребуется переключаться между языками с помощью кнопок Перевод и Оригинал в правой верхней части экрана.
Включаем поддержку Qt 3D
Итак, прежде чем мы начнём редактирование .qml файла, нам потребуется немного изменить код нашего приложения для того, чтобы включить поддержку 3D. Откройте файл main.cpp и замените его содержимое кодом указанным ниже:
int main ( int argc , char * argv [ ] )
QGuiApplication app ( argc , argv ) ;
Qt3DExtras :: Quick :: Qt3DQuickWindow view ;
view . setSource ( ( QUrl ( «qrc:/main.qml» ) ) ) ;
view . show ( ) ;
return app . exec ( ) ;
В нашем встроенном просмотрщике на сайте есть функция копирования исходного текста, так что вы можете просто кликнуть на соответствующую кнопку справа сверху от исходного текста программы (она появиться сразу при наведении курсора на область с исходным текстом).
Для того чтобы заменить исходный текст в Qt Creator, достаточно просто нажать сочетание клавиш Ctrl + A в окне редактора, чтобы выделить старый текст, а затем Ctrl + V, чтобы заменить его на новый.
После того, как это будет сделано, нам так же потребуется добавить несколько строк в файл проекта нашего приложения. Откройте файл с расширением .pro и добавьте в первую строку следующие элементы:
qml 3dcore 3drender 3dinput 3dquick 3dlogic 3dquickextras
В принципе это всё, что нам потребуется для того, чтобы могли работать с 3D-графикой в нашем проекте, за исключением самой 3D-графики!
Файлы 3D-объектов
Конечно же без самих файлов 3D-объектов мы не можем обойтись, если хотим сделать что-то более менее интересное в плане графики. Хотя мы можем использовать базовые примитивы типа плоскостей, некоторых идеальных платоновых тел, таких как сфера или куб, но это всё не очень интересно по сравнению со всем многообразием природных и технических форм, которые можно получить используя 3D-редактор и моделирование.
Да, если вы хотите отрисовать что-нибудь своё, то вам будет достаточно получить все необходимые файлы ваших 3D-моделей в формате .obj, а также отдельные файлы текстур для каждого из объектов в любом из графических форматов (JPEG, PNG, TIFF, etc). Если вы уже пользовались каким-либо 3D-редактором, то вы можете сделать это самостоятельно. Ну а тем, для кого это ещё в новинку, я покажу как это сделать легко и быстро с помощью редактора Blender.
Итак, если вы не желаете устанавливать себе 3D-редактор, то вы можете пропустить этот шаг, скачав все необходимые файлы по этой ссылке. Если же вы желаете получить этот опыт, то гоу сюды. На данном сайте вы можете скачать легковесный, многофункциональный и эргономичный open source редактор 3-х мерной графики с чудным названием Blender. Чтобы оценить всю прелесть и мощь данного инструмента, предлагаю ознакомиться с этим видео. Нам же потребуется всего пара функций от этой программы.
Создание 3D-моделей — дело не из лёгких. И скорее относится не к нашей специальности, так как мы занимаемся всё-таки программированием. Но порою так хочется от души позабавиться графическими возможностями наших кремниевых братьев! Поэтому всем, кто чувствует тоже самое, я оставляю эту ссылку на один из лучших самоучителей по Blender К сожалению, к настоящему времени этот самоучитель немного устарел, но вы можете установить себе Blender версии 2.49 из архива, чтобы лучше познакомиться с его основными функциями, а затем перейти к новой версии, воспользовавшись официальной документацией — так будет гораздо легче освоить его новые возможности.
Я же например человек ленивый — не хочу изобретать велосипед, тем более что в интернете уже существует достаточно ресурсов, на которых можно скачать 3D-модели бесплатно. Как говориться — кто со мной, тот герой!
Заходим на сайт turbosquid.com, регистрируемся (это обязательно) и ставим фильтр на blend-файлы в разделе Formats в левой верхней части экрана. Объект можете выбрать любой, какой душе угодно, главное только, чтобы его фаил не оказался более 50 МБ, по принципу чем легче — тем лучше, потому как файлы 3D-моделей по умолчанию будут интегрированы в структуру приложения. Да, Qt Quick работает именно по этому принципу, данный инструмент предназначен для создания UI, а не тяжеловесных 3D-игр и интерактивных 3D-приложений.
После того как вы выбрали нужный объект кликните на него, появиться его крупный план и кнопка Download снизу. Кликайте на неё. На следующей странице у вас будет возможность скачать нужный файл с расширением blend.
Хорошо, как только вы получили 3D-модель объекта, вы можете открыть его в Blender по двойному щелчку ЛКМ на файле.
В открытом редакторе вам будет нужно пройтись по всем элементам модели, щёлкая ЛКМ по доступным для вас участкам и нажимая на клавишу Delete, до тех пор пока у вас не будет оставаться какой-то один элемент модели, чтобы сделать её экспорт в отдельный объектный файл с расширением .obj
Убедитесь что остался только один элемент вашей 3D-модели и экспортируйте его с помощью меню File — Export — Wavefront (.obj) На выходе у вас должно получиться несколько файлов с расширением .obj по количеству элементов вашей 3D-модели. И ещё, так как мы всё-таки хотим сделать что-то цветное, нам придётся позаботиться о текстурах, которые мы можем позаимствовать на сайте textures.com
Я скачал себе набор текстур для ствола дерева и ещё одно изображение для травы. Так что добавилось ещё 6 файлов. Все файлы я поместил в созданную мной отдельную директорию data/ внутри каталога проекта приложения, а затем добавил их в файл ресурсов проекта, так что у меня получилась следующая структура:
Ах, да, чуть не забыл про файл plane.obj, вам придётся создать его самостоятельно, если вы хотите повторить тот же самый путь, что проделал и я, либо можете скачать его из репозитария на гите. И если вы забыли как создаётся файл ресурсов, то вернитесь к предыдущей моей статье и прочитайте раздел про Ресурсы Qt. Вот и всё, теперь мы смело можем приступать программированию 3D-приложения на языке QML!
Пишем 3D-приложение на языке QML
C чего начинается приложение написанное на языке QML? Первое что нужно сделать это определиться какие именно модули мы будем использовать в приложении. Это делается с помощью функции import.
Итак, откроем наш файл main.qml, в первых строках вы видите что уже используются модули QtQuick и QtQuick.Window, напротив которых указаны номер их версий. Что ж, второй модуль нам не понадобиться, так как мы не будем использовать класс QQuickWindow, зато нам понадобятся классы для работы с 3D-графикой из тех модулей, которые мы уже подключили в наш проект прописав дополнительные строки в файле .pro. В результате получится следующее:
Источник: progtips.ru
ААА-Пайплайн Стилизованных Персонажей, статья 1 из 4.
Это первая статья из цикла про создание стилизованных персонажей. Вот ссылки на все пять, выбирай ту, которая тебе нужна:
- ААА-пайплайн создания стилизованных 3D-персонажей.
- Как выглядит скульпт в ZBrush от первого лица. Полезные кисти и инструменты.
- Чек-лист по ретопологии в Maya. Особенности ретопа стилизованного персонажа.
- Как легко сделать UV-развертку 3D-модели. Чек-лист по развертке в Maya.
- Запечка стилизованного персонажа по ААА-пайплайну. Как запечь low poly модель.
Что такое ААА-пайплайн для стилизованного персонажа
Вот что означает сокращение ААА-пайплайн:
— A lot of time (много времени);
— A lot of resources (много ресурсов);
— A lot of money (много денег).
Например, бюджет Grand Theft Auto V оценивается в $265 миллионов, разрабатывали ее 3 года, а трудились над ней более 1000 человек.
Чтобы моделить круто и в огромном количестве, появился ААА-пайплайн (pipeline в переводе с английского можно перевести как «конвейер»; дословный перевод «путепровод»).
Пайплайн — это цикл разработки 3D-моделей. Процесс начинается со скульптинга и заканчивается анимацией персонажа. Знание пайплайна упрощает процесс создания модели, потому что разбивает задачу на несколько частей. Все современные игровые студии работают по пайплайну.
Пайплайн — не просто набор механических действий. Если модель потеряет художественную часть — она будет выглядеть как кусок неживой материи, которую случайно сгенерировал компьютер. Высший пилотаж моделинга — когда у нас получилось передать эмоцию через модель. Эмоции привлекают внимание, рассказывают истории, именно ради них игроки приходят в игру.
В цикле статей о пайплайне мы пошагово разберем этапы создания персонажей: от понимания концепта до сложных технических моментов. А также расскажем, как сделать персонажа живым, чтобы он вызывал эмоции у игроков.
Какие есть этапы пайплайна
Вот основные этапы пайплайна стилизованных персонажей:
- Скульпт;
- Ретопология;
- Развертка;
- Запечка;
- Текстуры;
- Риг;
- Анимация;
- Сборка в игровом движке.
Самая популярная программа для скульпта — ZBrush. Полигоны и вертексы в ZBrush такие плотные, что тянутся как цифровая глина. Из-за этого получается делать органические и плавные формы персонажа, как из пластилина.
Если ты не умеешь работать в ZBrush, то пройди наш бесплатный короткий курс Intro ZBrush. Тебе будет проще понять скульптинг, если будешь знать принцип работы в ZBrush.
Источник: www.school-xyz.com
Уроки
3D-принтер поможет напечатать деталь вне зависимости от ее сложности. 3D-печать подойдет для применения в домашних условиях. Но сам процесс и подготовка к нему могут занять некоторое время. Редуктор Для преобразования крутящего момента используется редуктор. Внешне деталь представляет собой несколько соединенных шестеренок.
Характеристики позволяет получить нужную для работы скорость на выходном узле. Встретить подобный механизм можно …
Daz Studio: позы и выражения лиц
Это программное обеспечение для 3D-графики. Много полезной информации о работе с Daz Studio можно найти на https://www.daz3d-poser.net. С его помощью легко настроить сцену, добавить новых героев, изменить прически, одежду, аксессуары, выбрать готовые позы или установить их вручную. Доступно как применение готовых анимаций, так и создание собственных. Рассмотрим подробнее как сделать позы и выражения лиц и …
Как изменить размер фото и других изображений
В некоторых ситуациях необходимо изменить размер фотографии или картинки. Зачастую обрезка изображения может понадобиться, когда нужно удалить лишние объекты, изображенные на картинке. На некоторых сайтах загружать можно фотографии определенного размера. Потому так важно уметь обрезать изображения. Сделать это можно несколькими способами: в онлайн-редакторе либо через специальную программу. Каждый выбранный способ имеет свои особенности, которые должен …
Создание анимации дыма в программе 3ds Max
Создание анимационного изображения дыма кажется сложным только на первый взгляд. С помощью программы 3ds Max это является вполне реальным. Для получения реалистичного изображения нужно аккуратно выполнять каждый шаг. В результате пользователь получит реалистичное изображение дыма без использования каких-либо дополнительных плагинов. Поэтапное создание анимации дыма в 3ds Max Основная идея при создании дым анимации состоит в …
Обзор приложений для создания 3D-фото
Сегодня, чтобы создавать объёмные изображения совсем необязательно обладать продвинутыми навыками работы в графических редакторах. На просторах интернета можно встретить ряд приложений, которые в два клика накладывают 3Д-эффект на обычные фотографии. Что такое 3D-фото 3Д-изображение позволяет создать эффект реалистичности наряду с ощущением погружённости. Ранее для вёрстки трёхмерного объекта нужна была дорогостоящая техника: камеры, объективы и другая …
Фокус камеры в 3ds max и vray
Привет друзья очередной маленький, но очень полезный урок. Многие, пользователи присылают мне вопросы на почту – как сделать ту или иную вещь в 3d max. Один из таких вопросов как сделать размытый задний план, либо же, как расфокусировать задний план. Сегодня мы научимся это делать. Я создал небольшую сцену, вы можете использовать свою или скачать …
Создание плитки в 3d max
Привет дорогие друзья. Решил перед сном написать для вас небольшой урок. Один из способов создание плитки – это выдавливание с помощью текстур, в результате можно получить вполне приемлемый результат. Но если плитка на первом плане. То здесь нужно моделировать ее вручную.
Как это делать сейчас мы рассмотрим. Для примера мы создадим 4 плиточки.Условно возьмем размер …
Создание вельвета, замши в V-Ray и Mental Ray
Следующий урок работает как для V-Ray и Mental Ray. Одним из наиболее отличительных характеристик бархата, замша это эффект двух оттенков. Для имитации этого материала, выполните следующие действия: 1. Откройте редактор материалов (М), перейдите в слот “Diffuse”. 2. В “Diffuse map” параметрах, клацните на “Bitmap” и выберите карту “Falloff”. Когда появится окно “Replace Map”, выберите “Keep …
Создание ландшафта в 3d max
Это урок по созданию ландшафта в 3ds Max. Я покажу, как создать пустынный пейзаж, но по этому методу можно создать абсолютно любой ландшафт в 3d Max. Я собираюсь использовать стандартные команды 3D-Max, чтобы создать красивый реалистичную почву даже без использования каких-либо плагинов и растровых изображений. Финальный рендер ландшафта в 3d max. Создайте плоскость 500 х …
Трава в 3d max (модификатор Hair and Fur)
Привет коллеги. С этого урока вы узнаете — как создавать траву в программе 3ds max с помощью модификатора Hair and Fur. Модификатор Hair and Fur имеет очень много настроек, их все мы разбирать не будем – я покажу простой способ создание травы. Шаг 1. Создайте поверхность Plan, на которой будет расти трава. Шаг 2. Примените …
Источник: junior3d.ru