Тысяча полезных мелочей    

SNAIL ENGINE: КРОССПЛАТФОРМЕННЫЙ МОДУЛЬ ГРАФИЧЕСКОГО РАСШИРЕНИЯ

SNAIL ENGINE: КРОССПЛАТФОРМЕННЫЙ МОДУЛЬ ГРАФИЧЕСКОГО РАСШИРЕНИЯ

Рябинин К.В. Полотнянщиков И.С. Статья в формате PDF 254 KB

На сегодняшний день очень многие компьютерные программы используют мультимедийные возможности вычислительных систем - отображение трёхмерной графики и воспроизведение звука. Для работы с графикой используются готовые библиотеки визуализации. Одним из самых популярных стандартов таких библиотек является OpenGL. Однако библиотеки данного стандарта предоставляют лишь низкоуровневый доступ к графическому оборудованию, поэтому в сложных системах использовать их напрямую неудобно. Необходимо создавать прослойку между основной программой и библиотекой OpenGL. Такую прослойку принято называть модулем графического расширения.

В рамках описываемой работы был создан модуль графического расширения, который получил название Snail Engine. Он представляет собой объектно-ориентированную надстройку над библиотекой стандарта OpenGL. Так как трёхмерная сцена представляет собой набор объектов, принадлежащих различным классам, объектно-ориентированный подход наиболее адекватно подходит для организации модуля графического расширения.

Основное назначение модуля - облегчить труд программиста, разpaбатывающего крупное мультимедийное приложение. Для этого Snail Engine предоставляет возможность управления трёхмерной сценой на уровне геометрических примитивов более высокого уровня, чем OpenGL. Базовыми понятиями в Snail Engine являются трёхмерные объекты с их свойствами, такими как материал и положение в прострaнcтве, а также визуальные эффекты; в то время как в OpenGL - точки, многоугольники и матрицы преобразования. Кроме того, Snail Engine имеет встроенные функции загрузки моделей и текстур из внешних файлов (поддерживаются различные популярные форматы: для трёхмерных моделей - 3ds и md2, а для двумерных текстур bmp, png и др).

Модуль графического расширения написан на языке C++ с соблюдением требований платформенной независимости и может быть собран под любую платформу, для которой реализован OpenGL. На данный момент модуль тестировался под управлением операционных систем GNU / Linux и Windows.

Чтобы повысить производительность при работе со сложными специальными эффектами (нестандартное освещение, системы частиц и т.п.) в состав Snail Engine включено средство использования микропрограмм - шейдеров - на языке GLSL. Шейдеры позволяют ускорить обсчёт трёхмерной сцены за счёт переноса части вычислений на графический процессор. Кроме того, они делают мультимедийное приложение более структурированным, так как эффекты, описанные шейдерами, находятся за пределами основного программного кода этого приложения. Шейдеры могут быть легко изменены и изменения вступят в силу без перекомпиляции основной программы.

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

Для расширения мультимедийных возможностей модуля в него включены также средства воспроизведения звука, опирающиеся на библиотеку стандарта OpenAL и компрессор-декомпрессор Ogg Vorbis.

В Snail Engine реализована поддержка отображения трёхмерной сцены в стереорежиме при помощи шлема виртуальной реальности eMagin Z800. Таким образом, любое приложение, имеющее в основе данный модуль, будет совместимо с этим шлемом.

На базе Snail Engine был создан виртуальный интеpaктивный исторический музей, «экспонаты» для которого были получены на трёхмерном сканере Roland LPX-600. Это приложение является показательным примером использования модуля для решения реальной прикладной задачи.

В дальнейшем планируется использовать Snail Engine для визуализации задач имитационного моделирования и искусственного интеллекта (когнитивных игр).



ПОСТЭФИРНАЯ ГИПЕРСИММЕТРИЯ ВСЕЛЕННОЙ. ЧАСТЬ 5

ПОСТЭФИРНАЯ ГИПЕРСИММЕТРИЯ ВСЕЛЕННОЙ. ЧАСТЬ 5 Построена октетная электродинамика. Обсуждена возможность объединения механики и электродинамики. Выявлена дальнодействующая структуризация октетного прострaнcтва. Исследуются свойства интервала. ...

10 10 2026 20:33:31

СТРУКТУРА СИНФЛОРИСЦЕНЦИИ ARTEMISIA DRACUNCULUS L. (ASTERACEAE)

СТРУКТУРА СИНФЛОРИСЦЕНЦИИ ARTEMISIA DRACUNCULUS L. (ASTERACEAE) Статья в формате PDF 89 KB...

04 10 2026 6:25:40

Новые приборы в реологии пищевых систем

Новые приборы в реологии пищевых систем Статья в формате PDF 114 KB...

27 09 2026 19:46:25

ФАКТОР НЕКРОЗА ОПУХОЛЕЙ И ГИБЕЛЬ КЛЕТОК ПЕЧЕНИ

ФАКТОР НЕКРОЗА ОПУХОЛЕЙ И ГИБЕЛЬ КЛЕТОК ПЕЧЕНИ Статья в формате PDF 97 KB...

24 09 2026 18:59:59

Влияние различных форм внутриутробной задержки развития на динамику роста ДЕТЕЙ

Влияние различных форм внутриутробной задержки развития на динамику роста ДЕТЕЙ Исследованы особенности взаимосвязи увеличения массы и продольных размеров тела и его частей у здоровых новорожденных (535), детей с задержкой внутриутробного развития (938) и 221 детей с отставанием в росте одной из нижних конечностей. Использованы методы антропометрии детей, ультразвуковое исследование плода и оценка психического развития дошкольников. В этих группах обследуемых выявлены хаpaктерные различия динамики продольных размеров тела, отнесенных к его массе. Показано, что церебральный тип конституции появляется у детей при отсутствии диспластической задержки роста тела. Для успешного психического развития дошкольников благоприятны не максимальные, а средние размеры тела детей. ...

23 09 2026 23:45:30

К ВОПРОСУ СОЗДАНИЯ И РАЗВИТИЯ В РОССИИ ЦЕНТРОВ ЗДОРОВЬЯ

К ВОПРОСУ СОЗДАНИЯ И РАЗВИТИЯ В РОССИИ ЦЕНТРОВ ЗДОРОВЬЯ Современные социально-экономические преобразования в стране и переход на качественно новые требования к оказанию медицинской помощи диктуют необходимость анализа и разработки новых организационные форма работы медицинских учреждений, которыми призваны быть Центры здоровья. Но в связи со множеством проблем в нашей системе здравоохранения, остается множество вопросов связанных с программой развития Центров здоровья. В статье рассматриваются проблемы связанные с созданием и развитием таких центров в Росси. Затрагиваются вопросы финансирования здравоохранения в целом и Центров здоровья в частности. Существующая система российского здравоохранения действует в условиях жесткого финансового дефицита, что отражается на качестве предоставления медицинских услуг. В цифрах же – в 2007 году бюджет здравоохранения в России составил 5,4% ВВП, при этом в других развитых странах – около 10% (Германия – 10,4%, США – 15,7%). Расходы на здравоохранение в физическом выражении на человека в год в 2007 году в России составили 493 долл. США, при этом в том же году в США – 7,285 долл., в Германии – 4,209. В связи с этим вопрос создания Центров здоровья в России остается открытым. ...

14 09 2026 21:49:32

ИСТОРИЧЕСКИЙ РЕГРЕСС СОВРЕМЕННОГО ЧЕЛОВЕКА

ИСТОРИЧЕСКИЙ РЕГРЕСС СОВРЕМЕННОГО ЧЕЛОВЕКА Данная статья посвящена проблеме реставрации языческого миропонимания в современном мире. В статье пишется о том, что неоязычество предрасполагает людей к аддиктивным формам поведения. ...

11 09 2026 19:30:18

ФУНКЦИЯ СОСТОЯНИЯ В КЛАССИЧЕСКОЙ МЕХАНИКЕ И ТЕОРИИ ПОЛЯ

ФУНКЦИЯ СОСТОЯНИЯ В КЛАССИЧЕСКОЙ МЕХАНИКЕ И ТЕОРИИ ПОЛЯ В работе показано, что фундаментальные принципы классической механики и теории поля - принцип наименьшего действия и калибровочная инвариантность полей  и  электромагнитного поля - есть прямое следствие существования уже в рамках классической физики функции состояния. ...

08 09 2026 14:52:24

ЛИТЕРАТУРНОЕ КРАЕВЕДЕНИЕ

ЛИТЕРАТУРНОЕ КРАЕВЕДЕНИЕ Статья в формате PDF 99 KB...

04 09 2026 13:19:32

Еще:
Поддержать себя -1 :: Поддержать себя -2 :: Поддержать себя -3 :: Поддержать себя -4 :: Поддержать себя -5 :: Поддержать себя -6 :: Поддержать себя -7 :: Поддержать себя -8 :: Поддержать себя -9 :: Поддержать себя -10 :: Поддержать себя -11 :: Поддержать себя -12 :: Поддержать себя -13 :: Поддержать себя -14 :: Поддержать себя -15 :: Поддержать себя -16 :: Поддержать себя -17 :: Поддержать себя -18 :: Поддержать себя -19 :: Поддержать себя -20 :: Поддержать себя -21 :: Поддержать себя -22 :: Поддержать себя -23 :: Поддержать себя -24 :: Поддержать себя -25 :: Поддержать себя -26 :: Поддержать себя -27 :: Поддержать себя -28 :: Поддержать себя -29 :: Поддержать себя -30 :: Поддержать себя -31 :: Поддержать себя -32 :: Поддержать себя -33 :: Поддержать себя -34 :: Поддержать себя -35 :: Поддержать себя -36 :: Поддержать себя -37 :: Поддержать себя -38 ::