Разработка системы моделирования трехмерного виртуального пространства для игровых программ
Создание системы, включающей в себя функции моделирования трехмерного виртуального пространства для игровых программ. Обзор игровых движков: Unity, Unreal Engine, Source. Выбор используемого программного обеспечения и библиотеки трехмерной графики.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.07.2016 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Разработка системы моделирования трехмерного виртуального пространства для игровых программ
Прадхан А.Б.
Введение
В последние годы можно наблюдать значительное увеличение масштабов разработки программного обеспечения игрового характера. В том числе к подобным продуктам относятся и видеоигры, которые в настоящее время благодаря большому спросу на различные игровые системы вносят ощутимый вклад в мировую экономику.
Такая сфера деятельности как индустрия разработки компьютерных игр, зародившаяся во второй половине 70-х годов ХХ века как обычное увлечение энтузиастов, за несколько десятилетий охватила огромную аудиторию. За почти 40 лет индустрия разработки компьютерных игр уже во многом обошла своих конкурентов в сфере мультимедиа и продолжает развиваться. Известно, что в 2013 году эта часть мировой экономики занимала 91% рынка российского цифрового контента [1], а по данным за 2014 год в России игровыми программами пользовались 44,8 млн. (32%) населения страны [2].
Особенность индустрии игр дает возможность реализоваться в этом сегменте рынка как крупным компаниям, так и отдельным разработчикам, создающим свои приложения без финансирования.
Вполне очевидно, что необходимым аспектом для компьютерных игр являются технические устройства, способные реализовывать возможности разработанного продукта. На сегодняшний день к таким устройствам относят как мощные стационарные компьютеры и игровые консоли, так и ноутбуки и мобильные устройства. Компьютерные игры могут создаваться с помощью программного кода с нуля, но в последнее время популярностью пользуются специальные приложения, позволяющие пользователям с минимальными знаниями программирования создавать свои приложения. Речь идет об игровых движках.
Игровой движок существует в рамках игровой программы и предоставляет разработчику набор основных функций, различные готовые решения и другие элементы для корректной работы создаваемого продукта. Иными словами, движком называется набор систем, которые предоставляют программисту возможность использовать уже готовые модули, выполняющие часто используемые алгоритмы приложения. Таким образом, основной процесс разработки, благодаря использованию игрового движка, существенно ускоряется. Это позволяет разработчику сконцентрироваться на творческих моментах разработки приложения.
Цель моей работы заключается в создании такой системы, включающей в себя основные функции моделирования трехмерного виртуального пространства для игровых программ.
1. Специальная часть
1.1 Обзор компонентов игрового движка
Движок игрового приложения представляет собой основу всей программной системы, содержащей только базовую функциональность. Иными словами, код и специфика игрового процесса конкретного приложения не учитываются.
Движок игры содержит в себе совокупность компонентов, как правило, независимых друг от друга, куда могут входить различные модули приложения такие как игровое меню и интерфейс, формирование сцены, загрузка уровней и объектов, воспроизведение звуковых эффектов и многое другое. Не исключено, что некоторые такие составляющие необходимы только для конкретного жанра, и, следовательно, не всегда есть необходимость использовать их все. Из таких нужных частей собирается игровое приложение.
Далее рассмотрим более подробно основные составляющие игрового движка.
1.2 Графический движок
Графический движок, также называемый "рендерер" или "визуализатор", является одним из главных компонентов игрового движка. Это промежуточное программное обеспечение, предназначенное для выполнения задач визуализации, или рендеринга, двухмерной или трехмерной компьютерной графики. Подобные движки используются таких популярных графических пакетах как 3D Studio Max, Autodesk Maya, Zbrush и пр. Но они отличаются от игровых графических движков. Последние должны визуализировать изображение на экране в процессе работы приложения. А что касается программных графических движков, то они могут тратить значительное время на рендер только одного кадра. Также немаловажным отличием является то, что игровые графические движки используют для визуализации ресурсы видеокарты, а программные для этих же целей используют центральный процессор.
Графические движки не используются отдельно от основного движка, так как без дополнительного инструментария невозможно создать готовую игровую программу. Разработчики либо пишут графический движок сами, либо используют уже готовый графический пакет и объединяют его с другими компонентами (физика, звук и др.), создавая полноценный движок.
Рассмотрим составляющие игрового движка, соответствующего современному уровню. Три основных компонента, которые должен уметь визуализировать графический движок это - сцена, интерфейс и курсор [3].
Центром любого графического движка можно назвать его сцену, представляющую собой набор объектов, с которыми взаимодействует пользователь. Мощность движка должна быть достаточной для высокой скорости прорисовки, чтобы обеспечить качественное выходное изображение.
Также одной из самых главных частей приложения является интерфейс. Он позволяет отображать главное меню в проекте, игровой интерфейс, экран сохранения и пр. Интерфейс отвечает за презентабельность всего приложения, ведь именно с его помощью пользователь будет взаимодействовать с виртуальной средой.
Еще один незаменимый инструмент - это курсор. Он облегчает пользователю процесс взаимодействия с объектами виртуальной среды или элементами интерфейса. Важно обеспечить равномерное и плавное передвижение курсора независимо от частоты кадров.
Но помимо этих основных составляющих графической части, нужно учитывать и другие критерии. Движок должен обеспечить возможность пользователю самостоятельно настраивать параметры, связанные с внешним видом приложения и с его производительностью. Все эти настройки вступают в силу при следующей загрузке программы. И здесь необходимо применение инициализационного файла, в котором хранятся настройки для инициализации. Но в таком файле могут возникать ошибки из-за недоработок программы или при ручном редактировании, поэтому состояние файла должно контролироваться при загрузке.
К наиболее известным свободно распространяющимся графическим движкам относят: GLScene, Irrlicht и OGRE. Все они используют возможности OpenGL, а последние два - технологию DirectX.
1.3 Физический движок
Еще одним важным компонентом игрового движка является физический движок, позволяющий в виртуальном пространстве моделировать основные законы физики реального мира. Физические движки так же, как и графические, используются как составные элементы, или подпрограммы, игровых движков, а не как самостоятельные программные продукты.
Также важно отметить, что игровой движок должен достаточно быстро обрабатывать данные, чтобы физические процессы в виртуальной среде воспроизводились с такой же скоростью, с которой они происходили бы в реальности. Но для игрового приложения важна не точность вычислений, а визуальная реалистичность. Поэтому в играх физика объектов подвержена сильной аппроксимации, и также используются приближенные модели и другие приемы. Иначе рендер физических явлений требовал бы много ресурсов компьютера и длился слишком долго, чтобы в реальном времени визуализировать изображение на экране. Иными словами, физический движок дает возможность создать некоторую виртуальную среду с виртуальными объектами, для которых определяются некие общие правила взаимодействия с пользователем или со средой, в той или иной мере приближенные к реальным физическим законам. Когда произведен расчет взаимодействий объектов сцены между собой и с самой средой, физический движок передает геометрические данные приближенной модели виртуального пространства графическому движку.
В настоящее время возможности физических движков позволяют симулировать динамику абсолютно твердого тела, деформируемого тела, жидкостей, газов, тканей и др.
На данный момент самыми популярными коммерческими игровыми физическими движками являются Havok и nVidia PhysX, а среди свободно распространяющихся можно выделить Open Dynamics Engine и Bullet Physics Library.
1.4 Звуковой движок
Также важным компонентом игрового движка является звуковой движок. Он отвечает за воспроизведение звука в приложении (шумовое и музыкальное оформление, голоса персонажей и пр.). Помимо этого, задачей звукового движка может быть имитация некоторых акустических условий, эффект эха, воспроизведение звука исходя из местоположения слышащего и пр.
Именно звуку в последнее время и разработчики приложений, и их пользователи стали уделять свое внимание. В современных проектах этой составляющей игрового приложения выделяется почти до половины бюджета проекта и всех временно-людских ресурсов.
В современных звуковых движках для усиления эффекта погружения пользователя в созданное виртуальное пространство используются технологии, симулирующие реалистичное поведение звука. Например, окклюзия (звук, минующий препятствие) и обструкция (звук, не проходящий через препятствие), реверберация (уменьшение интенсивности звука) и дистанционное моделирование (звук, источник которого удален от слушателя) и масса других звуковых эффектов, которые придают реализм происходящему на игровой сцене.
В качестве примера известных звуковых интерфейсов и программных библиотек звуковых движков можно привести OpenAL, DirectSound3D, EAX и др.
1.5 Язык сценариев
Язык сценариев, называемый также скриптовым языком, представляет из себя язык высокого уровня, использующийся для написания сценариев, или скриптов. Это краткие описания действий, выполняемых системой. Скриптовые языки дают разработчикам возможность объединять между собой различные программные компоненты. Благодаря основным встроенным инструментам программирования, скрипты избавляют разработчика от необходимости их самостоятельного написания, и, следовательно, для решения конкретной задачи требуется меньше кода, что приводит к увеличению производительности.
Также важно отметить, что скриптовый язык обычно интерпретируются, а не компилируются [4]. А это означает, что использование скриптовых языков обеспечивает выполнение быстрой доработки кода без ожидания окончания компиляции, что экономит время разработчика.
Наиболее популярными скриптовыми языками считаются JavaScript, Python, PHP, Ruby и др.
1.6 Игровой искусственный интеллект
Набор различного рода методик, используемых для создания имитации интеллекта в поведении игровых персонажей под управлением компьютером, называется игровым искусственным интеллектом (ИИ). Игровой ИИ заключает в себе как методы традиционного искусственного интеллекта, так и алгоритмы, использующиеся в робототехнике, компьютерной графике, информатике и теории управления.
Реализация искусственного интеллекта оказывает влияние не только на игровой процесс, но и на бюджет и системные требования игры. Поэтому важен баланс между этими требованиями - приложение должно быть интересным и нетребовательным к ресурсам искусственного интеллекта. Так же, как и в физическом движке, необходимы не точные расчеты, а лишь имитация, внешняя схожесть с реальным. Поэтому при создании игрового искусственного интеллекта, как и в физическом движке, активно используются различные эмуляции и упрощения. Например, безошибочное движение и мгновенная реакция, присущие компьютеру, затруднят игровой процесс, так что эти способности искусственно снижаются.
Искусственный интеллект в трехмерной среде может быть на порядок сложнее, чем в двухмерной. В трехмерном пространстве существенно усложняются алгоритмы навигации, поиска кратчайших путей и прочие условия, которые зависят от размерности пространства. Для решения этих задач используются конечные автоматы, шаблоны, нейронные сети и другие методы и алгоритмы, но их реализация гораздо сложнее из-за наличия третьего измерения.
Многопоточность
Процесс, возникающий в операционной системе, как правило, состоит из нескольких выполняющихся параллельно потоков без предписанного порядка во времени. При правильном разделении задач и последовательности их выполнения можно повысить продуктивность использования ресурсов системы. Такое свойство платформы называется многопоточностью. Ее суть заключается в псевдопараллельности исполняемого процесса. Среди всех потоков адресного пространства процесса определяется один главный поток, который обрабатывается в первую очередь.
Свойство многопоточности позволяет добиться увеличения скорости работы программ, а также ускорения отклика приложения на внешние события даже в однопроцессорных системах. Но это приводит и к ряду проблем, с которыми может столкнуться разработчик. Помимо усложнения кода программы и его читабельности в целом встает задача необходимости разработки новых приемов написания приложения, усложняется процесс отладки, увеличивается количество скрытых ошибок. Все это приводит к снижению предсказуемости в работе программы.
1.7 Обзор существующих игровых движков
Чтобы определить необходимые параметры для игрового движка, немаловажным будет изучить рынок и определить на какие игры и игровые движки есть спрос на данный момент. Я рассмотрю различные игровые движки, которые пользуются наибольшей популярностью в настоящее время. О них речь пойдет далее.
1.7.1 Unity
Unity, пожалуй, самый популярный среди начинающих разработчиков игр движок, созданный под операционные системы Windows и OS X. Этот движок пользуется спросом как у крупных компаний (например, Electronic Arts, Blizzard Entertainment, Ubisoft Entertainment и др.), так и у разработчиков небольших игр, благодаря легкости в работе с движком, возможности самостоятельной настройки интерфейса и наличию его бесплатной версии. Редактор в Unity также дает возможность разработчику производить отладку создаваемого приложения прямо в редакторе.
Из сценарных языков движок поддерживает JavaScript, C#, а также и Boo (диалект Python). Разработанные с помощью Unity приложения могут использовать технологию DirectX или OpenGL для создания графики. Симуляцию физических явлений производит движок PhysX от NVIDIA.
Из недостатков этого движка можно отметить ограниченный набор инструментов. Также процесс изготовления игры на данном движке может отнять довольно много времени.
1.7.2 Unreal Engine
Движок Unreal Engine, разработанный компанией Epic Games, является одним из наиболее популярных технологий для создания высококачественных игр, написанных на языке программирования C++. Движок представляет собой систему зависимых модулей, таких как технологии рендеринга (например, Direct3D, OpenGL и др.), воспроизведения звука (например, EAX, OpenAL и др.), распознавания речи и пр. Движок также обеспечивает симуляцию физики, реализацию сетевого режима и создание искусственного интеллекта.
Одним из несомненных плюсов Unreal Engine является визуальный инструментарий для сценарного языка, позволяющий игроку взаимодействовать с виртуальной средой и создавать гибкую реакцию приложения на игровые события. Важно также отметить довольно реалистичную графику игрового движка. Кроме того, он активно используется для работы с трехмерной графикой в сфере кинематографа и образования.
Unreal Engine имеет отличную техподдержку и механизм улучшений, совместимость с различными платформами, широкий ассортимент инструментов, который пополняется с каждым обновлением.
1.7.3CryEngine
Игровой движок CryEngine был разработан немецкой компанией Crytek. Он так же в качестве языка программирования использует С++. CryEngine является кроссплатформенным движком. Последняя версия движка CryEngine 4 ориентирована на персональные компьютеры и на популярные игровые консоли, такие как Xbox от Microsoft Corporation и PlayStation от Sony Corporation. Движок используется в образовательных целях и распространяется бесплатно.
CryEngine имеет набор функций, включающих отличный графический движок и мощное звуковое сопровождение. Также считается, что у этого движка самый простой процесс разработки искусственного интеллекта и создания пользовательского интерфейса. С другой, стороны CryEngine имеет ряд недостатков. Это небрежная техподдержка бесплатной версии и относительно высокий порог вхождения [5] (низкая сложность, упрощенность выпускаемых игр).
1.7.4 Source Engine
Разработанный корпорацией Valve в 2004 году Source Engine представляет из себя игрой движок, написанный на языке программирования C++. К его особенностями относят улучшенную систему физики, основанную на движке Havok, качественную лицевую анимацию, а также простоту и модульную основу. Также к достоинствам движка можно добавить продвинутый искусственный интеллект и динамическое освещение и затенение.
Хотя Source Engine и не обладает передовой графикой, он отличается отличной кинематографической физикой, позволяющей создавать сцены с реалистичным разрушением объектов. Вместо обычных текстур, Source Engine работает с наборами материалов, с помощью которых определяется, из чего сделан объект, какую для него присвоить текстуру. Свойство материала определяет взаимодействия объекта со средой, другими объектами и игровыми персонажами.
Например, как объект будет разламывается при разбивании, как при этом он будет звучать, какой звук он будет издавать при трении с другой поверхностью, какая у объекта масса. Такая система определения свойств объекта в виртуальном пространстве гораздо более гибкая по сравнению с обычными системами, основанными на текстурах.
Движок Source Engine - это коммерческое программное обеспечение, которое предоставляет разработчикам возможность создавать приложения как для Windows, OS X и Linux, так и для PlayStation и Xbox.
1.7.5 Frostbite Engine
Технология Frostbite Engine, разработанная Electrinic Arts, представляет собой подпрограммное обеспечение, включающее набор нескольких программных модулей, таких как графический, физический, звуковой и другие компоненты.
Качественный физический движок технологии Frostbite Engine способен реализовать реалистичную разрушаемость окружения, а его графический модуль предоставляет поддержку различных визуальных эффектов, динамического освещения и затенения, а также отличной техники текстурирования.
Также этот игровой движок способен создавать довольно большие виртуальные локации с максимальным размером до 32 квадратных километров и визуализировать до 4 квадратных километров игрового пространства. Также здесь имеется встроенный собственный звуковой движок.
Frostbite Engine не лицензируется и предназначен только для внутреннего использования компанией. Игровой движок позволяет создавать приложения как для персональных компьютеров, так и для игровых консолей Xbox 360 (Microsoft Corporation) и PlayStation 3 (Sony Corporation) и последующих их версий.
1.7.6 OGRE
OGRE считается одним из лучших свободно распространяющихся объектно-ориентированных графических движков с открытым исходным кодом, написанном на языке C++. Разрабатываемые на нем приложения работают на операционных системах Windows, OS X и Linux. OGRE является не игровым движком, а только графическим и используется для отображения трехмерной графики. Также в этом движке помимо визуализации есть и базовая физика, в которой работают только самые примитивные алгоритмы, такие как проверка столкновений объектов и физика твердых тел, поэтому для серьезных проектов в движок необходимо встраивать более продвинутые физические модули.
Одним из главных преимуществ OGRE, за что он получил большую популярность, является его гибкость, позволяющая встраивать в движок различные библиотеки. В OGRE нет многих функций, но существует множество различных библиотек, адаптированных под технологию OGRE. Например, такие библиотеки, как PhysX SDK и уже упомянутый ранее Bullet Physics Library используются для реализации физики в приложениях.
1.8 Назначение и область применения
Сфера разработки игр - это довольно молодая, но бурно развивающаяся сфера деятельности. Индустрия компьютерных игр представляется совокупностью различных крупных компаний и самостоятельных разработчиков, а также технологий и процессов, которые в совокупности своей образуют полный цикл производства игр, начиная от разработки и заканчивая выпуском готового проекта.
Основная проблема, с которой, как правило, сталкиваются начинающие разработчики игровых приложений - это не только нехватка опыта, но и длительный период разработки программы с нуля, тем более если создание игры происходит в одиночку.
Разработка игрового приложения - это продолжительный и трудоемкий процесс, и необходимы общие знания всех ее этапов: программирование, графическая часть, разработка уровней, звуковое сопровождение, диалоги, тестирование на предмет ошибок, выпуск готового продукта и другие стадии в зависимости от задумки разработчика. Значительно облегчить задачу программиста и взять на себя выполнение части задач может игровой движок, предоставляющий общие алгоритмы разработки и другие подключаемые модули. На программирование в этом случае тратиться гораздо меньше времени, что позволяет разработчику сосредоточиться на творческих моментах создания приложения.
Применение игровых движков сводит работу программиста к минимуму, давая возможность настроить программный модуль под свои нужды, делая тем самым игровой проект более уникальным. Игровые движки представляют собой организованную среду разработки для упрощенного, быстрого создания приложений для поточного производства. Главная их задача заключается в том, чтобы предоставить гибкую программную платформу с возможностью ее неоднократного использования, включающую в себя все требуемые инструменты для создания игрового приложения. Тем самым сокращаются критические факторы в конкурирующей индустрии видеоигр - расходы и время разработки.
Постановка задачи
Задача диплома состоит в разработке самостоятельного технического модуля для удобного и быстрого создания на его основе пользовательских приложений с поддержкой обработки трехмерных сцен в реальном времени. Другими словами, требуется создать трехмерный графический движок для разработки игровых программ. Программный код можно неоднократно использовать в дальнейшем в качестве базы для разработки различных приложений игрового или образовательного характера.
Создаваемый игровой движок должен соответствовать следующим требованиям:
поддержка технологии интерфейса программирования DirectX;
импорт трехмерных моделей, созданных в других графических пакетах;
возможность расширения и модификации;
гибкость использования в различных проектах;
хорошая производительность приложения;
надежность и стабильность работы готового приложения.
В то же время задача дипломного проекта представляет собой разработку не полноценного игрового движка, включающего в себя все модули для создания приложений, а именно основного ядра приложения и его графического компонента.
В главе 1 пояснительной записки были освещены следующие вопросы:
Рассмотрены основные составляющие современных игровых движков. К этим компонентам относятся модули игрового приложения, отвечающие за:
. графику;
. физику;
. звук;
. язык сценариев;
. искусственный интеллект;
. многопоточность.
Проанализированы возможности существующих игровых движков, а также их достоинства и недостатки. Были рассмотрены следующие игровые технологии:
. Unity (Unity Technologies);
. Unreal Engine (Epic Games);
. CryEngine (Crytek);
. Source Engine (Valve);
. Frostbite Engine (Electronic Arts);
. OGRE (The OGRE Team).
Сделан обзор самостоятельного графического движка, как модуля для создания игровых приложений, использующих технологию трехмерного моделирования.
Обоснована актуальность поставленной задачи на базе проделанного анализа.
Определена область применения разрабатываемого графического игрового движка.
На основе подробного анализа предметной области поставлены основные задачи, решения которых представлено в следующей главе данной работы.
2. Конструкторско-технологическая часть
2.1 Выбор используемого программного обеспечения
2.1.1 Microsoft Visual Studio 2012
В качестве среды разработки дипломного проекта была выбрана Microsoft Visual Studio 2012, которая является передовым решением для разработки приложений. Среда разработки позволяет использовать функционал гибкого планирования, что существенно упрощает весь процесс проектирования последовательной разработки.
Visual Studio предлагает разработчику наилучшие решения с использованием специальных технологий, значительно упрощающих и ускоряющих работу программиста. Интерфейс здесь контекстно-зависимый, что дает возможность пользователю приложения настроить свое окно разработки, тем самым не загромождая рабочее пространство. Он также предлагает программисту инструментарий, необходимый на данном этапе разработки. Это значит, что панель инструментов не отображает лишних элементов и не затрудняет поиск нужных инструментов.
Работа в Visual Studio дает возможность контролировать весь жизненный цикл создаваемого приложения, включая этапы от разработки до стадии эксплуатации.
К достоинством этой среды также относят повышенную скорость загрузки рабочего пространства и способность довольно быстро открывать доступ к проектам. Это обеспечивается за счет выполнения всех длительных процессов в фоновом режиме. Это означает, что скорость работы не замедляется, и разработчик не отвлекается от поставленных задач.
Среда разработки Visual Studio, благодаря обновленным инструментам проверки правильности работы создаваемого приложения в реальном времени, дает возможность пользователю моделировать поведение разрабатываемой программы и своевременно обнаруживать недочеты в проекте.
Visual Studio позволяет разрабатывать современные, функциональные и высококачественные приложения для различных технических устройств.
Также важно отметить, что Visual Studio представляет из себя наиболее эффективную среду разработки для работы с платформой Windows, и в частности с ее последними версиями, а также с Windows Phone и Windows Azure.
2.1.2 Autodesk 3ds Max 2012
Один из самых популярных графических пакетов - это Autodesk 3ds Max 2012, включающий целый комплекс решений для задач трехмерного моделирования, скелетной анимации и рендера сцен для игровых разработчиков и дизайнеров.
Это приложение используется в дипломном проекте для моделирования трехмерных объектов сцены и дальнейшего их импорта в среду разрабатываемой игровой программы. 3ds Max позволяет сохранять файл с расширением Х, что обеспечивает быстрый импорт объекта с помощью функций библиотеки трехмерной графики DirectX. Помимо самого объекта в файле может также содержаться информация о материалах и текстурах и другие сведения.
3ds Max обеспечивает пользователя всеми необходимыми инструментами для создания трехмерных объектов и персонажей, текстуризации, анимации, а также предлагает различные режимы для рендера готового проекта.
Также программа предоставляет обширные средства для моделирования (модификации), используя которые можно создать разнообразные по сложности трехмерные объекты. Графический пакет также поддерживает различные методики и механизмы моделирования, например, полигональное, сплайновое, на основе кривых Безье и др.
2.1.3 Paint.net
Для создания двухмерных изображений в дипломном проекте используется бесплатный графический пакет Paint.net, который включает в себя поддержку работы со слоями, неограниченное сохранение действий пользователя с возможностью их отмены, а также гибкий и интуитивно понятный интерфейс.
В данном редакторе могут быть созданы различные двухмерные элементы игровой программы, например, элементы меню, текстуры, курсор, различные индикаторы информации (HUD).
Выбор этого приложения так же связан с возможностью сохранять файлы в удобном для дальнейшего импорта расширении Direct Draw Surface (.dds).
Также Paint.net имеет большую библиотеку встроенных спецэффектов и фильтров для коррекции, размытия, искажения, создания шума и пр.
2.2 Выбор языка программирования
При выборе языка программирования исключены языки и оболочки программирования, не предназначенные под ОС Windows и узкоспециализированные языки, к которым относятся Java, PHP, Python, Perl и пр. Visual Basic не подойдет для серьезных целей из-за медлительности работы программы. Delphi так же не пригоден из-за большого размера конечных файлов. Лучше всего для создания консольных и графических приложений подойдет Visual C++ ввиду большого количества библиотек, созданных для него. С хорошим знанием языка на нем можно реализовывать эффективные приложения. Это достигается путем соблюдения основных принципов оптимизации.
Язык С++ поддерживает процедурное, объектно-ориентированное и обобщенное программирование. C++ широко используется для создания различных приложений и является, пожалуй, одним из самых востребованных языков.
На языке С++ можно создавать операционные системы, прикладные программы, драйвера, высокопроизводительные сервера, приложения развлекательного характера и пр.
При разработке программ на C++ также важно учитывать некоторые детали, связанные с управлением памятью. Например, конструирование объектов классов может потребовать дополнительную память.
Одним из недостатков разработки приложений на C++ часто считается указание на виртуальные функции, которые замедляют производительность разрабатываемой программы.
Для вызова виртуальной функции для объекта компилятор обращается к таблице виртуальных функций, получает указатель на метод и переходит по полученному адресу. Это схоже с обычным вызовом функций, за исключением перенаправления из таблицы виртуальных функций. Многие серьезные приложения, написанные на C++ используют такой метод, поэтому идея оптимизации заключается в избегании вызова таких функций в критических участках программы.
2.3 Выбор библиотеки трехмерной графики
В настоящее время наиболее популярными библиотеками трехмерной графики являются Direct3D и OpenGL. Оба интерфейса программирования предоставляют доступ к возможностям аппаратного ускорения трехмерной графики.
Direct3D - это разработка Microsoft Corporation, которая была создана специально для операционной системы Windows. Возможности этой технологии также доступны и на Microsoft Xbox, но не на других платформах. Что касается OpenGL, то эта технология, разрабатываемая Khronos Group, доступна на большом количестве платформ.
В основе Direct3D лежит технология COM, которая дает возможность работы с объектно-ориентированными языками, поддерживающими его. Причем Direct3D является одним из первых дополнений Windows с этой технологией. Direct3D включает в себя набор интерфейсов для работы с графикой. Например, интерфейсы для работы с текстурами, вершинными буферами и шейдерами и пр. Работа с ними осуществляется через функции, предоставляемые интерфейсами.
Многие рассмотренные ранее популярные игровые движки, такие как Unity, Unreal Engine, CryEngine, Frostbite Engine, поддерживают Direct3D.
В дипломном проекте используется Direct3D. Основная причина отказа от OpenGL это отсутствие комплекта средств разработки. Direct3D заключает в себе схожие возможности различных графических систем в едином интерфейсе программирования приложений.
2.4 Разработка системы моделирования
В области разработки игрового графического движка множество различных решений одних и тех же задач. Каждый из способов их решения имеет как ряд преимуществ, так и недостатки. Некоторые решения направлены на производительность, а некоторые на удобство использования разработчиком.
Основные функции, поддерживаемые игровым графическим движком, являются получение и обработка информации от пользователя и визуализация виртуального пространства. Помимо этого, необходимы классы для управления объектами, содержащимися в виртуальном пространстве, например, загрузка полигональной сетки моделей объектов, ссылки на эффекты, хранение информации о расположении и визуализация объектов.
Итак, графический движок должен создавать экземпляры классов для объектов игры, инициализировать необходимые переменные и отображать сцену.
Базовое приложение содержит в себе функции инициализации окна программы и подключаемых модулей. При запуске приложения происходит настройка параметров формы, где задаются все ее основные параметры - стили, заголовки, наличие меню и т.д.
После создания класса окна происходит его отображение, а далее загрузка основных интерфейсов. Сначала происходит инициализация Direct3D и, если она прошла успешно, то после инициализируется графический движок. Иначе, программа отображает сообщение об ошибке и завершает работу (рис.1).
Рис 1. Окно ошибки инициализации.
Рис. 2. Алгоритм работы базового приложения.
После инициализации графического движка происходит формирование сцены. Общий алгоритм работы базового приложения приведен на рис. 2.
Далее более подробно рассмотрим, какие задачи выполняются на этапах инициализации и формирования сцены.
Инициализация интерфейса.
Для создания и настройки сцены используется технология DirectX, в частности, в моем проекте это интерфейс Direct3D.
Инициализация интерфейса Direct3D осуществляется с помощью функции DXInit со следующими параметрами:
IDirect3D9 **dxInterf (указатель на указатель, в котором хранится интерфейс IDirect3D версии 9);
IDirect3DDevice9 **dxDev (указатель на указатель, в котором хранится интерфейс устройства IDirect3DDevice версии 9);
HWND hWnd (окно для отображения сцены);
DWORD width и DWORD height (ширина и высота окна);
BOOL fScrn (запрос режима окна).
Это операция выполняется один раз при старте приложения и происходит сразу после создания окна программы. Также в дальнейшем при необходимости возможно добавить диалоговое окно настройки работы приложения (разрешение экрана, оконный режим, формат пикселя и пр.)
В самой функции создается и сохраняется экземпляр интерфейса для создания трехмерных объектов и настройки окружения, а также определяются параметры представления: формат пикселя, переключение буфера, режим окна, частота обновления экрана и интервал представления.
Также создается устройство для отображения графической части приложения на экране и параметры проекции трехмерных объектов на плоскость монитора пользователя. Для последнего используется матрица проекции и функция D3DXMatrixPerspectiveFovLH() с указателем на структуру D3DXMATRIX и четырьмя числовыми значениями: угол обзора, соотношение сторон (ширина и высота экрана) и расстояния до ближней и дальней плоскости отсечения (рис. 3).
Рис. 3. Параметры камеры сцены.
Указанные параметры показывают, какая часть пространства будет отображаться на экране у пользователя.
Плоскости отсечения - это параметр, который определяет виден ли объект камере и есть ли необходимость его отображать [6]. Иными словами, находится ли часть сцены в поле зрения игрока.
Если объект находится между ближней точкой отсечения и точкой обзора или дальше, то объект расположен слишком близко или находится за камерой, и его отображение не требуется.
Если объект находится за границей дальней плоскости отсечения, то он расположен слишком далеко, что также не требует отображения такого объекта, пока он не окажется в зоне видимости.
Код программы приведен в Приложении 2.
В общем инициализация интерфейса проходит по следующим этапам:
проверка наличия интерфейса Direct3D (если такового не было найдено, то функция возвращает ошибку, после чего отображается сообщение о неисправности);
заполнение параметров отображения;
инициализация оконного режима;
создание 3D устройства;
определение перспективы камеры.
Отображение сцены и объектов
Формирование сцены происходит в функции CreateScene. Здесь проходят следующие этапы:
предварительные расчеты;
очистка буфера;
формируется сцена с помощью метода renderAll графического движка;
завершение формирования сцены;
отображение сцены с помощью метода Present.
Код функции формирования сцены приведен в Приложении 1.
Загрузка объектов сцены может производится с помощью функции LoadMesh (Приложение 2). С помощью нее загружается сетка (или меш) - совокупность вершин, ребер и полигонов, которые составляют один трехмерный объект. В этой функции загружается не только сетка объекта из файла, но также, если необходимо, его текстура и материал, которые сохраняются в массив.
Общий алгоритм работы функции LoadMesh следующий:
загрузка сетки объекта из файла формата .Х;
создание массива с указанием текстур и материала загруженного объекта;
цикл заполнения массивов текстур и материалов.
Отображение загруженного объекта происходит в функции CreateScene.
Также важно определить расположение объектов и самой сцены, и их масштаб. Подгружаемые из файла модели могут быть разных размеров или располагаться в пространстве под разными углами. Для решения этих проблем используется мировая матрица с размерностью 4х4.
Для смещения по одной из трех осей OX, OY и OZ, изменяется ячейка последней строки матрицы б, в или г соответственно.
Производя математические операции над матрицами можно сочетать перемещение, масштабирование и поворот объекта.
Также необходимо настроить точку обзора, из которой пользователь будет наблюдать за виртуальным пространством. Для этого используется матрица вида (отображения), которая определяет направление просмотра виртуальной сцены. Размерность у этой матрицы такая же, как и у мировой. Изменяя матрицу вида, можно перемещать точку обзора по трехмерной сцене.
Управление объектами.
За управление объектами в виртуальном пространстве отвечает модуль dxObj (Приложение 3) с классом cObj. В нем хранятся следующие данные:
устройство DirectX;
сетка объекта с текстурами и материалами;
эффекты;
положение источников освещения;
положение самого объекта.
Иными словами, на модуле dxObj лежит задача отображения основных параметров объекта, таких как материалы и текстуры, и реакции на окружающую среду, например, на источники освещения. Класс объекта самостоятельно прорисовывает сетку модели и учитывает количество и положение всех источников освещения, воздействующих на нее.
Отображение объекта происходит с помощью метода Render, которому передается индекс его эффекта, использующегося при рендере. Если эффект с указанным индексом существует, то вызывается метод posObj, с помощью которого устанавливается мировая матрица объекта. Затем в методе setShader устанавливаются параметры шейдера, который визуально определяет поверхность объекта. Эта технология позволяет добиться реалистичного освещения. Параметры задаются в виде конструкции типа:
if (dxEffect[iEffect] -> IsParameterUsed ("название_параметра",
Название_техники [iEffect]))
dxEffect[iEffect]->SetValue("название_параметра ",
&значение, D3DX_DEFAULT),
где dxEffect - объект интерфейса ID3DXEffect, а iEffect - его индекс. Здесь после проверки наличия шейдера устанавливается указанный параметр.
2.5 Графический движок
Роль графического движка играет модуль dxGraph (Приложение 4). Он отображает сцену, создает и уничтожает объекты в ней. Класс dxGraph содержит следующие свойства:
vAngle (угол просмотра камеры);
objEffect (массив указателей на интерфейсы ID3DXEffect с шейдерами);
objTechnic (массив техник отображения для шейдеров);
objDev (указатель на устройство Direct3D);
obj (массив объектов типа dxObj с объектами сцены);
objVertex (указатель на интерфейс IDirect3DVertexDeclaration9 с описанием вершин для работы шейдера).
Также в модуле dxGraph содержатся метод initSceneObj для инициализации объектов сцены и происходит загрузка эффектов, а также initObj для инициализации отдельного объекта. В зависимости от его типа загружается сетка, назначаются эффекты и техника отображения, а затем объекты размещаются на сцене с указанием их мировых матриц. Для загрузки шейдеров используется метод loadShader, а для финального отображения всех объектов сцены - renderAll.
Так как большинство объектов сцены имеют схожий алгоритм отображения они могут обойтись одним эффектом. Если каждый объект пространства будет самостоятельно загружать свой эффект, то это может негативно сказаться на производительности приложения в целом.
Во-первых, то это приведет к излишнему расходу памяти, так как для каждого объекта создается свой экземпляр интерфейса ID3DEffect. Чтобы избежать этого создан один такой интерфейс, хранящийся в движке приложения, а объектам присваиваются ссылки на него.
Во-вторых, будет наблюдаться расход процессорного времени. Это происходит из-за многократной загрузки шейдеров, что является трудоемкой для процессора задачей. Если обеспечить ссылку на один подгружаемый эффект, это ускорит работу приложения.
Для запуска движка в базовом приложении необходимо объявить глобальную переменную для хранения указателя на экземпляр модуля GraphicModule:
GraphicModule* gm.
Далее, после инициализации интерфейса Direct3D, необходимо указать устройство:
gm = new GraphicModule(dxDev).
Для отображения сцены в цикле обработки сообщения требуется вызвать метод CreateScene. В нем после начала формирования сцены с помощью метода BeginScene устройства dxDev очищается буфер, затем вызывается метод renderAll, а далее завершается формирование сцены и выводится результат.
В общем для отображения объекта на сцене необходимо пройти следующие этапы:
создание массива описания вершин для отображения объекта с помощью шейдеров;
загрузка сетки объекта
загрузка эффектов объекта;
загрузка техники отображения объекта;
инициализация объекта;
настройка видовой матрицы для объекта;
установка формата вершин;
вызов метода renderAll для визуализации объекта на сцене.
Контрольный пример
Пример отображение отдельного объекта.
В качестве примера отображения объекта сцены, приложение визуализирует модель шахматной фигуры, созданной мной с помощью графического пакета 3ds Max и сохраненную в формате файла .X.
Текстура для объекта была модифицирована в редакторе Paint.Net.
Текущее значение количества объектов сцены cur_nObjects приравнивается к единице. Для инициализация объекта подгружаются его сетка из файла chess.x, а также эффект и техника отображения.
С исходными настройками модель была расположена под неверным углом, чтобы правильно позиционировать ее в пространстве была изменена матрица отображения объекта:
D3DMATRIX Position =
cos(д), 0, -sin(д), 0,
0, 1, 0, 0,
sin(д), 0, cos(д), 0,
0, 0, 0, 1,
где д - угол поворота, который в моем случае равен 90 градусам. Такая матрица разворачивает объект по оси OY на указанный угол поворота.
Результат работы приложения на рис. 4.
Пример отображения сцены.
Для отображения самой сцены применяется та же техника. Сцена - такой же объект, внутрь которого помещена камера.
Для примера сцены была создана комната из примитива Box графического пакета 3ds Max. Чтобы наложенные текстуры отображались внутри объекта, к нему был применен модификатор Normal, с помощью которого нормали модели были инвертированы и направлены к центру объекта.
Рис 4. Окно с рендером объекта.
Его матрица отображения представлена далее:
D3DMATRIX Position =
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 10, 0, 1,
В последнем ряду матрицы значение 10 означает сдвиг по оси OY. Это сделано для того, чтобы камера не находилась слишком высоко от пола сцены.
Результат работы приложения на рис. 5.
В качестве контрольного примера реализуется загрузка сцены с объектом в нем. Здесь количество объектов сцены cur_nObjects увеличивается до 2.
Для удобства объекты группируются по типам. В моем случае это typeROOM и typeCHESS для сцены и объекта соответственно. Тип объектов присваивается при их инициализации в функции initObj, где каждому в зависимости от типа загружается сетка из файла, эффекты и техника отображения.
Рис 5. Окно с рендером сцены.
Пример отображения сцены с объектом.
Позиционирование объектов в пространстве так же задается в виде матриц. Например, чтобы расположить модель шахматы на полу комнаты, используется следующая матрица:
D3DMATRIX matWorld =
0.1f, 0, 0, 0,
0, 0.1f, 0, 0,
0, 0, 0.1f, 0,
0, -10, 0, 1,
Как видно из матрицы выше модель оказалась слишком большой для сцены, поэтому объект был масштабирован. Его координаты по оси OY также были изменены, чтобы модель шахматы не находилась в воздухе, а стояла на поверхности.
Результат работы приложения на рис. 6.
Рис 6. Окно с рендером сцены и объекта.
Данный пример демонстрирует возможности созданного графического движка на базе технологии DirectX и ее интерфейса Direct3D. Как было показано, в программе поддерживается загрузка внешних файлов, что дает возможность использования различных графических пакетов с разнообразным и сложным инструментарием для создания моделей объектов для приложения. Гибкая система позволяет использовать только необходимые модули или включать их в разрабатываемые приложения. Во время проведения контрольных примеров наблюдалась стабильность и хорошая производительность приложения.
В результате выполнения конструкторско-технологической части были получены следующие результаты:
Выбрана среда для разработки создаваемого приложения Microsoft Visual Studio 2012. Были также приведены основные преимущества данной системы программных средств.
Описаны другие программы, которые использовались в процессе работы над проектом, а именно:
. Autodesk 3ds Max 2012;
. Paint.net.
Был обоснован выбор языка программирования путем исключения неподходящих для поставленной задачи вариантов. В результате был выбран язык С++.
Проведено сравнение двух трехмерных графических библиотек - DirectX и OpenGL. После анализа был выбран интерфейс Direct3D технологии DirectX.
Рассмотрен принцип визуализации трехмерного виртуального пространства.
Определен общий алгоритм работы основного приложения.
Описана инициализация графического интерфейса Direct3D и других программных модулей приложения.
Приведен контрольный пример работы приложения, созданного с использованием разработанной программы. В результате тестирования получились следующие результаты:
успешный импорт объекта, созданного в другом графическом пакете, в виртуальную среду;
успешная загрузка сцены в трехмерное пространство;
успешное создание сцены с объектом.
3. Экология и охрана труда
"Охрана труда - система сохранения жизни и здоровья работников в процессе трудовой деятельности, включающая в себя правовые, социально-экономические, организационно-технические, санитарно-гигиенические, лечебно-профилактические, реабилитационные и иные мероприятия." [7]
Условиями труда называется комплекс факторов рабочей среды и трудовой деятельности, оказывающих влияние на качество работы и состояние здоровья человека. Разделяют вредные, опасные и безопасные условия труда.
Под вредным подразумевают производственный фактор, который, воздействуя на работника, может отразится на его здоровье и привести к заболеванию.
К опасному производственному фактору относятся факторы, воздействие которых на человека может привести к его травме.
В случае если условия труда не соответствуют описанным выше факторам либо степень их воздействия не превышает установленных норм, такие условия труда называются безопасными.
Объединение взаимосвязанных и взаимодействующих друг с другом элементов называется системой управления охраной труда. Эта система устанавливает цели и задачи в трудовой области у конкретного работодателя, и в том числе процедуры по выполнению этих целей. Стандарты и нормы такой системы по управлению охраной труда определяются федеральным органом исполнительной власти, который обеспечивает выполнение типовых положений об охране труда.
Требования, обеспечивающие охрану труда, включают в себя и нормативы охраны труда, определенные государством и обеспечивающие безопасность в рабочей среде, а также правила и инструкции, установленные на конкретном производстве. Эти правила и инструкции называются стандартами безопасности труда. Они направлены на обеспечение безопасности жизни и сохранение здоровья работников во время их работы и регламентируют выполнение всех нормативов в области охраны труда.
Государственная политика осуществляет охрану труда в различных направлениях, принимая и реализуя федеральные и другие нормативные правовые акты в этой области, а также различного рода программы, улучшающие условия работы.
Несомненно, в первую очередь должна обеспечиваться безопасность жизни и здоровья работников. За выполнением всех норм охраны труда следят управление охраной труда и федеральный надзор. Они так же обеспечивают не только соблюдение всех инструкций, но и защиту рабочих, в случае невыполнения каких-либо условий безопасности труда. Контроль также обеспечивается за счет проведения проверок, в ходе которых выясняется о соблюдении всех норм и требований по охране труда. Для этого производится государственная экспертиза, в ходе которой устанавливается так называемая оценка условий труда.
Также, чтобы снизить вероятность несчастных случаев, на производстве проводится их профилактика, расследование и учет. Интересы сотрудников, пострадавших на производстве, защищены законом. Если работник имеет дело с вредными или опасными условиями, то устанавливаются гарантии и компенсации за такую работу.
Крайне важно также, чтобы в опасных и вредных условиях производственного процесса работникам выдавались средства защиты (коллективной или индивидуальной) за счет средств нанимающей компании.
Также важен не только контроль исполнения правил и норм охраны труда отдельного производства или отдельной страны, но и распространение передового опыта, что может поспособствовать улучшению условий производства и охраны интересов рабочих.
За выполнением норм также следят специалисты по охране труда, подготовка которых происходит за счет финансирования государства. За счет государства также проводят различные мероприятия по охране труда, повышение квалификации специалистов, организуется государственная статистическая отчетность об условиях труда, травматизме на производстве, заболеваемости рабочих и пр.
Международное сотрудничество и единая ее информационная система по охране труда и способствует эффективной налоговой политике, а это стимулирует разработку и использование безопасных технологий, производство и совершенствование средств индивидуальной защиты, создание оптимальных условий труда работников.
3.1 Безопасность труда при работе с ПЭВМ
Одним из важнейших элементов организации труда и производства, обеспечивающим его эффективность, являются безопасные условия работы. Они могут быть обеспечены в случае, если вся система производственных факторов рабочей среды и рабочего процесса, которые могут оказать свое влияние на работоспособность и состояние здоровье человека, исключает влияние на рабочих вредных или опасных факторов, описанных выше. Либо, как уже говорилось ранее, если уровни их воздействия не превышают установленной нормы.
В соответствии с Санитарными правилами СанПиН 2.2.2/2.4.1340-03 от 3 июня 2003 г. "Гигиенические требования к персональным электронно-вычислительным машинам (ПЭВМ) и организации работы" (утв. Главным государственным санитарным врачом РФ 30 мая 2003 г.) определяются безопасность труда при эксплуатации ПЭВМ. Эти правила также включают и определенные требования к проектированию и эксплуатации персональных компьютеров, используемых на рабочем месте, в процессе обучения или дома, а также требования к организации рабочих мест, строительству и реконструкции помещений, в которых эти ПЭВМ будут эксплуатироваться.
...Подобные документы
Анализ существующих программ трехмерного моделирования. Сравнение программ для создания трехмерной графики. Технологии трехмерного моделирования в Cinema 4D. Проект создания текстовой анимации на основе инструментов "Organicball", "Formula" и "Cloud".
дипломная работа [2,4 M], добавлен 14.11.2017Особенности и возможности программного обеспечения, необходимого для построения трехмерной модели (на примере вентиля - клапана). Ознакомление с инструментарием программного обеспечения профессионального трехмерного и двумерного моделирования AutoCAD.
курсовая работа [3,4 M], добавлен 13.12.2020Обзор популярных игровых движков для разработки 2D и 3D игр, среды разработки и конструкторы компьютерных игр. Основные этапы и концепции разработки игровых программ под платформу Windows. Документация и современные методы управления рабочими группами.
курсовая работа [62,7 K], добавлен 11.01.2016Анализ виртуального пространства и реальности. Особенности информационной культуры субъектов виртуального пространства. Телевидение, кабинные симуляторы, системы "расширенной" реальности и телеприсутствия. Настольные ВР-системы, социальные сети.
презентация [6,0 M], добавлен 15.11.2017Рзработка библиотеки, которая позволит моделировать динамику частиц в трехмерной графики. Выбор средств и методов разработки. Варианты моделирования систем частиц. Моделирование на вершинном шейдере. Диаграммы класса Particle System и PSBehavior.
курсовая работа [4,4 M], добавлен 07.02.2016Обзор и анализ предметной области. Актуальность проекта, сравнение аналогов, сферы применения. Виртуальная реальность: CAVE-системы, Leap Motion. Выбор методов построения системы. Обзор игровых движков. Использование баз данных. Разработка интерфейса.
курсовая работа [4,6 M], добавлен 30.06.2017Особенности и преимущества 3D-моделирования. Базовые функции нелинейного редактирования и комбинирования видео. Проектирование 3D-модели для игрового проекта по созданию дома и моста. Просмотр взаимодействий с игроком объектов в Unreal Engine 4.7.
дипломная работа [3,6 M], добавлен 14.06.2015Обзор программ для сшивания фотопанорам. Создание фотопанорам для виртуального тура. Выбор и загрузка изображений. Автоматическое склеивание снимков. Указание дополнительных контрольных точек. Объединение панорам в виртуальный тур, его реализация.
курсовая работа [3,5 M], добавлен 22.01.2016Рассмотрение системы трехмерного твердотельного моделирования. Анализ средств программирования, информационное обеспечение и описание объектной модели Компас-3d. Описание алгоритма программы в среде Borland Delphi 7 и составление инструкции пользователя.
дипломная работа [1,7 M], добавлен 03.07.2012Создание образа диска с помощью программного продукта Nero для резервного копирования, распространения программного обеспечения, виртуальных дисков, тиражирования однотипных систем. Возможности Alcohol 120%, Daemon Tools для эмуляции виртуального привода.
курсовая работа [188,9 K], добавлен 07.12.2009Работа с инженерной программой LVMFlow - профессиональной CAM-системой трехмерного моделирования литейных процессов. Автоматизация рабочего места технолога-литейщика. Расчет процессов кристаллизации металлов и сплавов. Методы элементов конечных разностей.
курсовая работа [821,6 K], добавлен 13.12.2013Исследование и оценка возможностей работы со следующими разделами библиотеки приложения Simulink пакета программ Matlab: Source, Sinks, Continuous, Math Operation. Функции по представлению полученных в результате моделирования данных в графическом виде.
лабораторная работа [438,9 K], добавлен 23.09.2022Общая характеристика игровых движков, история их создания и совершенствования, современное состояние и перспективы. Сущность и значение шейдерных эффектов, программирование данных программ. Механизм и этапы разработки 3D-приложения, его тестирование.
дипломная работа [2,2 M], добавлен 16.06.2011Создание тестирующих и игровых программ. Степень сложности и художественного оформления интерфейса пользователя. Создание справочной системы. Корректное отображение символов. Создание системы управления базами данных в среде Delphi и таблиц базы данных.
методичка [1,0 M], добавлен 24.10.2012Характеристика программы для реализации проектов, созданных в формате трехмерного моделирования. Классификация кривых 2-го порядка. Построение окружности, эллипса, гиперболы и параболы в системе координат с помощью программного обеспечения 3D MAX.
контрольная работа [667,7 K], добавлен 18.01.2014Понятие системы геометрического моделирования. Рассмотрение особенностей формирования изображения объекта с помощью трехмерного геометрического моделирования. Идея каркасного моделирования. Средства реализации каркасной технологии в Autodesk Inventor.
курсовая работа [623,9 K], добавлен 14.06.2015Пиковые нагрузки во время проведения турниров. Анализ существующих систем проведения соревнований роботов: Java Robocode, Pascal Robotwar, Snake Battle, Microsoft Robotics Developer Studio. Соревнования по программированию компьютерных игровых стратегий.
дипломная работа [3,7 M], добавлен 06.03.2013Аналитический обзор программ геологического моделирования. Программа Petrel как приложение на базе персонального компьютера (ПК) для интерпретации и моделирования пласта. Исследование возможностей Petrel для геомоделирования, основные модули программы.
курсовая работа [33,4 K], добавлен 15.11.2012Принципы построения и программирования игр. Основы 2-3D графики. Особенности динамического изображения и искусственного интеллекта, их использование для создания игровых программ. Разработка логических игр "Бильярд", "Карточная игра - 50", "Морской бой".
отчет по практике [2,3 M], добавлен 21.05.2013История появления и функции трехмерного геологического моделирования. Изучение основных задач эксплуатации геолого-технологических моделей. Информационные аспекты эксплуатации программного обеспечения. Конвертирование и загрузка полномасштабных моделей.
реферат [30,7 K], добавлен 03.05.2015