Инструмент «стикеры» в виртуальном образовательном мире vAcademia: основные технологические решения, оптимизация, синхронизация и использование вычислительных возможностей потоковых процессоров.

Морозов Михаил Николаевич

к.т.н., профессор,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

morozovmn@volgatech.net

Сморкалов Андрей Юрьевич

ассистент кафедры информатики и системного программирования,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

smorkalovay@volgatech.net

Наумова Ирина Александровна

программист Лаборатории систем мультимедиа,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

irina.a.naumova@gmail.com

Смирнов Михаил Владимирович

программист Лаборатории систем мультимедиа,

Поволжский государственный технологический университет,

пл. Ленина, 3, г. Йошкар-Ола, 424000, (8362)686090

mihailsmirnovvlad@gmail.com

Аннотация

Статья посвящена инструменту «стикеры» виртуальной доски в образовательной среде vAcademia. Стикеры нашли широкое применение в процессе обучения для организации мозговых штурмов, проектной работы, Scrum-сессий (Scrum – одна из методологий управления проектной работой). Рассмотрены основные технологические решения, принятые при разработке этого инструмента. Большое внимание уделено аспектам реализации генерации изображения поверхности доски с использованием вычислительных возможностей графических потоковых процессоров. Подробно разобраны алгоритмы синхронизации стикеров и их свойств, месторасположения стикеров на виртуальных досках, методе оценки целостности синхронизированного состояния. Предложен метод оптимизации работы инструмента «стикеры» как с точки зрения производительности, так и  с точки зрения потребления памяти на основе минимизации необходимости повторной компиляции функций в скриптовом языке, применяемом в vAcademia.

The article is devoted to sticky notes tool of virtual board in educational environment vAcademia. Sticky notes are widely used in learning process for brainstorming, project work, Scrum-sessions. Main technological solutions are briefly described. A lot of attention is devoted to aspects of realization of generation image of board surface with using computing power of stream processors. Algorithms of synchronization of sticky notes, it’s properties, it’s location on the board, estimation of synchronization state integrity are dismantled in details. Method of sticky notes tool optimization to reduce memory consuming and improve performance based on compilation minimization is suggested.

Ключевые слова

Стикеры, виртуальные миры, виртуальные среды, потоковые процессоры, образовательные инструменты, виртуальность, виртуальная доска, синхронизация, оптимизация.

Sticky notes, virtual worlds, virtual environments, stream processors, educational tools, virtuality, virtual board, synchronization, optimization.

Введение

В настоящий момент сотни университетов со всего мира ведут свою образовательную деятельность на постоянной основе не только в своих аудиториях, но и в виртуальных мирах. Среди таких университетов Кэмбридж, Гарвард, Массачусетский технологический университет [1] и другие известные и авторитетные учебные заведения.

Особое место среди применяемых университетами виртуальных миров принадлежит виртуальной среде vAcademia [2], разрабатываемой лабораторией систем мультимедиа Поволожского государственного технологического университета. Во-первых, vAcademia – это мир, разработанный специально для обучения, в него встроены десятки образовательных инструментов. Во-вторых, каждое занятие в vAcademia может быть записано в виде 3D-записи [3] и в любое время учащиеся совместно или раздельно смогут просмотреть запись еще раз. Запись занятия является важной сама по себе, однако в случае 3D-записи при посещении наблюдается эффект присутствия [4], которого нельзя достигнуть при просмотре видеоролика.

 Виртуальные миры позволяют проводить лекционные и практические занятия, семинары, круглые столы, тренинги, однако есть тип занятий, проведение которых в существующих виртуальных мирах сильно затруднено из-за отсутствия специализированных инструментов для работы со стикерами, специальными наклейками с надписями, перемещаемыми по доске по какому-либо учебному сценарию. Стикеры нужны для организации совместной деятельности [5]: Scrum сессий, мозговых штурмов и других форм современной командной работы.

Таким образом, актуальной является задача реализации инструмента поддержки использования стикеров в виртуальном мире vAcademia.

Обзор применяемых технологий

Виртуальный образовательный мир vAcademia

 

Поскольку инструмент «стикеры» разрабатывается для виртуального образовательного мира vAcademia, необходимо дать краткий обзор этой среды. Виртуальная академия (vAcademia) – трехмерная образовательная виртуальная среда,  где можно проводить и посещать учебные занятия, курсы, совещания, презентации и тренинги десяткам пользователей одновременно. При этом каждый посетитель представлен специальным визуальным объектом – аватаром. Аватары пользователей синхронизируются – все действия каждого из них видны остальным в реальном времени.

 Главное направление применения виртуальных миров для серьезных целей – сфера образования. Существует множество зарубежных исследований, подтверждающих, насколько более успешными стали  занятия после перехода на использование виртуальных миров. Ведь студенты могут не просто прослушать устную лекцию, но и увидеть, например, предложенные преподавателем видео, демонстрирующие химические процессы, которые сложно показать в обычном классе,  яркие иллюстрации, 3D модели изучаемых объектов, будь то молекула, сооружение или внутренние органы человека.

Кроме работы в аудитории, виртуальные миры могут быть полезны при дистанционной форме обучения. Ведь тогда не надо собираться всем в одном месте – можно войти в среду прямо из дома. В этом случае виртуальные среды могут использоваться для проведения виртуальных конференций с участием пользователей из разных городов, для получения каких-либо консультаций от удаленного от вас человека, или использоваться лицами, по каким-либо причинам не имеющими возможности посещать обычные образовательные учреждения.

В среде vAcademia есть все, что необходимо для эффективного обучения: удобные аудитории, интерактивные доски, указки, текстовые и голосовые средства коммуникации, поддержка веб-камер и 3D-объектов. Обеспечивается широкий набор инструментов для обучения и совместной учебной деятельности: инструменты рисования,  презентации Power Point, удаленный рабочий стол, система голосования, тесты, размещение 3D-объектов и др.

Главное преимущество vAcademia перед другими образовательными виртуальными мирами – это возможность  делать 3D-записи занятий.  Благодаря этому, контент занятия, однажды проведенного в данной среде, не пропадает бесследно,  а сохраняется, и его можно пересматривать неограниченное количество раз. При просмотре записанного занятия, воспроизведение можно поставить на паузу или перемотать к нужному моменту. Записанное занятие можно просматривать как единолично, так и целой группой людей, что даёт возможность совместно обсудить материал или сделать ещё одну запись внутри уже существующей. Всё это позволяет ученикам более глубоко понять, изучить или повторить предлагаемый материал.

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

 

Использование стикеров для образования

 

Стикеры – это один из наиболее интересных инструментов обучения. Их отличительной особенностью является то, что они одинаково понятны как взрослым, так и детям, и помогают им в образовании.

Рис.1. Применение стикеров для обучения

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

Большое применение стикеры находят при проведении «мозговых штурмов». Также стикеры используются для проведения различных тренингов, начиная от тренингов личностного роста и заканчивая серьезными тренингами по педагогике.

 

Использование стикеров для образования в программных продуктах

 

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

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

Например, веб-ресурс Scrumblr [8], предназначенный для проведения scrum-планирования, предполагает размещение, редактирование и удаление стикеров с доски, но чтобы ученики увидели содержимое стикерной доски, преподавателю необходимо сделать скриншот и отправить его ученикам по e-mail, что крайне неудобно.

Представляет интерес другой ресурс, предлагающий работу со стикерами в реальном времени – Editstorm. В Editstorm пользователь может добавлять стикеры со своими идеями на доску, при этом другие пользователи их видят, могут комментировать и голосовать за понравившуюся идею. Это уже значительно приближает работу команды учащихся с виртуальными стикерами к работе со стикерами реальными.  Но в данном ресурсе возможность добавлять идеи есть только у автора, что неудобно при таких методах коллективной работы, как «мозговой штурм», где вся команда должна предложить как можно больше идей для решения какого-либо вопроса. Так же минусом является то, что обратная связь осуществляется только посредством комментариев, а комментарий можно оставить только к одному конкретному уже добавленному стикеру. То есть, по сути, пользователи могут только обсудить идеи автора, не предлагая свои.

 

Рис. 2. Инструментов стикеров в виртуальном мире Sametime 3D

В виртуальном мире Sametime 3D также присутствует инструмент работы со стикерами (рис. 2). Однако стикеры могут быть размещены только на специально размещенные квадратные ячейки, их размер неизменен, нельзя использовать стикеры вместе с другими инструментами доски (например, рисованием). Таким образом, можно сделать вывод, что существующие сервисы не в полной мере готовы поддержать все направления образовательной деятельности, которые открываются при использовании стикеров.

Реализация инструмента поддержки стикеров

Концепция поддержки стикеров в виртуальном мире vAcademia

 

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

Было введено понятие режима стикерной доски. Режим стикерной доски включается выбором соответствующего пункта в контекстном меню виртуальной доски. В случае, если пользователь не завершил режим стикерной доски, то при следующем использовании этот режим будет активирован. Завершить режим стикерной доски можно двумя способами: нажатием кнопки закрытия режима стикерной доски в левом тулбаре или очистив доску.

Контекстное меню обычной виртуальной доски отличается от меню стикерной доски. Меню стикерной доски ограничено. В нем есть только возможность включения указки, добавления текстового стикера, добавления графического стикера, полной очистки доски и рисования.

Редактирование стикера доступно по двойному щелчку на стикере или через контекстное меню стикера. При этом стикер могут редактировать только автор стикера и преподаватель. В режиме редактирования можно удалить стикер.

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

Для текстового стикера необходимо каким-то образом выбирать размер шрифта. Было решено реализовать механизм подбора размера шрифта, такого, чтобы размер шрифта был максимальный, текст помещался на стикере полностью и переносы происходили только по границам слов. Проблемы цвета стикера и размера стикера были решены предоставлением выбора из нескольких доступных вариантов.

 

Синхронизация стикеров на виртуальной доске

В используемой в vAcademia системе синхронизации только один пользователь одновременно может быть владельцем объекта, например, владельцем виртуальной доски. Владелец имеет право устанавливать синхронизируемые свойства, если синхронизируемые свойства попытается установить невладелец, то эти изменения будут отброшены сервером синхронизации vAcademia.

Инструмент «стикеры» является коллективным инструментом, т.е. с ним одновременно должны работать несколько пользователей. Это исключает возможность рассматривать набор стикеров на доске как свойство самой доски, т.к. она может быть доступна для редактирования только одному ученику. Для решения этой проблемы были приняты следующие решения:

1.     Для каждого стикера будет заводиться отдельный синхронизируемый невидимый объект (далее СНО).

2.     СНО будет привязываться к точке 3D-пространства, относящейся к виртуальной доске. Это необходимо, чтобы объект стикера попадал в ту же область видимости синхронизации, что и сама доска, к которой он относится. В этом случае есть гарантия, что в любых условиях и доска, и СНО этой доски обязательно будут созданы на каждом запущенном клиенте виртуального-мира, на котором данная доска попадет в область видимости виртуальной камеры.

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

4.     При создании СНО стикера он регистрируется в скриптовом объекте виртуальной доски. Скриптовый объект виртуальной доски хранит полный список стикеров, находящихся на доске, и создает соответствующий набор 2D-объектов для визуального представления (рис. 3).

Рис. 3. Схема работы синхронизации стикеров как для первоначального появления стикеров, так и для обновления свойств стикеров.

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

Синхронизируемый текстовый стикер реализуется классом CSynchTextSticker, который управляет следующим набором синхронизируемых свойств (Таблица. 1). Синхронизируемый текстовый стикер реализуется классом CSynchImageSticker, который управляет следующим набором синхронизируемых свойств (Таблица. 2). Кроме того, оба класса управляют набором общим для обоих видов стикеров свойств (Таблица. 3).

Таблица. 1.

Синхронизируемые свойства текстовых стикеров

Свойство

Тип

Описание

value

Строка

Текст, написанный на стикере

 

Таблица. 2.

Синхронизируемые свойства графических стикеров

Свойство

Тип

Описание

src

Строка

Путь к изображению на стикере, которое хранится на сервере

 

Таблица. 3.

Общие синхронизируемые свойства стикеров

Свойство

Тип

Описание

x

Положительное число

Абсцисса стикера на виртуальной доске

y

Положительное число

Ордината стикера на виртуальной доске

sessionID

Положительное число

Номер стикерной сессии (т.е. одного конечного эпизода функционирования стикерной доски)

color

Цвет в HTML-формате

Цвет стикера на виртуальной доске

width

Положительное число, степень числа 2

Ширина стикера на виртуальной доске

height

Положительное число, степень числа 2

Высота стикера на виртуальной доске

depth

Число

Число, определяющее порядок наложения стикеров друг на друга.

author

Строка

Автор стикера (login)

board

Строка

Имя объекта виртуальной доски, на которой размещен стикер

 

В используемой vAcademia модели синхронизации не гарантируется порядок и группировка приходящих синхронизируемых свойств. Между тем, визуальное представление стикера задается только полным набором синхронизируемых свойств. В связи с этим введено понятие целостности синхронизируемых данных, которая достигается, когда все синхронизируемые свойства получены. После достижения целостности каждое изменение синхронизируемых свойств вызывает перерегистрацию стикера в скриптовом объекте виртуальной доски. Этот механизм обеспечивает как первоначальное появление стикера, так и его изменение вследствие редактирования, а также полное соответствие записанного и проигрываемого состояния во время просмотра 3D-записи.

Режим стикеров на виртуальной доске может быть завершен как вследствие принятого пользователем решения, так и по истечении тайм-аута после выхода из vAcademia владельца стикерной доски и отсутствия в этой же аудитории других пользователей. В последнем случае виртуальная доска завершает режим стикеров фактически не по истечению таймаута, а после того, как первый пользователь зайдет в данную аудиторию после истечения таймаута.

Обрабатывая описанную ситуацию, скрипт виртуальной доски удаляет все синхронизируемые объекты стикеров, связанные на текущий момент с этой доской. Однако, надо заметить, что как 3D-объект виртуальной доски, так и невидимые синхронизируемые объекты стикеров  создаются в неуправляемом порядке, в соответствии с требованиями приоритетов асинхронной загрузки и требованием отсутствия провалов в производительности. Таким образом, на момент принятия решения о завершении режима стикеров, не все синхронизируемые объекты стикеров могут быть созданы и зарегистрированы, а следственно часть СНО стикеров могут избежать удаления.

Для решения этой проблемы было введено понятие номера сессии, который хранится в синхронизируемой переменной sessionID. Как скрипт виртуальной доски, так и все СНО стикеров внутри одной непрерывной сессии работы со стикерами содержит один и тот же номер сессии. Номер сессии инкрементируется от случая использования к случаю использования. При достижении целостности синхронизируемого состояния стикера:

·  Если номер сессии стикера и виртуальной доски совпадает, стикер регистрируется

·  Если не совпадает и номер сессии стикера меньше номера сессии виртуальной доски, СНО стикера инициирует свое уничтожение.

·  В иных случаях ожидается  новое обновление синхронизируемых свойств, поскольку текущее состояние говорит о том, что синхронизируемое состояние виртуальной доски запаздывает.

 

Генерация изображения (текстуры) доски на основе использования графических потоковых процессоров

 

Поверхность стикерной доски представляет собой 2D-изображение (текстуру), которая накладывается при визуализации 3D-сцены на виртуальную доску в vAcademia. Поскольку стикеры являются инструментом коллективной работы, разумно предполагать, что в момент активной работы с ними будет необходимо достаточно часто обновлять содержимое стикерной доски, поскольку один из пользователей внес изменения в один из своих стикеров. Это влечет за собой необходимость обеспечения высокой скорости генерации текстуры стикерной доски.

Реализация генерации была выполнена на основе ранее разработанной системы обработки растровых изображений на графических потоковых процессорах. В основе модели [7] лежат 4 основных объекта: Texture, Drawing Target, Filter и Filter Sequence.

Texture – это изображение в форме (1), хранимое в памяти графического потокового процессора.  В текстовом стикере этим объектам представлена подложка под текст, а в графическом и подложка, и само изображение на стикере.

U(x, y) = {fR(x, y), fG(x, y), fB(x, y), fA(x, y)}                                                                       (1),

где:  U(x,y) – функция, задающая изображение,

fR(x, y), fG(x, y), fB(x, y), fA(x, y) — это дискретные функции, заданные Таблицаичным методом, представляющие красный, зеленый, синий и альфа-каналы изображения соответственно.

x – целое число, x ϵ [0, w),

y – целое число, y ϵ [0, h),

w – ширина изображения,

h – высота изображения.

Filter – это преобразование (2) изображения на основе другого изображения. Для отображения всех частей стикеров используется фильтр альфа-смешивания:

R = G(A, B, x, y)                                                                                                                   (2),

где:  R – функция результирующего изображения,

G – преобразования изображения А на основе изображения B

Drawing Target - это объект, который определяет изображение-результат (текстуру стикерной доски), а также аппаратное отсечение области растеризации (scissors), которое позволяет ограничить область на результирующем изображении, которая может быть затронута фильтром. Таким образом, преобразование (2) можно переписать в виде:

          (3),

где:  (x1, y1) – левый верхний угол ограничивающей области,

(x2, y2) – правый нижний угол ограничивающей области.

Аппаратное отсечение области растеризации позволяет ограничить область на текстовом стикере, в которой возможен вывод текста. Сам текст представляется набором полигонов с текстурными координатами и соответствующими шрифтовыми текстурами, как было предложено в [8].

Filter Sequence – это последовательность фильтров, ею представлена вся 2D-сцена, соответствующая поверхности стикерной доски. Порядок фильтров внутри последовательности фильтров определяет порядок визуализации стикеров.

Время генерации текстуры стикерной доски ТРТ определяется по формуле:

TРТ = TПР + Т1 * W * H                                                                                                       (4),

где:  TПР – время подготовки к преобразованию,

Т1 – время расчета цвета одного пикселя, т.е. расчета (2),

W – ширина изображения,

H – высота изображения.

 

Визуализация текстового стикера

 

Визуализация текстового стикера осуществляется на основе следующих параметров: координат X и Y,  ширины, высоты, глубины, цвета фона, текста стикера и автора стикера. Стикер состоит из двух частей: фона и текста. Для этих частей создаются скриптовые объекты типа Image и Text на основе входных параметров.

Для текста задается максимальная ширина, а также маска в виде прямоугольного объекта, при выходе за которую текст будет попиксельно отсечен. Для текстового стикера реализована процедура подбора размера шрифта текста. Размер шрифта зависит от размера стикера и от объема текста. В процессе тестирования было определено, что целесообразно установить максимальный размер шрифта для каждого размера стикера и единственный минимальный размер. Первоначально размер шрифта получает максимальное значение для текущего размера стикера. Далее в цикле размер шрифта уменьшается, при условии, что текущий размер шрифта больше минимального и высота текста больше высоты стикера. Как только одно из условий становится ложным, цикл завершается. Даже если цикл завершился из-за достижения минимального размера шрифта, текст не выходит за рамки стикера из-за действующей маски.

 

Визуализация графического стикера

 

В графическом стикере может использоваться изображение произвольного размера. Стикеры могут иметь размер 64х64, 128х128 или 256х256. В этом случае возникает проблема необходимости масштабирования загруженного изображения с сохранением пропорций с целью корректного их отображения на стикере.

Для этого внутри класса CImageSticker был реализован алгоритм корректного масштабирования и позиционирования пользовательского изображения внутри стикера. Сначала сравниваются ширина и высота картинки – выравнивание изображения будет происходить по наиболее длинной из сторон изображения, назовём её L. Затем находится отношение длины стороны стикера к длине стороны L изображения. Длины сторон изображения умножаются на полученный коэффициент, а также на коэффициент сжатия (необходимый для того, чтобы между краями изображения и краями стикера оставалось свободное пространство).

Чтобы изображение выравнивалось по центру стикера, а не по левому верхнему краю, вычисляем половину от полученных высоты и ширины. Откладываем полученные значения вверх по Y и влево по X относительно середины стикера соответственно. Получаем отмасштабированное с учетом пропорций изображение, выравненное по центру стикера. Например, для изображения размером 1024х768, загруженного в стикер размером 256х256, рассчитывается новый размер, равный примерно 204х153 пикселей. 

 

Оптимизация

 

Для реальзации инструмента стикеров были написаны следующие классы: CSynchTextSticker, CSynchImageSticker, CTextSticker, CImageSticker, CBaseSticker. Изначально все функции и методы классов были описаны внутри самих классов. Это приводит к тому, что при создании каждого нового экземпляра класса все функции для него копируются и заново компилируются. В этом случае выделяется неоправданно большое количество памяти, что приводит к снижению производительности приложения. Кроме того, это сказывается на работе «сборщика мусора». Garbage collector периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложением, условием чего является отсутствие на объект ссылок. Чем больше объектов, тем дольше работает сборщик мусора.

Решением вопроса оптимизации стало использование специального объекта classCommon. Все функции описаны в classCommon, а при вызове методов классом, classCommon просто отдаёт ссылку  на необходимый метод. Таким образом, не происходит копирования функций при создании новых экзампляров классов, единственная эталонная функция содержится внутри classCommon, в результате чего снижаются затраты ресурсов приложением.

 

Добавление и редактирование стикеров. Предпросмотр стикеров

 

При включении стикерного режима виртуальной доски осуществляется проверка: не работает ли другой пользователь с выбранной доской в данный момент. В случае, если доска занята, пользователю будет выдано сообщение об этом. В режиме размещения стикеров меню доски выглядит иначе: становятся доступны пункты «добавить текстовый стикер», «добавить графический стикер». При выборе одного из этих пунктов создается и инициализируют новое окно – окно добавления стикера (рис. 4, 5).

Ключевыми свойствами стикера являются его цвет, размер, текст (для текстовых стикеров) и ссылка на изображение (для графических стикеров). Все эти свойства определяются  пользователем в момент создания стикера посредством интерфейса добавления. Доступны десять различных цветов фона стикера и три размера: 64х64, 128х128, 256х256 пикселей. Наличие текста для текстовых стикеров и изображения для графических стикеров является обязательным. Максимальная длина текста – 500 символов, если это условие не соблюдается, текст автоматически урезается до требуемой длины.

 

Рис. 4. Интерфейс создания текстового стикера.

После добавления или редактирования стикера все его параметры передаются редактируемому и только что созданному синхронизируемому объекту стикера. Они устанавливаются в виде синхронизируемых свойств, которые автоматически реплицируются на все клиенты виртуального мира.

 

Рис.5. Интерфейс создания графического стикера.

Для удобного создания и редактирования стикеров релизована возможность предварительного просмотра. Для этого в окнах добавления и редактирования стикера была добавлена кнопка «Предварительный просмотр». После нажатия на эту кнопку, сбоку от окна добавления или редактирования стикера, появляется стикер, который имеет выбранный цвет, размер, текст или картинку. Закрыть предпросмотр можно кликнув левой кнопкой мыши на стикере. При открытом предпросмотре стикера изменения размера, цвета или текста немедленно отобразятся на стикере. Эта возможность была реализована на основе использования тех же самых скриптовых классов CTextSticker и CImageSticker, которые используются для отображения на основной поверхности виртуальной доски. Для этого создается экземпляр класса CImageSticker и CTextSticker соответственно и инициализируется текущими параметрами стикера.

Созданный ранее стикер можно отредактировать, дважды кликнув по нему левой кнопкой мыши. Отредактировать стикер может только тот пользователь, который его создал или автор текущего занятия.

Анализ и оценка разработки

На основании вышеизложенных методов и подходов был реализован инструмент совместной работы «стикеры» для виртуального мира vAcademia (рис. 6). Тестовые испытания показали, что инструмент может использоваться одновременно более чем 10 учащимися без существенного падения производительности работы клиента. Такие результаты не могли бы быть получены без применения специальных методов оптимизации и использования возможностей потоковых процессоров.

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

 

Рис. 6. Пример совместной работы с инструментом «Стикеры» в виртуальном мире vAcademia для организации проектной деятельности студентов.

Таблица 4.

Потребление памяти различным количеством текстовых стикеров

Количество стикеров

1

5

10

20

40

70

100

Без оптимизации

100%

497%

1001%

1998%

3987%

6956%

9873%

С оптимизацией

100%

138%

173%

241%

339%

419%

503%

 

На графике на рис. 7 приведено измерение времени генерации изображения (текстуры) поверхности стикерной доски в зависимости от числа стикеров для реализаций, работающих на центральном процессоре и использующей вычислительные возможности графических потоковых процессоров. При увеличении числа стикеров время генерации изображения на потоковых процессорах растет незначительно, что объясняется значительным временем подготовки к преобразованию TПР и относительно невысокой сложностью вычислений для генерации текстуры (с учетом архитектуры графических потоковых процессоров).

Рис. 7. Зависимость времени генерации текстуры поверхности стикерной доски от количества стикеров для реализаций на центральном процессоре (ЦП) и потоковых процессорах (ГПП).

Заключение

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

Предложенная модель синхронизации стикеров  позволяет работать со стикерной доской одновременно нескольким пользователям, однако в любой момент времени только один из пользователей может работать с отдельно взятым стикером. Метод оптимизации работы инструмента «стикеры» на основе минимизации необходимости повторной компиляции функций в скриптовом языке, применяемом в vAcademia, позволяет как значительно повысить производительность, так и сократить потребление памяти.

Предложенные методы и подходы могут быть использованы при разработке других образовательных виртуальных миров и программных продуктов.

Литература

1.       1. Dalgarno, B., & Lee, M. J.   (2010). What are the learning affordances of 3-D virtual environments? British   Journal of Educational Technology, 41(1), 10-32.

2.       Официальная страница образовательного виртуального мира vAcademia. URL: http://vacademia.com

3.       Быстров Д.А. Оптимизация сетевого трафика сообщений синхронизации объектов образовательного виртуального мира vAcademia. // Международный электронный журнал "Образовательные технологии и общество (Educational Technology & Society)"  2011. - V. 14. - № 3. - С. 439-456. - ISSN 1436-4522. URL: http://ifets.ieee.org/russian/periodical/journal.html

4.       Mikhail Morozov, Alexey Gerasimov, Mikhail Fominykh, and Andrey Smorkalov: "Asynchronous Immersive Classes in a 3D Virtual World: Extended Description of vAcademia," in Marina Gavrilova, Chih Jeng Kenneth Tan and Arjan Kuijper Eds., Lecture Notes in Computer Science (LNCS) – Transactions on Computational Science (TCS), Volume 7848, Issue XVI, 2013, Springer, Series ISSN: 0302-9743, ISBN: 978-3-642-38802-6, Extended version of CW 2012. DOI: 10.1007/978-3-642-38803-3_5

5.       Laurie Williams, Gabe Brown, Adam Meltzer, Nachiappan Nagappan. Scrum + Engineering Practices: Experiences of Three Microsoft Teams. In Proceedings of the 2011 International Symposium on Empirical Software Engineering and Measurement, pp 463-471, IEEE Computer Society, Washington DC, USA.

6.       Сервис работы со стикерами Scrumblr. URL: http://scrumblr.ca

7.       Сморкалов А.Ю. Реализация образовательных инструментов в виртуальных 3D-средах с использованием потоковых процессоров. // Международный электронный журнал "Образовательные технологии и общество (Educational Technology & Society)"  2011. - V. 14. - № 3. - С. 409-425 . - ISSN 1436-4522. URL: http://ifets.ieee.org/russian/periodical/journal.html

8.       Сморкалов А.Ю. Реализация инструмента графического комментирования на виртуальной доске на графических потоковых процессорах. // Международный электронный журнал "Образовательные технологии и общество (Educational Technology & Society)"  2011. - V. 15. - № 4. - С. 444-457. - ISSN 1436-4522. URL: http://ifets.ieee.org/russian/periodical/journal.html