Разработка модуля освещения способствующего увеличению реалистичности трехмерных изображений
Возможности программирования Maya для разработки модуля освещения. Простота применения Maya Embedded Language. Построение сцен с учетом реалистичности и правильным соотношением света, теней, оттенков цветов. Расчет экономической эффективности проекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 16.10.2017 |
Размер файла | 4,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Построение реалистичных изображений
- 1.1 Простая модель освещения
- 1.2 Возможности программирования Maya
- 1.3 MEL
- 2. Построение реалистичных сцен и создание модуля освещения
- 2.1 Обзор интерфейса Maya
- 2.2 Интерфейс Maya
- 2.3 Построение сцен
- 2.4 Освещение, создание модуля
- 3. Технико-экономическое обоснование проекта
- 3.1 Методика оценки экономической эффективности проекта
- 3.2 Исходные данные, используемые для расчета
- 3.3 Расчет экономической эффективности
- 4. Охрана труда и безопасность жизнедеятельности
- 4.1 Надзор и контроль за соблюдением законодательства по охране труда
- 4.2 Организация условий труда на рабочем месте, условия труда
- 4.3 Производственная санитария микроклимат производственных помещений
- 4.4 Характеристика объекта исследования
- Заключение
- Список литературы
- Приложение
Введение
Говоря об изменениях в нашем мире, можно смело сказать, что ни одна сфера человеческой деятельности не развивается столь динамично, как индустрия компьютерной графики. Эта по-прежнему сравнительно молодая отрасль уже сумела проникнуть в самые различные области. Среди них моделирование, анимация и визуализация. Они не стоят на месте, и развитие каждой из них - путь совершенствования и прогресса. В результате сегодня мы наблюдаем такие потрясающе реалистичные и правдоподобные изображения, каких не видели никогда прежде. И никогда прежде научные имитационные эксперименты не отличались такой сложностью. И никогда прежде не было таких интерактивных игр с эффектом погружения, как сейчас.
Если в индустрии компьютерной графики в чем-то и можно быть уверенным, то лишь в том, что изменения не просто неотвратимы, они продолжаются, и их интенсивность все увеличивается. Устойчивый рост прошлых лет меркнет в сравнении с нынешней скоростью появления и воплощения в жизнь новых изобретений и идей. Движущая сила этого прогресса - ненасытное желание людей получать более сложные изображения и испытывать более сильные ощущения. Это желание беспредельно, и индустрия компьютерной графики постоянно торопится, пребывая в погоне за «максимальными» переживаниями. На переднем крае этой непрерывной волны изменений всегда находилась компания Alias | Wavcfront. Ее приверженность стратегии, нацеленной на долгосрочные исследования и разработки, позволила создать ряд самых современных инструментов и технологий из числа тех, что появились на сегодняшний день. Одна из таких технологий - Maya.[5]
Актуальность данного дипломного проекта в том ,что компьютерная графика имеет широкий диапазон использования в различных структурах и сферах деятельности. Перечислим основные возможности и области применения компьютерной графики.
Мультфильмы и кинофильмы. Одной из основных областей применения компьютерной графики является создание мультфильмов, на Maya таких как «Жизнь насекомых» или «Шрек». Кроме того, Maya позволяет комбинировать фотореалистичные элементы с обычным фильмом, получая, таким образом эффекты, которые физически невозможно, слишком дорого или же слишком опасно воспроизводить в реальности. Это могут быть взрывы, наборы различных фоновых изображений, полеты космических кораблей и многое другое. Не так давно компанией SquareSoft был выпущен фильм «Последняя фантазия» или «Final Fantasy» , в котором использовались исключительно компьютерные модели.
Компьютерные игры. По мере роста мощности персональных компьютеров и повсеместного использования мощных ЗD-ускорителей, разработчики игр стали использовать такие программы, как Maya, для создания различных элементов игрового поля. Раньше программы для работы с трехмерной графикой применялись только для получения статичных фоновых элементов и фильмов, показываемых при переходе с одного уровня на другой. Большинство современных компьютерных игр содержит огромное число элементов, объектов и текстур, созданных с помощью таких приложений, как Maya. Существует даже специальная версия программы, называемая Maya Builder, которая предназначена специально для разработки компьютерных игр.
Реклама на телевидении. В телевизионной рекламе часто используется трехмерная анимация. Первоначально она применялась для анонсирования телепрограмм или фильмов и представляла собой большие выпуклые буквы, летящие по воздуху. Постепенно вид рекламы все более усложнялся. Компьютерная графика идеально подходит для данной области, потому что позволяет моделировать любые необычные объекты, обращающие на себя внимание зрителя.
Рекламные ролики. В этой области Maya используется для создания бросающихся в глаза эффектов. Эффектов, которые завораживают взгляд и заставляют удивляться от реалистичности объектов и товаров предлагаемых в том или ином рекламном ролике. В последнее время многие клиенты рекламных компаний предпочитают исключительно компьютерную графику, нежели отснятый видео ролик, так как реклама, созданная благодаря компьютерной графики, является более востребованной среди потребителей.
Архитектура и дизайн интерьера. Для предварительной демонстрации заказчикам обычно подготавливается набор изображений, плакатов или фильм, который представляет собой виртуальную версию архитектурного сооружения, будь то квартира или целое здание вовсе.
Судебная медицина. Иногда в процессе судебного разбирательства возникает необходимость продемонстрировать присяжным воссозданную последовательность событий. Обычно это касается автомобильных аварий. После чего учитывая все факторы и показания моделируется ситуация преступления или его отсутствия.
Промышленные разработки. Как и в архитектуре, в промышленности иногда требуется наглядно представить результаты разработок. Это быстрее и дешевле всего можно сделать с помощью Maya. Этим способом моделируются такие продукты серийного производства, как автомобили, лодки, флаконы для духов, миксеры и т. д. Существует специальная программа Studio Tools производства компании AliasWavefront, предназначенная для подобных задач, но некоторые аниматоры предпочитают в данном случае использовать Maya.
Промышленная анимация. Это понятие включает в себя разработки для бизнес-презентаций -- анимированные графики, образные объяснения, различные эффекты и т. п.
Практическая ценность дипломного проекта.
Получение модуля освещения способствующего увеличению реалистичности трёхмерных изображений.
Цель
1. Освоение программного продукта необходимого для реализации поставленной задачи.
2. Обладание навыком моделировать трёхмерные реалистичные модели.
3. Построения сцен с учётом реалистичности и правильным соотношением света, теней, оттенков цветов.
4. Ознакомление с внутренним языком программирования MEL.
5. Создания модуля для реализации построения трёхмерных реалистичных изображений.
Структура дипломного проекта: 59 страниц 3 таблицы 20 рисунков. Дипломный проект состоит из введения, 4 глав, заключения и приложения.
1. Построение реалистичных изображений
Построение реалистичных изображений включает как физические, так и психологические процессы. Свет, то есть электромагнитная энергия, после взаимодействия с окружающей средой попадает в глаз, где в результате физических и химических реакций вырабатываются электроимпульсы, воспринимаемые мозгом. Восприятие - это приобретаемое свойство. Человеческий глаз - очень сложная система. Он имеет почти сферическую форму с диаметром около 20 мм. Из опытов известно, что чувствительность глаза к яркости света изменяется по логарифмическому закону. Пределы чувствительности к яркости чрезвычайно широки, порядка 1010 , однако глаз не в состоянии одновременно воспринять весь этот диапазон. Глаз реагирует на гораздо меньший диапазон значений относительно яркости, распределённый вокруг уровня адаптации к освещённости. [3]
Скорость адаптации к яркости неодинакова для различных частей сетчатки, но, тем не менее очень высока. Глаз приспосабливается к «средней» яркости обозреваемой сцены; поэтому область с постоянной яркостью (интенсивностью) на тёмном фоне кажется ярче или светлее, чем на светлом фоне. Это явление называется одновременным контрастом.[6]
Ещё одним свойством глаза, имеющим значение для машинной графики, является то, что границы области постоянной интенсивности кажутся более яркими, в результате чего области с постоянной интенсивностью воспринимаются, как имеющие переменную интенсивность. Это явление называется эффектом полос Маха по имени открывшего его австрийского физика Эрнеста Маха. Эффект полос Маха наблюдается, когда резко изменяется наклон кривой интенсивности. Если кривая интенсивности вогнута, то в этом месте поверхность кажется светлее, если выпукла - темнее.(рис 1.1)
Рис. 1.1. Эффект полос Маха: (а) кусочно-линейная функция интенсивности, (b) функция интенсивности с непрерывной первой производной.
1.1 Простая модель освещения.
Световая энергия, падающая на поверхность, может быть поглощена, отражена или пропущена. Частично она поглощается и превращается в тепло, а частично отражается или пропускается. Объект можно увидеть, только если он отражает или пропускает свет; если же объект поглощает весь падающий свет, то он невидим и называется абсолютно черным телом. Количество поглощенной, отраженной или пропущенной энергии зависит от длины волны света. При освещении белым светом, в котором интенсивность всех длин волн снижена примерно одинаково, объект выглядит серым. Если поглощается почти весь свет, то объект кажется черным, а если только небольшая его часть -- белым. Если поглощаются лишь определенные длины волн, то у света, исходящего от объекта, изменяется распределение энергии и объект выглядит цветным. Цвет объекта определяется поглощаемыми длинами волн.[5]
Свойства отраженного света зависят от строения, направления и формы источника света, от ориентации и свойств поверхности. Отраженный от объекта свет может также быть диффузным или зеркальным. Диффузное отражение света происходит, когда свет как бы проникает под поверхность объекта, поглощается, а затем вновь испускается. При этом положение наблюдателя не имеет значения, так как диффузно отраженный свет рассеивается равномерно по всем направлениям. Зеркальное отражение происходит от внешней поверхности объекта.
Рис.1.2. Ламбертовое диффузное отражение
модуль освещение трехмерный изображение
Поверхность предметов, изображенных при помощи простой модели освещения с ламбертовым диффузным отражением (рис 1.2), выглядит блеклой и матовой. Предполагается, что источник точечный, поэтому объекты, на которые не падает прямой свет, кажутся черными. Однако на объекты реальных сцен падает еще и рассеянный свет, отраженный от окружающей обстановки, например от стен комнаты. Рассеянному свету соответствует распределенный источник. Поскольку для расчета таких источников требуются большие вычислительные затраты, в машинной графике они заменяются на коэффициент рассеяния.
Пусть даны два объекта, одинаково ориентированные относительно источника, но расположенные на разном расстоянии от него. Если найти их интенсивность по данной формуле, то она окажется одинаковой. Это значит, что, когда предметы перекрываются, их невозможно различить, хотя интенсивность света обратно пропорциональна квадрату расстояния от источника, и объект, лежащий дальше от него, должен быть темнее. Если предположить, что источник света находится в бесконечности, то диффузный член модели освещения обратится в нуль. В случае перспективного преобразования сцены в качестве коэффициента пропорциональности для диффузного члена можно взять расстояние от центра проекции до объекта.
Но если центр проекции лежит близко к объекту, то у объектов, лежащих примерно на одинаковом расстоянии от источника, разница интенсивностей чрезмерно велика. Как показывает опыт, большей реалистичности можно добиться при линейном затухании. В этом случае модель освещения выглядит так (рис.1.3.)
Рис.1.3. Зеркальное отражение
Если предполагается, что точка наблюдения находится в бесконечности, то определяется положением объекта, ближайшего к точке наблюдения. Это означает, что ближайший объект освещается с полной интенсивностью источника, а более далекие -- с уменьшенной. Для цветных поверхностей модель освещения применяется к каждому из трех основных цветов.[10]
Благодаря зеркальному отражению на блестящих предметах появляются световые блики. Из-за того что зеркально отраженный свет сфокусирован вдоль вектора отражения, блики при движении наблюдателя тоже перемещаются. Более того, так как свет отражается от внешней поверхности (за исключением металлов и некоторых твердых красителей), то отраженный луч сохраняет свойства падающего. Например, при освещении блестящей синей поверхности белым светом, возникают белые, а не синие блики.
Прозрачность
В основных моделях освещения и алгоритмах удаления невидимых линий и поверхностей рассматриваются только непрозрачные поверхности и объекты. Однако существуют и прозрачные объекты, пропускающие свет, например, такие, как стакан, ваза, окно автомобиля, вода. При переходе из одной среды в другую, например, из воздуха в воду, световой луч преломляется; поэтому торчащая из воды палка кажется согнутой. Преломление рассчитывается по закону Снеллиуса, который утверждает, что падающий и преломляющий лучи лежат в одной плоскости, а углы падения и преломления связаны формулой.[13]
Ни одно вещество не пропускает весь падающий свет, часть его всегда отражается; это также показано на (рис.1.4.)
Рис.1.4.Геометрия преломления.
Так же, как и отражение, пропускание может быть зеркальным (направленным) или диффузным. Направленное пропускание свойственно прозрачным веществам, например стеклу. Если смотреть на объект сквозь такое вещество, то, за исключением контурных линий криволинейных поверхностей, искажения происходить не будет. Если свет при пропускании через вещество рассеивается, то мы имеем диффузное пропускание. Такие вещества кажутся полупрозрачными или матовыми. Если смотреть на объект сквозь такое вещество, то он будет выглядеть нечетким или искаженным.
Тени
Если положения наблюдателя и источника света совпадают, то теней не видно, но они появляются, когда наблюдатель перемещается в любую другую точку. Изображение с построенными тенями выглядит гораздо реалистичнее, и, кроме того, тени очень важны для моделирования. Например, особо интересующий нас участок может оказаться невидимым из-за того, что он попадает в тень. В прикладных областях -- строительстве, разработке космических аппаратов и др. -- тени влияют на расчет падающей солнечной энергии, обогрев и кондиционирование воздуха.[8]
Наблюдения показывают, что тень состоит из двух частей: полутени и полной тени. Полная тень -- это центральная, темная, резко очерченная часть, а полутень -- окружающая ее более светлая часть. В машинной графике обычно рассматриваются точечные источники, создающие только полную тень. Распределенные источники света конечного размера создают. как тень, так и полутень: в полной тени свет вообще отсутствует, а полутень освещается частью распределенного источника. Из-за больших вычислительных затрат, как правило, рассматривается только полная тень, образуемая точечным источником света. Сложность и, следовательно, стоимость вычислений зависят и от положения источника. Легче всего, когда источник находится в бесконечности, и тени определяются с помощью ортогонального проецирования. Сложнее, если источник расположен на конечном расстоянии, но вне поля зрения; здесь необходима перспективная проекция. Самый трудный случай, когда источник находится в поле зрения. Тогда надо делить пространство на секторы и искать тени отдельно для каждого сектора.[10]
Для того чтобы построить тени, нужно по существу дважды удалить невидимые поверхности: для положения каждого источника и для положения наблюдателя или точки наблюдения, т. е. это двухшаговый процесс. Рассмотрим сцену на рис. 1.5. Один источник находится в бесконечности сверху: спереди слева от параллелепипеда. Точка наблюдения лежит спереди: сверху справа от объекта. В данном случае тени образуются двояко: это собственная тень и проекционная. Собственная тень получается тогда, когда сам объект препятствует пропаданию света на некоторые его грани, например на правую грань параллелепипеда. При этом алгоритм построения теней аналогичен алгоритму удаления нелицевых граней: грани, затененные собственной тенью, являются нелицевыми, если точку наблюдения совместить с источником света.
Рис.1.5.Тени.
Если один объект препятствует попаданию света на другой, то получается проекционная тень, например тень на горизонтальной плоскости на (рис. 1.5, Ь.) Чтобы найти такие тени, нужно построить проекции всех не лицевых граней на сцену. Центр проекции находится в источнике света. Точки пересечения проецируемой грани со всеми другими плоскостями образуют многоугольники, которые помечаются как теневые многоугольники и заносятся в структуру данных. Для того чтобы не вносить в нее слишком много многоугольников, можно проецировать контур каждого объекта, а не отдельные грани.
После добавления теней к структуре данных, как обычно, строится вид сцены из заданной точки наблюдения. Отметим, что для создания разных видов не нужно вычислять тени заново, так как они зависят только от положения источника и не зависят от положения наблюдателя.[4]
Развитие алгоритмов
Основатели компьютерной графики разработали определённую концепцию: формировать объемное изображение на основе набора геометрических фигур. Обычно для этой цели используются треугольники, реже -- сферы или параболоиды. Геометрические фигуры получаются сплошными, и при этом геометрия переднего плана закрывает геометрию заднего плана. Затем подошло время разработки виртуального освещения, благодаря которому на виртуальных объектах появлялись плоские затененные участки, придававшие компьютерным изображениям четкие контуры и несколько техногенный вид.
Генри Гуро предложил усреднять раскраску между углами, чтобы получить более гладкое изображение. Эта форма сглаживания требует минимального объема вычислений и в настоящее время используется большинством видеокарт. Но на момент ее изобретения в 1971 году компьютеры могли визуализировать таким способом только простейшие сцены.
В 1974 году Эд Кэтмул ввел концепцию Z-буфера, суть которой была в том, что изображение может состоять из горизонтальных (X) и вертикальных (Y) элементов, каждый из которых также имеет глубину. Таким способом был ускорен процесс удаления скрытых граней, и теперь этот метод является стандартом для трехмерных ускорителей. Другим изобретением Кэтмула было обертывание двумерного изображения вокруг трехмерной геометрии. Проецирование текстуры на поверхность, является основным способом придания реалистичного вида трехмерному объекту. Изначально объекты были равномерно окрашены в один цвет, так что, например, создание кирпичной стены требовало индивидуального моделирования каждого кирпичика и заливки между ними. В наши дни вы можете создать такую стену, назначив растровое изображение кирпичной стены простому прямоугольному объекту. Этот процесс требует минимального объема вычислений и ресурсов компьютера, не говоря уже о значительном сокращении времени работы.[12]
By Тонг Фонг усовершенствовал принцип сглаживания Гуро путем интерполяции оттенков всей поверхности полигона, а не только областей, прилегающих непосредственно к граням. Хотя визуализация в этом случае происходит раз в сто медленней, чем при предыдущем варианте сглаживания, объекты получают в результате «пластичный» вид, присущий ранней компьютерной анимации. В Maya используются два варианта раскраски по Фонгу.
Джеймс Блинн скомбинировал элементы раскраски по Фонгу и проецирования текстур, создав в 1976 году текстуру рельефа. Если к поверхности было применено сглаживание по Фонгу и можно спроецировать на нее карту текстуры, почему не использовать оттенки серого в соответствии с направлениями нормалей к граням, чтобы создать эффект рельефа? Более светлые оттенки серого воспринимаются, как возвышенности, а более темные -- как впадины. Геометрия объекта при этом остается неизменной, и вы можете видеть его силуэт.
Блинн также разработал метод использования карт окружающей среды для формирования отражений. Он предложил создать кубическую среду путем визуализации шести проекций из центра объекта. Полученные таким способом изображения затем проецируются обратно на объект, но с фиксированными координатами, в результате чего картинка не перемещается вместе с объектом. В результате поверхность объекта будет отражать окружающую среду. Для успешной реализации эффекта нужно, чтобы не было быстрого движения объектов окружающей среды в процессе анимации.
В 1980 году Тернер Уиттед предложил новую технику визуализации, называемую трассированием. Это отслеживание путей прохождения отдельных световых лучей от источника света до объектива камеры с учетом их отражения от объектов сцены и преломления в прозрачных средах. Хотя реализация этого метода требует значительного количества ресурсов компьютера, изображение получается очень реалистичным и аккуратным.[15]
В начале 80-х годов, когда компьютеры стали чаще использоваться в различных областях деятельности, начались попытки применения компьютерной графики в развлекательной сфере, включая кино. Для этого использовалось специальное аппаратное обеспечение и сверхмощные компьютеры, но начало было положено. К середине 80-х компания SGI начала производство высокопроизводительных рабочих станций для научных исследований и компьютерной графики.
В 1984 году в Торонто была основана фирма Alias. Это название имеет два значения. Во-первых, это переводится как «псевдоним», ведь в те времена основатели компании были вынуждены работать по совместительству. Во-вторых, этот термин используется для описания ступенчатых краев изображения в компьютерной графике. Первоначально фирма ориентировалась на выпуск программного обеспечения.
предназначенного для моделирования и разработки сложных поверхностей. Затем была создана программа Power Animator, мощный и дорогостоящий продукт, который многие производители считали самым лучшим из доступных на тот момент.
В 1984 году в Сайта-Барбаре была основана компания Wavefront. Это название буквально переводится как волновой фронт. Компания немедленно занялась разработкой программного обеспечения для создания трехмерных визуальных эффектов и производством графических заставок для телепрограмм Showtime, Bravo и National Geographic Explorer. Первое приложение, созданное компанией Wave-front, называлось Preview. Затем в 1988 году была выпущена программа Softimage, которая довольно быстро завоевала популярность на рынке продуктов, предназначенных для работы с компьютерной графикой. Все программное и аппаратное обеспечение, использовавшееся для создания анимации в 80-х годах, было специализированным и очень дорогим. К концу 80-х годов в мире насчитывалось всего несколько тысяч человек, занимавшихся моделированием визуальных эффектов. Почти все они работали на компьютерах производства компании Silicon Graphics и использовали программное обеспечение от фирм Wavefront, Softimage и т. п.[3]
Благодаря появлению персональных компьютеров число людей, занимающихся созданием компьютерной анимации, начало расти. Компании IBM PC, Amiga, Macintosh и даже Atari начали разрабатывать программное обеспечение для обработки трехмерных изображений. В 1986 году фирма AT&T выпустила первый пакет для работы с анимацией на персональных компьютерах, который носил название TOPAS. Он стоил 10 000 долларов и работал на компьютерах с процессором Intel 286 и операционной системой DOS. Благодаря этим компьютерам стало возможным создание свободной анимации, несмотря на примитивную графику и относительно низкую скорость вычислений. В следующем году фирма Apple Macintosh выпустила еще одну систему для создания трехмерной графики на базе персональных компьютеров, которая носила название Electric Image. В 1990 году фирма AutoDesk начала продажу продукта 3D Studio, созданного независимой командой Yost Group, разрабатывавшей графические продукты для компании Atari. Стоимость 3D Studio составляла всего 3000 долларов, что в глазах пользователей персональных компьютеров делало его достойным конкурентом пакету TOPAS. Еще через год появился продукт Video Toaster компании NewTek вместе с простой в использовании программой LightWave. Для работы с ними были необходимы компьютеры Amiga. Эти программы пользовались большим спросом на рынке и продавались тысячами копий.
К началу 90-х годов создание компьютерной анимации стало доступно широкому кругу пользователей. Каждый мог экспериментировать с анимацией и эффектами трассирования. Появилась возможность бесплатно загрузить программу Стивена Коя Vivid, позволяющую воспроизводить эффекты трассирования, или программу Persistence of Vision Raytracer, больше известную под названием POVRay. Последняя предоставляет детям и начинающим пользователям замечательную возможность познакомиться с основами компьютерной графики.
Фильмы с потрясающими спецэффектами демонстрируют новый этап развития компьютерной графики и визуализации. К сожалению, большинство пользователей считают, что создание впечатляющей анимации целиком зависит от мощности компьютера. Это заблуждение имеет место и в наши дни.
По мере роста рынка приложений для работы с трехмерной графикой и увеличения конкуренции, многие компании объединили свои технологии. В 1993 году компания Wavefront слилась с фирмой Thompson Digital Images, которая использовала моделирование на основе NURBS-кривых и интерактивную визуализацию. Позднее эти функции легли в основу интерактивной фотореалистичной визуализации в Maya. В 1994 году фирма Microsoft купила программу Softimage и выпустила версию данного продукта для платформ Windows NT на базе компьютеров Pentium. Это событие можно считать началом эры недорогих и доступных среднестатистическому пользователю персонального компьютера программ для работы с трехмерной графикой. В ответ на это в 1995 году компания SGI купила и объединила фирмы Alias и Wavefront, чтобы предотвратить упадок интереса к приложениям, которые работали исключительно на специализированных компьютерах SGI. Почти сразу же новая компания, названная Alias] Wavefront, начала объединение имевшихся в ее распоряжении технологий для создания совершенно новой программы.
Наконец, в 1998 году было выпущено приложение Maya, стоившее от 15 000 до 30 000 долларов и предназначенное для операционной системы IRIX на рабочих станциях SGI. Программа была написана с нуля и предлагала новый путь развития анимации с открытым интерфейсом программирования приложений (API) и колоссальными возможностями расширения. Несмотря на первоначальное намерение компании SGI сохранить эксклюзивное право на предоставление среды для Maya, в феврале 1999 года появилась версия для Windows NT. Старая схема формирования цен была отброшена, и теперь базовый пакет Maya стоит всего 7500 долларов. В апреле этого же года появилась Maya 2, а в ноябре -- Maya 2.5, содержащая модуль Paint Effects (Эффекты рисования). Летом 2000 года была выпущена версия Maya 3, к которой была добавлена возможность создания нелинейной анимации с помощью инструмента Тгах (Видеомонтаж). В начале 2001 года были анонсированы версии Maya для Linux и Macintosh, а с июня начались поставки Maya 4 для IRIX и Windows NT/2000.[10]
Maya представляет собой программу для создания трехмерной графики и анимации, основанных на моделях, созданных пользователем в виртуальном пространстве, освещенных виртуальными источниками света и показанных через объективы виртуальных камер. Существуют две основные версии программы: Maya Complete (ее стоимость на момент написания книги составляла 7500 долларов) и Maya Unlimited (стоившая 16 000 долларов), которая включала некоторые специфические функции. Maya работает как на компьютерах PC с операционной системой Windows NT/2000, так и в операционных системах Linux, IRIX или даже Macintosh. Программа позволяет создавать фотореалистичные растровые изображения, подобные тем, которые вы получаете с помощью цифровой камеры. При этом работа над любой сценой начинается с пустого пространства. Лю-эой параметр можно заставить изменяться с течением времени, в результате после визуализации набора кадров получается анимированная сцена.
Maya превосходит многие из имеющихся в данный момент на рынке пакетов для работы с трехмерной анимацией. Программа используется для создания эффектов в большом числе фильмов, имеет широкий диапазон применения в областях, которые мы перечислили выше, и считается одной из лучших в области создания анимации, несмотря на сложность в ее изучении. В настоящий момент основными конкурентами Maya являются программы LightWave, Softimage XSI и 3ds max, стоимость которых составляет от 2000 до 7000 долларов. Среди программ, стоящих меньше 1000 долларов, можно упомянуть trueSpace, Inspire 3D, Cinema 4D, Вгусе и Animation Master.
Большинство этих программ хорошо работают на базе персональных компьютеров и имеют версии для различных операционных систем, таких как Macintosh. Провести их сравнительный анализ довольно сложно, но в основном, чем сложнее программа, тем более сложную анимацию она позволяет создавать и тем проще в ней процесс моделирования сложных объектов или процессов.[6]
1.2 Возможности программирования Maya
Графический пользовательский интерфейс (GUI) Maya управляется средствами MEL - встроенного языка, на котором он полностью и написан. Язык MEL помогает создавать, редактировать и удалять любые элементы графического интерфейса пользователя. А значит, при помощи MEL вы тоже можете управлять интерфейсом Maya. Так, пользуясь своими сценариями на языке MEL, вы можете полностью заменить стандартный интерфейс. Часто возникает потребность в специализированной настройке фрагментов интерфейса Maya. К примеру, возможно, вы захотите разработать собственный интерфейс, позволяющий аниматорам устанавливать ключевые кадры, не утруждая себя изучением средства Channel Box (Окно каналов) или редактора Graph Editor (Графический редактор). Кроме того, вы можете скрыть или убрать многие элементы интерфейса Maya, понизив его сложность для конкретных пользователей.
Наряду с пользовательским интерфейсом, вы можете управлять внутренними настройками Maya.
MEL позволяет вносить изменения в настройки Maya, действующие как в рамках одного проекта, так и на систему в целом. Например, вы можете обеспечить согласованное применение всеми пользователями одинаковых временных, угловых и линейных единиц измерения. В иной ситуации каждый пользователь, открывающий тот или иной проект, сможет работать с собственными настройками, имеющими силу в данный момент времени.
Интеграция
Часто Maya оказывается не единственным пакетом, применяемым в производственном процессе. При этом могут использоваться лишь некоторые возможности Maya, для решения же отдельных задач могут служить другие пакеты. В этом случае возникает необходимость передавать данные из внешних пакетов в Maya и обратно. Хотя в стандартную поставку Maya входят средства экспорта и импорта отдельных форматов, интерфейс программирования позволяет вам писать собственные модули экспорта и импорта данных. Такие модули транслируют данные одного пакета в формат, понятный другому, поэтому их также называют трансляторами. Так как Maya позволяет обращаться к целым сценами связанным с ними данным, то вы можете выводить эти данные в любой нужной вам форме. Перед компаниями, выпускающими компьютерные игры, часто стоит задача переноса и преобразования разработок, сделанных в Maya (моделей, анимации и т. д.), в формат конкретной игровой платформы.
Кроме того, на основе функциональных возможностей Maya можно создать отдельное приложение. Так появляется возможность использовать смесь кода Maya и собственных функций для создания законченного программного решения.
Автоматизация
Нередко многие задачи повторяются. Для автоматизации повторяющихся
действий вполне подходит программирование. Вместо того чтобы просить пользователя всякий раз решать задачу вручную, можно составить сценарий на языке MEL, который ее полностью автоматизирует, Будь то раскраска, размещение объектов или просто какая-то задача, требующая многократного решения, - все это можно автоматизировать. По сути, в силу характерных для программирования обобщений, вы можете написать сценарий, выполняющий различные действия в зависимости от текущего контекста. Например, можно создать ряд объектов и поместить их поверх другого объекта либо прикрепить к его нижней части, причем автоматически, не требуя от пользователя ручной установки каждого из них.[21]
Расширения
Несмотря на то что невероятно обширный набор возможностей Maya представляет предмет гордости этого пакета, потребность в нестандартных средствах и возможностях будет оставаться всегда. К счастью, Maya позволяет вам добавлять свои собственные возможности и функции. Более того, эти функции можно заставить прозрачным образом взаимодействовать с остальными компонентами Maya. С точки зрения пользователей, средства, которые они создают, ничем не отличаются от стандартных средств Maya. С помощью MEL и C++ вы можете создавать большие и сложные расширения пакета. Существует лишь несколько ограничений, определяющих набор расширяемых функций. Maya позволяет создавать собственные шейдеры, нестандартные модули динамики, частицы, деформаторы и контроллеры анимации, и это далеко не все. Фактически создаваемые расширения могут напрямую внедряться в граф зависимости Dependency Graph, самое «сердце» Maya. Встроив свое расширение один раз, в дальнейшем вы сможете обращаться к нему так же, как и к стандартным возможностям пакета.
Интерфейсы программирования
Художники обычно работают в Maya, пользуясь графическим интерфейсом
пользователя. Он включает меню, диалоговые окна, кнопки и прочие элементы, предоставляющие пользователям наглядные средства выполнения тех или иных действий. Но есть и другой способ их выполнения действий. Возможности программирования Maya позволяют решать те же задачи, составляя и выполняя программы. Эти программы можно разрабатывать, пользуясь одним из двух интерфейсов программирования Maya: MEL или C++.
1.3 MEL
Это акроним, который служит для обозначения встроенного языка Maya (Maya Embedded Language). Язык MEL - оригинальный язык программирования, специально созданный для работы в среде Maya. Благодаря упрощенной структуре и синтаксису, он более прост и используется более широко, нежели интерфейс программирования на основе C++. Одно из главных достоинств MEL заключается в том, что он является интерпретируемым языком. В то время как обычные языки программирования требуют компиляции и сборки исходного кода, программа на интерпретируемом языке может выполняться сразу же.
Эта способность немедленно выполнять записанные инструкции означает, что MEL особенно подходит для быстрого составления прототипов Коль скоро шаг компиляции-сборки не требуется, вам будет проще создать проект и реализовать новую идею. Действительно, код на языке MEL можно написать, отладить и выполнить, не покидая Maya. Внешние компиляторы и отладчики становятся не нужны.
MEL - это интерпретируемый язык, поэтому у него есть недостаток: программа на нем может работать гораздо медленнее, чем аналогичная программа C++. [31]
В результате компиляции исходного кода на C++ генерируются естественные машинные инструкции, и такая программа выполняется очень быстро. Интерпретируемый язык работает с исходным кодом, который интерпретируется «на лету». Когда Maya встречает инструкцию MEL, пакет должен интерпретировать ее и, наконец, преобразовать в естественный машинный формат. Даже несмотря на то что Maya проделывает большую работу, пытаясь ускорить этот процесс, зачастую MEL сильно отстает от C++ в отношении скорости. Однако во многих случаях дополнительные преимущества, связанные с быстрым созданием и выполнением программы на MEL. на деле перевешивают необходимость установки, сложность и издержки компиляции программы на C++. Все зависит от типа и сложности задачи, которую вы хотите решить.
C++ Для программирования Maya можно использовать стандартный язык C++. Хотя это и отпугивает тех, кто не знает этого языка, на сегодняшний день C++ является самым мощным инструментом, расширяющим возможности Maya. Используя C++, вы сможете создавать собственные подключаемые модули Maya. которые будут без проблем работать с остальными компонентами этого пакета.
Доступ к средствам программирования осуществляется через интерфейс прикладного программирования (API) на языке C++. Он состоит из ряда библиотек классов C++. Чтобы создать подключаемый модуль, просто напишите на языке C++ программу, которая использует и расширяет возможности базовых классов Maya. Как таковой процесс изучения программирования с использованием C++ API включает освоение назначения различных классов и приемов работы с ними. Реализация классов, к счастью, отличается последовательностью и непротиворечивостью, поэтому изучение некоторых более простых классов помогает при изучении более сложных. Хотя количество классов может поначалу испугать, типичный подключаемый модуль Maya пользуется лишь малой их частью. Вообще говоря, постоянно используются лишь около трети существующих классов. Некоторые классы, известные лишь посвященным, применяются достаточно редко.
MEL или C++
Теперь вы знаете о двух способах программирования работы Maya и должны сами решить, каким из них пользоваться. Делая свой выбор в пользу того или иного интерфейса программирования, в равной степени взвесьте оба варианта с позиции ваших конкретных нужд. На окончательный выбор могут повлиять такие внешние факторы, как сжатые сроки или особые требования к производительности. В общем, MEL содержит все необходимые функции. Он обладает широкими возможностями доступа к функциональности Maya и не требует обращения к C++. Работа с интерфейсом программирования на основе C++ обычно обусловлена потребностью в тех функциях, которые отсутствуют в интерфейсе MEL.[17]
Кроме того, немаловажно понять, что выбор одного автоматически не исключает другого. Интерфейс C++ не является надмножеством интерфейса MEL; иначе говоря, интерфейс C++ не имеет всех возможностей, которые имеются в интерфейсе MEL, и тем более не превышает их. В MEL вы сможете отыскать ряд возможностей, которые недоступны через интерфейс C++, и наоборот.
По существу, некоторые задачи можно решить лишь при совместном использовании обоих интерфейсов. Когда вы приобретете более богатый опыт разработки для Maya, хорошее знание API на основе C++ и MEL станет для вас лучшим средством выбора надлежащего решения конкретной проблемы. Уверенно ориентируясь в обоих интерфейсах программирования, вы сможете понять, когда один из них более соответствует тому или иному фрагменту задачи, и, соответственно, сможете получить оптимальное смешанное решение.
Простота применения
Выбор используемого интерфейса программирования может быть продиктован исключительно вашей программистской квалификацией. Хотя MEL обладает значительным сходством с языком С.
Он существенно отличается от него в тех деталях, которые делают его доступнее для менее опытных разработчиков.[27]
Благодаря изъятию таких элементов, как указатели, а также отказу от выделения и освобождения памяти, MEL становится гораздо проще в применении и понимании. Несмотря на то что он не предусматривает возможностей низкоуровневого доступа, предлагаемых языком С, необходимость этого при программировании Maya возникает нечасто. Кроме того, отсутствие подобных конструкций также предотвращает некоторые наиболее распространенные причины программных сбоев и нестабильности общего характера.
Сценарии MEL более близки к псевдокоду, чем программы на других языках, поэтому их легче читать. Кроме того, MEL более «снисходителен» в том смысле, что не выполняет слишком много проверок типов. Это значит, что вы можете быстро составлять сценарии, не беспокоясь о том, какой тип имеют используемые переменные. Это может быть одновременно и благом, и мучением, поскольку иногда ведет к незаметным ошибкам, которые; как окажется позднее, трудно найти. Проверки типов, к счастью, можно ужесточить, явно указывая тип переменной при ее описании. Если вы имеете немалый опыт программирования на C++, то, возможно, вам захочется воспользоваться интерфейсом на C++. Иерархия С++ классов Maya обеспечивает доступ к большому количеству функций пакета. Однако даже в том случае, если вы захотите написать весь код на языке C++, вам неизбежно придется время от времени заниматься программированием на MEL. Хорошее знание C++, безусловно, поможет в изучении MEL, так как синтаксис последнего очень напоминает С. Существенные различия между языками программирования С и MEL изложены в Приложении В.
Если задача, которую вы программируете, требует применения сложных структур данных, вам, скорее всего, потребуется использовать C++ API. Язык MEL содержит ограниченный набор различных типов переменных и не позволяет пользователям описывать собственные структуры данных.
Функциональные особенности
Поскольку интерфейс на основе C++ сложнее по сравнению с языком MEL, нетрудно предположить, что именно C++ API должен обеспечивать больше возможностей доступа и управления. Отчасти это так. Пользуясь интерфейсом на основе C++, можно создавать подключаемые модули и писать программы, обеспечивающие более тесную интеграцию с ядром Maya. Но все же неверно было бы полагать, что C++ API является надмножеством функций языка MEL. На самом деле, они дополняют друг друга.[26]
Существует определенный набор функций, к которым можно обратиться из MEL, но нельзя обратиться из C++ API, и наоборот. Так что при выполнении ряда задач разработчик не имеет выбора и должен сочетать использование обоих языков. В действительности подобная практика весьма распространена и вы вполне можете встретить подключаемый модуль на C++, в котором иногда используются вызовы команд MEL. Однако чаще MEL обеспечивает достаточную функциональность, и написание модулей на C++ становится ненужным.
Но такое не всегда возможно. Интерфейс на основе C++ обладает некоторыми функциями, которые просто не имеют аналогов в арсенале MEL. Только посредством C++ API вы можете создавать свои собственные узлы. Создание подобных узлов позволяет разрабатывать нестандартные инструменты, деформаторы, формы, шейдеры, локаторы, манипуляторы и т. д. К тому же MEL не позволяет описывать пользовательские команды, хотя и поддерживает создание процедур, действие которые подобно действию некоторых команд.
Независимо от того, какой интерфейс программирования вы выберете для разработки ядра своих функций, вам придется использовать MEL, когда вы приступите к работе с любым графическим интерфейсом пользователя, поскольку MEL - это единственное средство управления интерфейсом. К счастью, команды MEL можно выполнять из интерфейса C++ API.
Межплатформенная переносимость
Учитывая широкое распространение Maya на многих вычислительных платформах, важно решить, имеет ли значение возможность переноса программы.
Если ваша разработка ограничена одной платформой, это становится не столь существенным. [27]
Однако если не забывать о повсеместном использовании смешанных платформ для обработки данных и рендеринга, то. пожалуй, было бы разумным подумать о возможных последствиях решения, принятого сегодня Язык MEL является интерпретируемым, поэтому он был разработан с расчетом на легкую переносимость на другие платформы. В него входит немного функций, действие которых зависит от аппаратной конфигурации. По сути, почти все команды MEL работают независимо от конкретной платформы, на которой они запущены. Значит, разместить сценарий MEL на нескольких платформах обычно проще, так как он менее зависим от особенностей каждой из них. Для реализации всех функций графического интерфейса пользователя служит язык MEL, стало быть, вам никогда не придется иметь дело со своеобразием различных систем управления окнами. При помощи MEL вы можете разработать интерфейс на одной из платформ и знать о том, что на других он будет выглядеть и работать аналогично.
Хорошо известно, что разработка межплатформенных программных средств на C++ представляет трудности по целому ряду причин. Проблемы начинаются с того, что различные компиляторы C++ обладают собственными несовместимыми элементами. К тому же они в различной степени соответствуют стандарт)ANSI C++.[20]
Наконец, не все компиляторы используют одни и те же стандартные библиотеки С. Применение только С++-классов Maya и библиотек, которые слабо зависят от других внешних наборов функций и расширенных свойств языка, должно облегчить разработку продуктов для нескольких платформ.
В тех случаях, когда межплатформенная совместимость играет немаловажную роль, попытайтесь как можно больше функций написать на языке MEL. Обращайтесь к C++ лишь тогда, когда это абсолютно необходимо.[24]
Скорость
MEL - это интерпретируемый язык, и по этой причине он, вероятно, работает медленнее, чем C++. Однако это не всегда так, и скорость во многом зависит от сложности программы.
При решении некоторых задач различие в скорости может быть не столь значительным, чтобы стать оправданием дополнительных усилий по написанию кода на C++. Что касается сложных операций, время выполнения которых действительно имеет решающее значение, то для них, безусловно, справедливо высказывание о том, что программа, на C++ выполняется быстрее.
На практике прирост скорости может быть десятикратным. Это немаловажное соображение, если сцена состоит из больших и сложных геометрических объектов.
Затратив дополнительные силы на программирование на C++, можно получить большой выигрыш в качестве взаимодействия z пользователем и общей производительности труда.
Архитектура Maya
Как пользователь системы Maya вы взаимодействуете с ее графическим пользовательским интерфейсом. Вы выбираете пункты меню, изменяете параметры, анимируете и передвигаете объекты и т. д. Во время вашего взаимодействия с интерфейсом пользователя Maya, на самом деле, инициирует команды языка MEL.
Они посылаются командному ядру (Command Engine), где интерпретируются и выполняются. Как вы, возможно, знаете, пакет Maya можно запускать и в пакетном режиме. Графический интерфейс пользователя в нем отсутствует, и команды MEL передаются на выполнение непосредственно компоненту Command Engine. Большинство команд MEL работают с графом зависимости Dependency Graph.
Это происходит потому, что на интуитивном уровне Dependency Graph можно представить как полную сцену.[28]
Сцена содержит все важные данные и информацию, образующую трехмерный мир, включая объекты, анимацию, динамику, материалы и т. д. Граф зависимости не только описывает то, какие данные относятся к текущей сцене, но его структура и общая схема определяют способ обработки данных. Компонент Dependency Graph- это своего рода «сердце» и «мозг» Maya. Это очень важный компонент, и сейчас вы узнаете о нем более подробно.
Рис.1.6 Система Маya.
Проанализировав тенденции ЗВ-приложений, нетрудно обнаружить, что каждый отдельный модуль, на самом деле, можно разбить на более мелкие операции. Эти операции меньшего размера способны обрабатывать данные и передавать их следующим операциям. По сути, все функции, реализуемые обособленным модулем, можно инкапсулировать в серию взаимосвязанных операторов. Эти операторы принимают на вход одни данные и передают на выход другие. Будучи соединены последовательно, они образуют канал, или конвейер. Данные передаются первому оператору конвейера, а затем, после той или иной обработки, покидают последний оператор на другом конце. При правильном подборе операторов на одном конце конвейера можно поместить трехмерную модель, а на другом получить ряд элементов изображения.
Продолжая обобщать этот подход, можно без труда прийти к тому, чтобы любые данные приходили на один конец конвейера и любые данные покидали другой конец. На самом деле, не обязательно требовать даже того, чтобы они относились к трехмерному пространству. Можно поместить на вход конвейера текстовый файл и получить на выходе отредактированную цепочку символов.[34]
Компания Alias Wavefront реализовала ядро Maya, пользуясь такой парадигмой потока данных. Названное ядро физически представлено графом зависимости- компонентом Dependency Graph. Dependency Graph сокращенно, DG. C технической точки зрения, в основу DG положена двунаправленная модель, а не строгая модель потока данных.DG - это поистине «сердце» Maya. Он предоставляет в ваше распоряжение все только что упомянутые базовые строительные блоки. Он позволяет создавать произвольные данные, подаваемые на вход серии операций и служащие сырьем для получения обработанных данных на другом конце конвейера. Данные и операции над ними инкапсулируются в DG как узлы. Узлы заключают в себе любое количество ячеек памяти, которые содержат данные, используемые Maya. Кроме того, в состав узла входит оператор, способный обрабатывать данные узла и получать в результате нечто иное. Распространенные задачи трехмерной графики могут быть решенье путем соединения ряда узлов. Данные первого узла поступают на вход следующего, тот так или иначе их обрабатывает и выдает новые данные, затем поступающие на вход другого узла. Таким образом, данные проходят по сети узлов, начиная с самого первого узла и заканчивая последним. На этом пути узлы могут свободно обрабатывать и редактировать данные, как им будет угодно. Кроме того, они могут порождать новые данные, которые затем передаются в другие узлы. Каждый тип узлов предназначен для выполнения малого, ограниченного множества различных, операций. Узел, управляющий ориентацией одного объекта, который должен указывать на другой, реализует лишь эту конкретную функцию.
Он не может, к примеру, деформировать объект. Для решения именно этой задачи будет создан узел деформации. Проектируя узлы для решения конкретных единичных задач, можно сохранить их простоту и повысить управляемость. Для выполнения какого-то сложного преобразования данных создается сеть подобных простых узлов. Количество и способ соединение узлов не ограничены, что дает возможность создавать сети произвольной сложности. Во многом это похоже на конструктор Lego, в котором путем соединения простых блоков можно создавать сложные конструкции; так и узлы Maya можно связывать и объединять в сложные потоки данных.
Свидетельством гибкости графа DG является тот факт, что при помощи узлов создаются и обрабатываются все данные (моделирование, динамика, анимация, тонировка и т. д.) в среде Maya. Этот подход к построению сложных вещей из простых строительных блоков придает Maya реальную силу и гибкость.
...Подобные документы
Общая характеристика игровых движков, история их создания и совершенствования, современное состояние и перспективы. Сущность и значение шейдерных эффектов, программирование данных программ. Механизм и этапы разработки 3D-приложения, его тестирование.
дипломная работа [2,2 M], добавлен 16.06.2011Основы программирования на языке VB.NET. Область применения трехмерных изображений. Форматы хранения пакетов инженерной графики. Преимущества трехмерного моделирования. Разработка программы по вращению трехмерных изображений на языках VB.NET и VRML.
курсовая работа [195,1 K], добавлен 11.03.2013Алгоритмы построения изображений, близких к фотореалистичным. Трассировка лучей и построение теней. Схема расчета интенсивности света. Параметры, задающие свойства тел. Зависимость времени построения от глубины рекурсии и количества источников освещения.
курсовая работа [734,3 K], добавлен 18.06.2009Современные алгоритмы машинной графики. Алгоритмы построения изображения. Глобальная модель освещения Уиттеда. Выбор и обоснование языка и среды программирования. Вспомогательные классы свойств трехмерных объектов. Условия применения программы.
курсовая работа [785,7 K], добавлен 24.06.2009Характеристика ОАО Завод пивоваренный "Моршанский". Характеристика структуры и состояния информационного пространства организации. Построение модели данных модуля для учета реализации товаров. Расчет показателей экономической эффективности проекта.
дипломная работа [3,4 M], добавлен 20.05.2013Построение реалистических изображений, его этапы, принципы. Эффект одновременного контраста: его природа и значение. Механизм освещения объектов. Нормаль к поверхности и ее особенности для объектов из различных материалов. Поверхности, пропускающие свет.
курсовая работа [986,9 K], добавлен 21.03.2011Разработка и реализация программы расчета заданных функций на языке программирования VBA. Математическая модель, параметры и характеристики задачи, критерии оценки эффективности созданного модуля. Разработка алгоритма и тестирование программного модуля.
курсовая работа [488,7 K], добавлен 08.09.2010Преимущества CSS3 - расширенной и усовершенствованной спецификации таблиц стилей. Оформление текстов и изображений на веб-страницах с помощью закругленных углов, теней, поворотов и трехмерных эффектов. Особенности разработки меню, навигации и кнопок.
курсовая работа [2,4 M], добавлен 12.12.2013Организационная и функциональная структура ОАО "Кировэнерго" по сборке компьютеров, разработка модуля ИС для увеличения производительности предприятия. Обзор и сравнение аналогов информационных систем. Расчет экономической эффективности внедряемой ИС.
дипломная работа [2,3 M], добавлен 30.08.2010Освоение методов манипуляции параметрами SVG изображений при помощи JavaScript и возможности по анимации в современных браузерах. Интерфейс и структура модуля визуализации данных. Определение аномальных данных и их определение, реализованные типы.
курсовая работа [1,7 M], добавлен 20.05.2014Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.
курсовая работа [215,3 K], добавлен 01.09.2010Методика разработки программного модуля для нахождения методом хорд корня уравнения x3-x-0,3=0 с точностью до 0,001 на языке программирования Visual Basic for Application. Схема программного модуля и описание процедуры обработки кнопки "Найти корни".
курсовая работа [394,0 K], добавлен 08.09.2010Методы обработки растровых изображений (кластеризация, пороговая и интерактивная сегментация). Разработка программного модуля для системы мониторинга биосферы и дистанционного зондирования. Создание пользовательского интерфейса программного модуля.
курсовая работа [2,2 M], добавлен 29.04.2015Проектирование модуля регистрации документов. Анализ предметной области, спецификация требований. Построение диаграммы прецедентов Анализ архитектуры модуля в "OpenText Content Server 16.2". Разработка программы регистрации документов, ее тестирование.
дипломная работа [1,9 M], добавлен 25.08.2017Характеристика деятельности ООО "ЖилРемСтрой", его организационная структура. Разработка проекта автоматизации бизнес-процессов предприятия с помощью программы "1С". Контрольный пример реализации проекта. Расчет экономической эффективности автоматизации.
дипломная работа [3,7 M], добавлен 29.01.2013Создание программного модуля для вычисления интеграла по формулам трапеции и Симпсона, определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор Excel и язык программирования Visual Basic for Application.
курсовая работа [159,7 K], добавлен 30.08.2010Системы программирования и их графические возможности. Разработка мультимедиа курса, способствующего эффективному усвоению учащимися базовой школы темы "Графические возможности языка программирования" (на примере языков программирования Basic и Pascal).
дипломная работа [588,3 K], добавлен 29.12.2010Разработка структурной диаграммы программного модуля для целочисленного решения задачи линейного программирования с использованием симплекс-метода. Краткое описание всех уровней диаграммы с назначением всех ее блоков. Язык программирования Visual C#.
курсовая работа [874,7 K], добавлен 27.02.2013Постановка задачи для модуля 1С. Бухгалтерия 3.0. Анализ существующих разработок в области интегрирования данных. Информационное обеспечение модуля "Связь 1С Предприятия 8.2. с "Казначейством". Программное и технологическое обеспечение данного модуля.
курсовая работа [1,5 M], добавлен 10.06.2013Расчет статического модуля оперативной памяти и накопителя. Построение принципиальной схемы и временной диаграммы модуля оперативного запоминающего устройства. Проектирование арифметико-логического устройства для деления чисел с фиксированной точкой.
курсовая работа [3,2 M], добавлен 13.06.2015