Министерство образования и науки Российской Федерации 
Институт проблем информатики ФИЦ ИУ РАН
Федеральный институт развития образования
Академия повышения квалификации и профессиональной переподготовки работников образования
Московский институт открытого образования     
Автономная некоммерческая организация
«Информационные технологии в образовании»
 Международная научно-практическая конференция
«Информатизация образования: тенденции, перспективы, инновации»
«ИТО-КФО-2015»
27 апреля - 3 мая 2015 года, Крым, Большая Алушта, пос.Малореченское

ДОСТИЖЕНИЕ РЕАЛИСТИЧНОСТИ В КОМПЬЮТЕРНЫХ ИГРАХ ПУТЕМ УСЛОЖНЕНИЯ ОБЬЕКТОВ И ВЫЧИСЛЕНИЙ

Московский Политехнический музей
Любая компьютерная игра это система сложных математических вычислений и объектов. В данной работе, на примере виртуальной on-line игры “The Visker Project”, показывается возможность достижения большей реалистичности задуманного сценария, путем использования в 3D-моделировании и в анимационной графике более сложных объектов и более точных вычислений.

 

Согласно сценарию игры “The Visker Project”, у жителей, живущих на планете Земля, заканчивается энергия, необходимая для обеспечения их жизнедеятельности. В поисках нужной энергии они создают новое вещество Visker. Объекты, состоящие из этого вещества, способны, в результате поглощения окружающей среды и других объектов, выделять нужную людям энергию. Процесс поглощения окружающей среды и других объектов веществом Viskerстановится неуправляемым, и люди вынуждены переместиться в космос и на другую планету. Однако Visker-объекты следуют за ними. Начинается борьба между людьми (on-line игроками) и Visker-объектами. Уничтожение противников поощряется различными бонусами, которые, при переходе игрока на более высокий уровень, возрастают в геометрической прогрессии.

Для 3D-моделирования участников описанного сценария и окружающей их сцены используется программная среда Blender. Этот пакет для создания трехмерной компьютерной графики, анимации и интерактивных приложений, позволяет описать используемые в игре объекты и разместить их на сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению. Заметим, что все используемые в игре трехмерные модели состоят из полигонов (faces), т.е. прямоугольных и треугольных плоскостей, ограниченных линиями и точками. Чем их больше, тем реалистичнее выглядит моделируемый объект. Например, окружность при таком моделировании, это многоугольник с N-углами, координаты которых описываются математическими формулами, в которых X=X(N), Y=Y(N). Причем чем больше N, тем больше детализация и тем реалистичнее выглядит модель окружности.

Следует отметить, что в игре “The Visker Project” Сербаевым Д.Р. предложен простой и быстрый способ детального, но оптимального, с точки зрения памяти (веса), моделирования сложных объектов. Так как создание высокополигонных моделей, c целью детализации исходной модели и приближения ее к материальной реалистичности, приводит к значительному увеличению веса модели, то высокополигонные модели в основном применяются только в качестве рендеров (вырезок) моделей объектов, используемых в игре.

Заметим, что если пять раз выполнить детализацию модели куба весом 0,465Mb, путем разбиения каждой из его граней (полигона) на четыре равных полигона, то ее вес увеличится более чем в два раза. Чтобы этого избежать Сербаев Д.Р лодирует элемент, создавая три перекрещивающиеся плоскости, проходящие через середины сторон граней куба и накладывает на каждую из них рендер высокополигонной модели. Получается хорошо детализированная модель, весом 0,475Mb, близкая по качеству к исходной. При моделировании таким способом Visker-объектов, похожих на колючие шарики неправильной формы, достигается еще большая оптимизация памяти. Так, например, в результате двух детализаций исходного Visker-объекта, весом 2,9 Mb, получается более сложный Visker-объект с весом, более чем в три раза превышающим исходный (10,6 Mb). В тоже время как Visker-объект из трех скрещивающихся полигонов, использующий рендеры наиболее сложной модели, весит только 0,550 Mb.

При разработке компьютерной игры “The Visker Project” в качестве языка программирования использован объектно-ориентированный язык С# (Си шарп), который по своему синтезу наиболее близок к С++ и Java. С помощью этого языка реализовано управление объектами сценария. На С# написаны различные, связанные с объектами, таймеры, использующие математические формулы. Так, например, за здоровьем игрока следит, связанный с ним таймер. Вред здоровью игрока, в зависимости от времени воздействия на него Visker-объектов, возрастает в геометрической прогрессии и подсчитывается по формуле суммы геометрической прогрессии.

Большое значение при разработке игр имеет умение выбирать нужные для достижения реалистичности на сцене размеры объектов и параметров. Этому способствует знание игровой экономики, которая широко применяется для подсчета числа кадров в секунду, нужного числа объектов на сцене, их размеров и параметров, отвечающих за движение объектов. Поясним это на примере зависимости T, времени нахождения снаряда на сцене, от t, интервала времени между двумя последовательными выстрелами. Для минимального (0,3 c.), оптимального для глаза (0,4-0,6 c.) и максимального(3 с.) времени t, время Т равно, соответственно, 4с., 6,6с и 40c. Заметим, что эти данные получены на основании ограничений, накладываемых сценарием игры на сцену и управляемые игроками космические корабли. Согласно этим ограничениям, максимальное число пушек на корабле не должно быть больше 15, а число находящихся на сцене снарядов, выпущенных с одного корабля, не должно превышать 200.

Для поддержки сценария на С# используется игровой движок Unity, который полностью связан со средой разработки. Это позволяет прямо в редакторе испытывать игру. Движок Unity отвечает за размещение обьектов на сцене, создание связей родитель-потомок, компиляцию игровых модулей, созданных в языке С# и программной среде Blender , а также работает с освещением. Положение обьекта на сцене отслеживается камерой. В Unity существует камера, но для корректной работы она требует определенных настроек. Камеры в Unity отрисовывают изображения, начиная с самых дальних. У изображения, которое увидит пользователь ширина больше высоты. Ширина и высота проекционной плоскости задаются с помощью углов (fields of view). При работе над игрой часто приходится изменять углы обзора и дальность прорисовки обьектов. Зная разрешение экрана монитора игрока, углы можно высчитать по теоремам из геометрии.

При работе над виртуальной on-line игрой “The Visker Project” приходится неоднократно сталкиваться с необходимостью усложнения математических объектов и использования многократных расчетов и пересчетов с целью достижения в игре большей виртуальной реалистичности. В работе приводится много примеров, показывающих на необходимость хорошего владения различными разделами математики для разработки хорошего программного продукта.

 

 

 

 

Список использованных источников
  1. Электронный справочник [Электронный ресурс] URL: http://docs.unity3d.com/ScriptReference/
  2. Учебник по 3D редактору Blender [Электронный ресурс] URL: http://b3d.mezon.ru
  3. Ламмерс К. Шейдеры и эффекты в Unity. Книга рецептов. Учебное пособие. - Москва , 2014.
  4. Библиотека материалов Blender [Электронный ресурс] URL: http://matrep.parastudios.de/
  5. Фролов А.В., Фролов Г.В.Язык С#:Самоучитель.М.:Диалог-МИФИ, 2003.-560с.
  6. Павловская Т.А. С#. Программирование на языке высокого уровня. Учебник для вузов.-СПб.:Питер, 2010.-432с.
Вид представления доклада  Устное выступление и публикация
Уровень  Бакалавриат

В статусе «Черновик» Вы можете производить с тезисами любые действия.

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

В статусе «Рекомендован к публикации» тезис публикуется на сайте. Статус «Черновик» может быть возвращен либо по запросу участника, либо при неоплате публикации, если она предусмотрена, либо если тезисы превышают требуемый объем.

Статус «Опубликован» означает, что издана бумажная версия тезиса и тезис изменить нельзя. В некоторых крайне редких ситуацих участник может договориться с Оргкомитетом о переводе тезисов в статус «Черновик».

Статус «Отклонен» означает, что по ряду причин, которые указаны в комментариях к тезису, Оргкомитет не может принять тезисы к публикации. Из отклоненных тезис в «Черновики» может вернуть только Председатель программного или председатель оргкомитета.