Сегодня: Пятница, 26.04.2024, 15:00 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Работаем с VirtualDub

Визуальная среда Flowstone

Роботы и экзоскелеты

Новинки в области цифровых камер

Программы — виртуальные гитаристы
Главная » 3D-МОДЕЛИРОВАНИЕ И АНИМАЦИЯ

Что такое LightWave?

01.08.2010

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

LightWave 3D входит в пятерку лучших коммерческих программ трехмерного моделирования и анимации, причем большинству конкурентов, он как раз-таки ровесник (разработка началась в 1990 году). 

Три специфических особенности программы


  1. В принципе, эффективная работа с интерфейсом строится по старому принципу, а именно, вы должны запомнить множество "горячих" клавиш. С точки зрения пользователей, привыкших к Windows и полным управлением мышью, это не очень удобно. 
  2. В программе фактически отсутствует NURBS-моделирование, которое есть в ряде других пакетов.
  3. LightWave 3D — это не одна, а две программы, которые взаимосвязаны между собой. В одной мы моделируем, в другой — работаем с анимацией и т.п. 


Важное intro


Первые системы трехмерного моделирования не являлись тривиальными по сути, причем в их рамках мы говорим об эмуляции нашего трехмерного представления в виде математических моделей. Отдельным и, пожалуй, самым сложным блоком не только в программах трехмерного моделирования, но и, например, в компьютерных играх и т.п. идет система визуализации, то есть отображения трехмерной информации на поверхности экрана. Другими словами, превращения 3D-сцены в двухмерное изображение. Как многие понимают, это практически чистая математика, включающая большое количество матричных и векторных преобразований, но только сегодня (!) эти технологии стали более-менее доступны для понимания массового пользователя. То есть, технологиям уже можно быстро обучаться. В основном этот скачок произошел благодаря хорошей проработке рабочих интерфейсов программ, наличию библиотек из множества примитивов и стандартных операций.

Ведь раньше для того, чтобы создать модель сферы или куба с возможностями их вращения, масштабирования и смещения в пространстве требовалось писать отдельные и не простые программы. Но потом произошло то, что мы можем встретить в любом другом деле, а именно: сложные вещи перекочевали в разряд обыденных. Большинство людей не знает по каким принципам работает микроволновая печь, но пользуется этими электроприборами. То есть, в нашем случае вам не нужно каждый раз писать программу сферы (или создавать ее в программе моделирования из отдельных точек) — вы можете использовать единожды написанный программный модуль. Таким образом, в одно время стал вопрос создания неких обобщающих библиотек (или библиотеки). Изначально не хватало ни качества, ни количества. К тому же появился ряд сопутствующих задач, таких как текстурирование, освещение, проектирование сложных динамических сцен. 

Естественно, одной из первых с вопросами создания некоей общей библиотеки, содержащей множество программных модулей, столкнулась компания Silicon Graphics. Для своих рабочих станций она создала библиотеку IRIS GL. Идея оказалась очень удачной, но требовала более качественной продумки и, к тому же, стал вопрос активного наполнения, поэтому на ее базе через некоторое время была сформирован другой стандарт — Open GL. Open GL (Open Graphic Library, открытая графическая библиотека) может пополняться за счет разработок от различных производителей при условии соответствия стандартам и прохождения определенных тестов. Идея пришлась по вкусу очень многим, ведь трехмерная графика уже широко распространилась на многие сферы человеческой деятельности: от промышленности и архитектуры до производства мультимедийной продукции. На сегодня Open GL — это целая кладезь, включающая как базовые компоненты, так и множество дополнительных библиотек.

Даже можно сказать больше, любой опытный программист, работающий с Open GL либо даже DirectX в рамках кода, может без труда написать программу создания/моделирования трехмерной графики и анимации, а также их визуализации. Именно поэтому программ в этом сегменте стало так много, и основной вопрос сегодня уперся в варианты реализации пользовательского интерфейса, то есть, нужно найти те ключевые моменты, за счет которых программа может найти свое распространение в массах. Кстати, во многом и поэтому некоторые ключевые программы-старожилы рынка начали полностью менять свою политику, преобразовав софт в «интуитивно-понятный».  

LightWave 3D не совсем к ним относится, но программа интересна тем, что представляет собой OpenGL, завернутый в оболочку рабочего графического интерфейса.

Тут просто необходимо ясно понять, что LightWave 3D — это и есть практически «чистый» OpenGL. Дело в том, что множество программ могут использовать гибридные движки визуализации, в том числе и со специальными встроенными новыми алгоритмами, например, по тому же расчету освещения и теней, различные библиотеки примитивов и тому подобное.  


Modeler и Layout


Сам пакет LightWave 3D состоит из двух ключевых программных модулей Modeler и Layout, которые и запускаются как отдельные программы. В рамках Modeler мы создаем/моделируем трехмерные или даже двухмерные объекты, а в Layout работаем со сценами и анимацией. Есть и еще один фоновый компонент это рабочей системы, именуемый Hub, который предназначен для обмена информацией между Modeler и Layout. При запуске программ вы его можете увидеть в окошке трея. 

То есть, создав какую-либо модель, вы без всяких препятствий перекидываете ее в Layout. Точно также сейчас устроено множество других программных взаимосвязанных систем (в некоторых случаях как, например в Maxon Cinema4D, предусмотрены варианты интерфейсов-трансформеров с переключением режимов моделирование/анимация), хотя у молодого поколения софта есть одна, на мой взгляд, ключевая ошибка, потому как моделирование объектов и создание сцен там происходит в одних и тех же окнах. Это очень громоздко по сути, особенно если мы говорим о создании чего-то сложного с большим количеством объектов. 

Но разбиение в LightWave на две части в виде отдельных приложений можно считать и недостатком: созданные в Modeler'е 3D-объекты вы экспортируете в Layout и там уже не можете их поправить. Приходится весь путь повторять наново. 

Итак, смотрим иллюстрации. Моделирование происходит в Modeler:




Ключевая работа со сценами, анимацией, частицами, камерами и светом производится в Layout.


Основные примитивы


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

Поэтому, чтобы не было разночтений, обычно все называют примитивами, и в рамках LightWave 3D мы имеем пять видов, которые обозначаются по количеству объединенных точек:
  • One-point (точка). 
  • Two-point (отрезок). 
  • Three-point (треугольник).
  • Four-point (четырехугольник). 
  • N-gon (N-угольник).
Такое разбиение сделано не спроста. Как уже было сказано ранее, с позиции программиста главной единицей информации является одна точка, то есть вершина. При работе с OpenGL он может соединять их линиями по своему усмотрению, то есть создавать отрезки, объединять в многоугольные фигуры. Многие привыкли к тому, что полигонами называются именно многоугольники, а такие примитивы как точка и отрезок в их качестве не рассматривается. Хотя это очень условно. Например, использование точек как таковых распространено в рамках создания множества мелких элементов, например, искр. Отрезки могут участвовать в создании изображений в качестве линий. 

Причем тут стоит отметить очень важную деталь. OpenGL — это наиболее подходящая библиотека для программ 3D-проектирования, она очень многое позволяет делать. Как противоположный пример можно привести Direct3D (часть DirectX), в рамках которой предусмотрено только три типа примитивов: точка, отрезок и треугольник, и это уже удобно с точки зрения программирования, потому как любой N-угольник успешно разбивается на треугольники и так далее. Direct3D оптимизирован большей частью для работы с аппаратной частью и графическими ускорителями, что позволяет реализовать огромную скорость расчетов в реальном времени, в то время как OpenGL подразумевает только программные вычисления. Да и удобно ли, например, в программе трехмерного моделирования представлять куб как совокупность треугольников? Скорее всего, для пользователя — нет.      

Поэтому в LightWave 3D мы имеем ничто иное как отображение того, что было изначально заложено в OpenGL.

Кстати, у OpenGL есть еще один весомый плюс — независимость от платформы и ОС. 


Организация интерфейса LightWave 3D


Весь командный блок программы выполнен в виде реконфигурируемых закладок, которые расположены сверху по горизонтали, и соответствующих им функциональных кнопок (слева по вертикали). Многих может отпугнуть отсутствие главного меню, но на самом деле оно и не так уж и нужно. Если говорить прямо, то для сравнения, в той же 3ds MAX все панели повторяют пункты главного меню плюс предусмотрена система горячих клавиш. Получается тройное повторение. Нужно ли оно для практической работы? На самом деле, когда все хорошо изучено, то нет. Причем опять же возвращаясь к 3ds MAX, можно сказать, что эта путаница там негативно отобразилась на русификации. То есть, одни и те же элементы и команды в главном меню и в панелях управления переведены по-разному. Если задуматься о причинах возникновения таковой ошибки, становится очевидным — пользователь психологически привык разделять главное меню от всего остального. 

У LightWave 3D оно фактически отсутствует, и это скорее, плюс, чем минус. Единственный недостаток — это возможные сложности в освоении на самом начальном уровне, если до этого вы привыкли к так называемой "классике". 

В принципе, рабочий интерфейс очень прост. На первом этапе вы можете взять из меню Primitives (закладка Create) простейшие объемные и двумерные фигуры. Потом, чтобы понять суть полигонального представления имеет смысл порисовать точками. Следующим этапом идет использование модификаторов, далее закраска и текстурирование. Ну, и напоследок будет создание сложных сцен и анимации в рамках Layout. 


Вместо завершения


К структуре пользовательского интерфейса (GUI), предложенной в рамках программы, очень быстро привыкаешь — она проста. Что интересно, несколько лет назад LightWave 3D позиционировалась как «легкая в освоении» по сравнению с тем же 3ds MAX. Сейчас это не совсем верно, поскольку разработчики последнего уделили огромное внимание облегчению GUI в своем ПО, а с LightWave лучше работать по "горячим" клавишам. 

У обеих оболочек, LightWave и 3ds MAX, есть много схожих черт, при этом стоит обратить внимание на главное — обе являются открытыми архитектурами. 3ds MAX выиграл в этом за счет того, что основная масса его элементов ныне — это бывшие плагины, которые ранее подключались отдельно, а LightWave 3D имеет весь арсенал, который предоставляют обновления OpenGL. В обоих случаях имеются собственные языки сценариев, возможность подключения плагинов от сторонних разработчиков, система моделирования доведена до идеала, инструментарий заслуживает всяких похвал. И, как вы понимаете, LightWave 3D ничем не уступает и просто входит в тройку-пятерку лучших. 

Отдельно стоит сказать о визуальных эффектах — основной конек программы, за счет чего она очень часто используется в кино. 

Кристофер

Перепечатка материалов или их фрагментов возможна только с согласия автора.

Cм. также:

Анимация в LightWave — скелеты

Анимация в LightWave — частицы и множества, взаимодействия форм

 





Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz