ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: peerAt
7. июня 2011 03:11

Оригинал статьи здесь.

А это автор - Jere.

Ogre 3D – это кросс-платформенное SDK для создания графических приложений. Она имеет довольно обширные возможности, такие как полная поддержка OpenGL и Direct3D, полная совместимость с платформами Windows, Linux, Mac OS X и iOS, поддержка широкого выбора файловых форматов, продвинутая система частиц, программирования GPU и всех шейдерных языков высокого уровня и многое другое. Если стало интересно, то прошу под кат.

Вы спросите, почему именно Ogre 3D? Я не буду утверждать, что это самая лучшая фришная библиотека для работы с графикой, но могу привести явные ее достоинства:

  1. Огромное комьюнити (это форум, это вики, неофициальные локализации сайта и т.п.);
  2. Библиотека довольно легкая в управлении при этом по возможностям не уступает дорогим графическим движкам;
  3. Лицензия MIT;
  4. Поддержка большого кол-ва платформ;
  5. Есть «порты» и «враперы» для языков C#, Java, Python, Ruby, и т.д.

Хочу подчеркнуть, что эта библиотека создана для рендеринга трёхмерной графики и не является «игровым движком», так как часто сталкивался с ошибочным мнением. Вот пример высокоуровневой архитектуры типичной для многих игр:

Ogre представляет собой объектно-ориентированный фреймворк, который включает все части процесса рендеринга в объектной модели. С объектно-ориентированным подходом к рендерингу геометрии, необходимость во взаимодействии с ней напрямую совершенно отпадает. Также Ogre не требует знаний полной своей архитектуры. Вы можете написать приложение зная Ogre очень поверхностно, а можете изучить его вдоль и поперек, все зависит от того что вам нужно и насколько сложный проект Вы хотите написать. Для манипуляции объектами в библиотеке используются интуитивно понятные методы, в отличие от обычного 3D API, в котором, например, для вращения объекта вам нужно добиться правильной трансформации матрицы, вместо просто вызова метода с указанием оси вращения и градусов (радиан). Традиционно, для рендеринга своих сцен и объектов, вы устанавливали состояние рендера с помощью различных API-вызовов, отправляли геометрическую информацию с помощью ещё нескольких API-вызовов, и ещё одним API-вызовом указывали API и GPU отрисовать геометрию. Короче говоря — «Lather, rinse, repeat». Давайте рассмотрим отношение между структурой графа сцены и её содержимым:

Объекты Entity, содержат один или более объектов SubEntity. Эти subentity как раз и являются отрисовываемыми объектами. Сами узлы сцены могут существовать без каких-либо прикрепленных к ним отрисовываемых объектов (если Вам, конечно, это нужно). MovableObject просто прикрепляется к узлу, то есть движимые объекты не являются созданными подклассами от узла, что конечно же дает некие преимущества.

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

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

Ogre поддерживает три типа анимации: скелетную, морфинг-анимацию и анимацию поз. Все виды анимации могут рассчитываться как программно, так и аппаратно, с использованием вертексных программ.

Относительно новое дополнение в багаже возможностей Ogre — это Композиционный фреймворк, дающий пользователю возможность создавать сложные, двухмерные, полноэкранные эффекты пост-обработки на вьюпорте. Например, вьюпорту можно добавить полноэкранный эффект свечения, или фильтры чёрно-белого тонирования или сепии, или изображение можно сделать «рисованным», штрихованным, с резкими краями, и т.д. Всё, что вы ни задумаете, может быть сделано при помощи фреймворка.

Пример Работы Ogre3d в связке с PhysX:



Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Сколько вы стоите, или как вести переговоры о зарплате
Не в деньгах счастье. Многие добавят «но в их количестве». Можно долго рассуждать о преданности любимому делу, заводить разговоры о стремлении к профессиональному росту и работе в сплоченном коллективе. Но это, скорее, прелюдия к главному и насущному вопросу «сколько?». И от полученного ответа зависит либо дальнейший энтузиазм в разговоре, либо плохо скрываемое ...

Способы заработка на сайте
На этом блоге было много постов про производство и раскрутку сайтов. Но пока не было про заработок на них. Пора исправить этот недочет. Здесь будут описаны по возможности не фантастичные, и не супер низко прибыльные способы. Также упор будет сделан именно на организацию процесса, а не технических деталях, которых в обилии в интернете. Несмотря на то, что как пр...

Комментарии

 
peerAt 07.06.2011 3:42:22 #

Варианты движка под Net - проекты: OgreDotNet и MOGRE.
http://www.ogre3d.org/tikiwiki/OgreDotNet
http://www.ogre3d.org/tikiwiki/MOGRE

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




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий