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

На сегодняшний день очень многие компьютерные программы используют мультимедийные возможности вычислительных систем - отображение трёхмерной графики и воспроизведение звука. Для работы с графикой используются готовые библиотеки визуализации. Одним из самых популярных стандартов таких библиотек является 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 для визуализации задач имитационного моделирования и искусственного интеллекта (когнитивных игр).
Статья в формате PDF
226 KB...
25 03 2026 16:53:34
Статья в формате PDF
305 KB...
23 03 2026 9:42:24
Статья в формате PDF
177 KB...
22 03 2026 15:49:37
В эксперименте на пoлoвoзрелых крысах Wistar исследованы особенности регенерации суставного хряща коленного сустава после имплантации в зону повреждения гранулированного минерального компонента костного матрикса (МККМ), полученного по оригинальной технологии. Установлено, что МККМ имеет упорядоченную высокопористую структуру, близкую к естественной архитектонике костного матрикса и химический состав, соответствующий минеральному составу кости. МККМ обладает выраженными хондро- и остеиндуктивными свойствами, обеспечивает пролонгированную активизацию репаративного процесса, ускоренное органотипическое ремоделирование и восстановление поврежденного суставного хряща.
...
21 03 2026 6:39:33
Статья в формате PDF
107 KB...
20 03 2026 8:58:18
Статья в формате PDF
244 KB...
19 03 2026 1:28:53
18 03 2026 2:15:52
Статья в формате PDF
120 KB...
17 03 2026 19:30:20
В настоящее время одной из наиболее обсуждаемых является тема воздействия интеллигенции на общественно-экономическую жизнь. Интеллигенция, являясь наиболее образованной группой общества, является монополистом в области на духовного и интеллектуального производства. По мере ускорения научно-технического прогресса данная тенденция усиливается.
...
16 03 2026 22:22:39
Статья в формате PDF
293 KB...
15 03 2026 13:22:27
Статья в формате PDF
110 KB...
14 03 2026 3:52:42
Статья в формате PDF
270 KB...
13 03 2026 21:10:50
Статья в формате PDF
119 KB...
11 03 2026 3:27:51
Статья в формате PDF
137 KB...
10 03 2026 2:33:16
Статья в формате PDF
223 KB...
09 03 2026 2:43:48
Статья в формате PDF
108 KB...
08 03 2026 13:19:29
Статья в формате PDF
386 KB...
07 03 2026 5:45:54
Статья в формате PDF
267 KB...
06 03 2026 12:56:16
Статья в формате PDF
251 KB...
05 03 2026 20:59:37
Статья в формате PDF
111 KB...
03 03 2026 3:33:58
В работе рассмотрена очистка природных вод от ионов жесткости с помощью сорбентов на основе выщелоченных базальтовых волокон, модифицированных бентонитовой глиной. Определены статические и динамические параметры очистки.
...
02 03 2026 3:56:48
Статья в формате PDF
317 KB...
01 03 2026 21:26:15
28 02 2026 18:45:49
Обучение любому иностранному языку начинается, как правило, с обучения фонетике. Каждый национальный язык имеет свою неповторимую индивидуальную фонетическую систему, которая говорящим на этом языке представляется самой удобной. Фонетическая система вьетнамского языка сильно отличается от фонетической системы русского. Для вьетнамских студентов работа по обучению произношению должна строиться с учётом особенностей вьетнамского языка. В статье были показаны всевозможные трудности в обучении фонетике русского языка вьетнамских студентов, начиная с обучения звуков русской речи до интонации. Вместе с тем были предложены способы устранения ошибок при обучении фонетике русского языка вьетнамских студентов.
...
27 02 2026 7:24:44
Статья в формате PDF
108 KB...
25 02 2026 13:27:34
Статья в формате PDF
246 KB...
23 02 2026 2:16:12
Статья в формате PDF
379 KB...
22 02 2026 8:51:55
Статья в формате PDF
106 KB...
21 02 2026 5:56:49
Статья в формате PDF
117 KB...
20 02 2026 20:54:18
Статья в формате PDF
156 KB...
19 02 2026 15:33:28
Приводится вывод уравнений для расчета координационного числа в неупорядоченных конденсированных системах: в зернистых материалах, в композитах с твердой монодисперсной фазой, в жидких металлах и при критическом состоянии вещества. В выводах этих уравнений используется основной их топологический параметр – средняя плотность упаковки структурных элементов дискретности. Знание координационного числа элементов дискретности неупорядоченных систем необходимо для определения многих их свойств: физических, механических, реологических и др., совокупность которых вытекает из их топологических состояний: твердого, псевдотвердого, жидкого, псевдожидкого и критического.
...
18 02 2026 8:32:21
Статья в формате PDF
254 KB...
17 02 2026 20:18:44
Статья в формате PDF
278 KB...
16 02 2026 21:58:43
Статья в формате PDF
182 KB...
15 02 2026 19:41:54
Статья в формате PDF
111 KB...
14 02 2026 2:56:38
Еще:
Поддержать себя -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 ::