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

Поиск

Категории

Облако тегов

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

Irrliсht.Net - довольно популярный, "официальный" враппер, до сих пор поддерживается. Последнее обновленеи - февраль 2011. Irrliсht.Net был разработан, потому что другие врапперы (которые нашел разработчик) были уже дохлые и уже не поддерживались. Также они относились к уже устаревшим Irrlicht 1.3 и .Net 2.0. Таким образом, чтобы не тянуть дальше кота за яйца, разработчик решил сам создать свой собственный враппер. Который бы можно было бы сфокусировать на простоте и скорости движка Irrliсht. И скомбинировать эти позитивные свойства со скоростью разработки на языках .Net Framework. Irrliсht.Net базируется на Irrliсht 1.7.2, все данные и Irrliсht.dll берeтся из http://irrlicht.sourceforge.net/. Специальная благодарность выражается разработчиком Niko обитающему на http://irrlicht.sourceforge.net/.

Официальный сайт враппера (там же исходники): Irrlicht.Net

Документация по врапперу: Irrliсht.Net documentation

-------------------------------------------------------------------------------------------------------------------------------------------

Irrlicht Lime или просто "Лайм", является .NET враппером для Ирлихта, написанным на C++ .NET.

Внутри использует родной С++ Ирлихт, наружу выдает managed типы.

Изначально нацелен на использование в высокоуровневых .NET языках, таких как C# и VB.NET.

Последняя версия: 0.9.1 (от 30.05.2011).

 

Использование:

Для того чтобы начать использовать Лайм, все что нужно это:

- IrrlichtLime.dll (.NET сборка, непосредственно враппер);

- IrrlichtLime.xml (опциональный файл Interllisense документации для VS);

- Irrlicht.dll (оригинальная библиотека Ирлихта);

Создав .NET проект, вам нужно добавить reference на IrrlichtLime.dll, этого будет достаточно чтобы писать и компилировать код.

Чтобы скомпилированный код выполнялся, нужно чтобы рядом с IrrlichtLime.dll была Irrlicht.dll.

 

Сильные стороны:

1. Быстродействие. Разница производительности оригинальных примеров Ирлихта и портированых на Лайм практически не заметна.

2. Простота отладка. Внутренний код враппера активно использует assert-ы (чего вообще нет у Ирлихта);

это позволяет выявлять ошибки гораздо быстрее во время отладки.

3. Простота использования. Вам не придется заморачиваться по поводу Unicode и/или Ansi строк;

не придется вникать в детали core::stringc/w а также io::path, так как все это снаружи является System.String.

4. Прозрачность работы враппера.

Почти каждый класс, который Лайм предоставляет, является оберткой для реально существующего класса Ирлихта.

Это позволяется легко перейти на Лайм если у вас есть опыт использования самого Ирлихта на С++.

Это также позволяет использовать оригинальную документацию Ирлихта.

 

Недостатки:

1. Отсутствие расширяемости через наследование интерфейсов.Одним из самых главных недостатков Лайма, является то что он практически не расширяем через наследование.Пример: если взять Ирлихт, тогда если вам нужен свой загрузчик сцен, то вы должны реализовать интерфейс scene::ISceneLoader, потом выполнить sceneManager->addExtenralSceneLoader(); после этого вы сможете грузить сцены вашего собсвенного формата стандартным sceneManager->loadScene(). В Лайм существует SceneLoader но наследовать его нельзя. Тоже самое относится и к возможности реализовывать свои IMeshLoader-ы, ISceneNodeAnimator-ы и прочего. Единственное что вы можете наследовать сейчас, это SceneNode; специально для этого класса был написан дополнительный код (использование можно посмотреть в примере 03.CustomSceneNode).


2. Отсутствие русской документации.


3. Так как в managed классах нет понятия const-результата, то можно написать заведомо неверно следующее (и компилятор ничего не скажет): "myNode.Position.X = 10;". Здесь ошибка в том что myNode.Position возвращает Vector3Df, который является копией, у которой мы локально отредактировали X и забыли про этот вектор навсегда. Правильно можно написать так: "myNode.Position = new Vector3Df(10, myNode.Position.Y, myNode.Position.Z);".

 

Документация:

В данный момент, документация враппера - это Intellisense файл для VS на английском языке. Для того чтобы среда VS начала подсказывать по коду о классах, методах и их аргументах, нужно чтобы IrrlichtLime.xml лежал рядом с IrrlichtLime.dll (к которой вы добавили reference). В данный момент документированы следующие неймспейсы: IrrlichtLime, Core, IO и Video. Также можно использовать оригинальную онлайн документацию Ирлихта (в 95% случаев имена классов и методов совпадают).

 

Официальный сайт (оттуда статья): Irrlicht Lime /.NET враппер

Исходники лежат тут: http://sourceforge.net/projects/irrlichtlime/

 

Скриншоты примеров:

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


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

Как узнать версию .Net Framework из .Net приложения ?
Удивительное рядом! Но версию .Net Framework нужно определять почему-то из ключей реестра. Причем так считает сам Microsoft , что вообще очень странно. Подробное руководство о связях между ключами реестра и версиями .Net Framework смотри по ссылке Как определить, какие версии и уровень обслуживания пакета Microsoft NET Framework установлены. Пространные рассуждения по...

BlogEngine.NET- лучший бесплатный движок блога под ASP.NET
Да, действительно, это лучший движок для блога. Именно поэтому этот блог сделан на нем. У него самая понятная концепция, архитектура и исходники. Если бы я делал движок для блога, я бы сделал нечто подобное. В нем есть все что необходимо, но в то же время нет лишнего. Проект с одной стороны зрелый, с другой стороны до сих пор развивается и вполне современный. Проект в...

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




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


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