Реализация анимации изображения с помощью ассемблера
Исследование основных принципов компьютерной визуализации. Разработка программ для анимирования статического изображения. Основные этапы реализации анимации на ассемблере. Требования к памяти, быстродействию процессора и характеристикам видеокарты.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.02.2019 |
Размер файла | 16,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
ФГБОУ ВПО "Волгоградский государственный технический университет"
Волжский политехнический институт (филиал)
Реализация анимации изображения с помощью ассемблера
Гериханов Владимир Русланович,
Абрамова Оксана Фёдоровна
Волжский, Россия
Введение
Прогресс не стоит на месте, сегодня каждый человек может реализовать свою маленькую анимацию, не важно, будет она двумерная или трехмерная. Существует множество программ, которые предназначены именно для создания анимированных изображений, в которых достаточно нажать пару клавиш и ваша картинка оживёт.
Но перенесёмся на 40 лет назад, когда компьютерная анимация только зарождалась, какие тогда использовались инструменты для анимации? Что стоит у истоков таких простых (казалось бы) на сегодняшний момент действий? Для этого рассмотрим возможности ассемблера, предназначенные для анимирования статического изображения.
Создание графического изображения
Для того, что бы начать создание анимации на ассемблере, нам потребуется создать картинку, а затем уже её анимировать.
Конечно же мы сделаем это на ассемблере, а для этого нам нужно разобраться с командами для создания графических примитивов:
1) Установка текущей позиции курсора, для этого нам поможетфункция MoveToEx().
Теперь разберём какие аргументы способна принимать данная функция MoveToEx(HDC, int, int, LPPOINT).
Первый аргумент, - это контекст устройства.
Второй и третий отвечает за координаты точки, куда устанавливается текущая графическая позиция.
Четвертый аргумент - это указатель на структуры типа Point, в неё мы поместим координаты старой точки.
2) Рисование линии - для того, что бы нарисовать линиювоспользуемся функцией LineTo(HDC, int, int) она может принимать три аргумента, контекст устройства и координаты точки. Линия будет создана из текущего положения курсора в положение, переданное в функцию, при этом курсор переместиться в точку, указанную в функцию.
3)Рисование прямоугольника - для создания прямоугольника нам потребуется функция Rectangle(HDC, int, int, int, int), которая описывается следующим образом: первый аргумент - это контекст устройства, далее идут координаты углов прямоугольника.
Нам понадобятся всего два угла, левый верхний и правый нижний.
4)Рисование эллипса - для этого воспользуемся функцией Ellipse(HDC, int, int, int), данная функция принимает такие же аргументы, как и функция, рассмотренная выше.
Однако, для данной функции существует некоторое уточнение: координаты точек, это те же координаты углов прямоугольника, и через них и будет прорисовываться наш эллипс.
Анимирование графического изображения
Теперь мы можем создать примитивное графическое изображение. Однако, это только половина дела, и сейчас мы должны вдохнуть в него жизнь. Начнём с того, что для создания даже маленькой плавной анимации нам потребуется множество наших изображений.
Анимация - это, по сути, показ набора статичных изображений за определенное количество времени. Если мы будем создавать наши изображения вручную в ассемблере, то это будет очень долго.
Однако, у такого подхода есть существенный плюс, изображение будет выводиться на экран быстрее, что существенно улучшит качество картинки, хотя еще это зависит от того, сколько изображений мы будем использовать в секунду. Для того что бы реализовать движение объекта обычно используют такой цикл:
1) Вычислить координаты области отображения объекта (еслиизображение выйдет за границы экрана, компилятор выдаст ошибку. Что бы это сделать, нужно предварительно записать координаты конца экрана, а его размер зависит от разрешения, после же сравнить их с крайними точками изображения, если они больше, то увеличить видеопамять, выделяемую на процесс)
2) Сохранить фон области отображения. (Для сохранения фона нужновыделить область памяти такого же размера, что и для маски отображаемой фазы движения. Если маска объекта имеет размер MxN пикселов, а цвет пиксела кодируется К байтами, то область сохранения фона занимает MxNxK байт)
3) Рисовать текущие фазы движения объекта. ( invoke Rectangle, _hdc, 170, 120, 310, 260 invoke Rectangle, _hdc, 210, 80, 270, 120; возьмём в качестве текущего изображения два прямоугольника и выводим их на экран) 4) Ожидать начала обратного хода луча по кадру.
5) Стирать изображение объекта путём восстановления фона. (Переписать сохранённый фон из оперативной памяти в видеопамять и вывести на экран)
Для завершения сохранения фона, нужно выделить область памяти, такого же размера, как и для следующего отображаемого изображения.
Когда работаешь с группой движущихся объектов, нужно запоминать то, в какой последовательности они рисуются на экране, это нужно для того, чтобы стирание можно было запустить в обратном порядке, порядку ввода их на экран. компьютерный визуализация анимация ассемблер
Вывод изображения на экран обязательно должен быть синхронизирован с началом хода луча по кадру - если это будет не так, то каждый раз, когда вывод и перерисовка будут совпадать изображение будет искажаться.
В основном встречаются два типа искажений, это разрезание или не прорисовка некоторых участков картинки. В редких случаях могут появляться артефакты на экране.
Зона искажений на прямую зависит от количества и размеров движущихся или изменяющихся объектов, их размеров и скорости вывода на экран.
Если использовать всего одну видеостраницу, то изображение будет плавным только в том случае, если процессор успевает перерисовывать изображение полностью в течение одного кадра. Для этого процессор должен это делать примерно за 10 миллисекунд иначе изображение будет не плавным. А если объектов несколько, то задача усложняется, так как надо успеть перерисовать все.
Но даже современные процессоры не всегда будут с этим справляться, если делать всё именно так, поэтому можно пойти на несколько хитростей. Мы пожертвуем оперативной памятью и будем хранить фон в ней целиком.
Это ускорит работу больше чем на треть из-за того, что чтение из видеопамяти происходит медленнее, чем запись в неё. Второй секрет связан с тем, чтобы прекратить следить за выходом изображения за экран. Для этого нужно сделать логическую длину строки больше физической, и тогда изображение будет попадать в не отражаемую область памяти, но никаких ошибок при этом не будет.
Заключение
В данной статье мы рассмотрели основные этапы реализации анимации на ассемблере. В качестве основных плюсов такого метода можно выделить быстродействие и низкое требование к характеристикам процессора и видеокарте.
Однако, с этими плюсами связаны и минусы метода: анимация на ассемблере выглядит слишком просто по сравнению с той, какую можно реализовать с помощью специализированных программ.
Библиографические ссылки
1. Якушина А.А. Компьютерная графика [Электронный ресурс] / А.А. Якушина, О.Ф. Абрамова // Современные технологии и инженерное образование : матер. науч.-практ. конф. (г. Волжский, ноябрь - декабрь 2014 г.) / ООО «Центр экологической безопасности и энергосбережения». - 1 электрон. опт. диск (CD-ROM). - Волжский, 2015. - C. 18-20.
2. Абрамова, О.Ф. Компьютерная графика : лабораторный практикум [Электронный ресурс]: учеб. пособие / О.Ф. Абрамова, Д.Н. Лясин; ВПИ (филиал) ВолгГТУ. - Волгоград, 2017. - 1 электрон. опт. диск (CD-ROM). 74 с
3. Наборщиков А.О. Сравнительный обзор средств и новинок в области современной анимации [Электронный ресурс] / А.О. Наборщиков // Студенческий научный форум - 2018 : докл. X междунар. студенч. электрон. науч. конф. Направление «Технические науки» (секция «Актуальные проблемы компьютерной визуализации») / РАЕ. - Москва, 2018.
4. Трубникова Ю.О. Исследование основных принципов компьютерной анимации [Электронный ресурс] / Ю.О. Трубникова, О.Ф. Абрамова // Студенческий научный форум - 2017 : докл. IX междунар. студенч. электрон. науч. конф. Направление «Технические науки» (секция «Актуальные проблемы компьютерной визуализации») / РАЕ. - Москва, 2017.
5. Островерхов, В.В. Исследование основных направлений в современной анимации [Электронный ресурс] / В.В. Островерхов, О.Ф. Абрамова // Студенческий научный форум - 2017 : докл. IX междунар. студенч. электрон. науч. конф. Направление «Технические науки» (секция «Актуальные проблемы компьютерной визуализации») / РАЕ. - Москва, 2017.
Аннотация
Реализация анимации изображения с помощью ассемблера. Гериханов Владимир Русланович, Абрамова Оксана Фёдоровна. Волжский политехнический институт (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет" Волжский, Россия
В данной статье будет рассмотрена реализация анимации изображения, при помощи ассемблера.
Ключевые слова: ассемблер, анимация, изображение, вывод.
Annotation
Implementation of graphic images by means of
Assembler. Gerikhanov Vladimir Ruslanovich, scientific director Abramova Oksana Fyodorovna. Volzhskiy Polytechnical Institute, branch of the Volgograd State Technical University Volzhskiy, Russia
In this article we will consider the implementation of image animation using assembler.
Keywords: Assembler, animation, image, output.
Размещено на Allbest.ru
...Подобные документы
Устройства для создания примитивной анимации. История развития анимирования 70-х годов. Трехмерная система анимации фигур. Создание искусственного человека, неотличимого от настоящего. Достижения освещения и текстурирования. Деформация 2D и 3D объектов.
презентация [1,4 M], добавлен 06.02.2013Описание этапов создания анимированного GIF изображения мультипликационного героя "Винни-Пуха" в программе Adobe Photoshop CS6. Создание дубликата слоя изображения и подготовка кадров для GIF анимации. Настройка эффектов анимации и результат GIF-файла.
лабораторная работа [1,2 M], добавлен 05.03.2015Методы создания двумерных и трехмерных изображений. Классификация средств компьютерной графики и анимации. Системы для работы с видео и компоновки. Обзор программных продуктов для создания презентаций, двумерной и трехмерной анимации, 3D-моделирования.
реферат [30,5 K], добавлен 25.03.2015Назначение компьютерной графики. Особенности трехмерной анимации. Технология создания реалистичных трехмерных изображений. Компьютерная графика для рисования на SGI: StudioPaint 3D. Пакет PowerAnimator как одна из программ трехмерной анимации на SGI.
реферат [25,7 K], добавлен 31.03.2014Понятие, принципы и инструментальное обеспечение создания компьютерной анимации как искусства создания движущихся изображений с использованием компьютера. Поисковые системы Internet, их функции и назначение, оценка возможностей, условия использования.
контрольная работа [141,4 K], добавлен 06.03.2014Ознакомление с понятием компьютерной графики. Области применения конструкторской и рекламной графики, компьютерной анимации. Рассмотрение преимущества графической визуализации бизнес-процессов. Особенности кольцевой, биржевой и лепестковой диаграмм.
реферат [94,6 K], добавлен 02.02.2016Направления и виды компьютерной графики. Векторные и растровые изображения, их отличия. Фрактальная графика, основанная на математических вычислениях. Компьютерная графика в производстве, архитектуре, науке и медицине, искусстве, анимации и Web-дизайне.
реферат [428,8 K], добавлен 09.12.2013Требования к функциональным характеристикам, составу и параметрам технических средств, информационной и программной совместимости. Описание программы: общие сведения, логическая структура. Средства и порядок испытаний. Входные и выходные данные.
курсовая работа [6,3 M], добавлен 12.01.2015Особенности и основные этапы создания изображения с тремя движущимися объектами при помощи графического режима Graph в Паскале. Разработка программы с текстом не меньше четырехсот строк. Использование динамической памяти при создании движения изображения.
отчет по практике [564,7 K], добавлен 14.06.2014Исследование оборудования компьютера с помощью настроек BIOS, теста видеокарты, тестирующих программ POST и Everest, операционной системы Windows XP. Технические характеристики процессора, материнской платы, жесткого диска, памяти, периферийных устройств.
практическая работа [10,8 M], добавлен 28.05.2012Компьютерная графика. Пиксели, разрешение, размер изображения. Типы изображений. Черно-белые штриховые и полутоновые изображения. Индексированные цвета. Полноцветные изображения. Форматы файлов. Цвет и его модели. Цветовые модели: RGB, CMYK, HSB.
реферат [18,1 K], добавлен 20.02.2009Элементы интерфейса графического редактора Macromedia Flash. Создание изображений, преобразование формы и заливки. Использование слоев и библиотечных образцов. Разработка анимации в среде Flash. Реализация мультипликации, ее звуковое сопровождение.
курсовая работа [1,3 M], добавлен 15.11.2013Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства.
дипломная работа [6,3 M], добавлен 17.06.2012Исследование способов создания компьютерного изображения. Создание анимации по ключевым кадрам и траектории, при динамических симуляциях и методом захвата движения. Использование векторной, растровой, фрактальной, двухмерной и трехмерной графики.
презентация [1002,0 K], добавлен 23.06.2015Рассмотрение проблемы создания трехмерного динамического изображения вращения пирамиды. Особенности построения в среде Microsoft Visual Studio пользовательского интерфейса, позволяющего изменять параметры визуализации и взаимодействовать с программой.
курсовая работа [221,7 K], добавлен 06.02.2013Современные системы компьютерной математики. Графический способ решения уравнений с параметрами. Возможности системы Mathcad для создания анимации графиков функций. Процесс создания анимации. Использование анимационной технологии систем математики.
контрольная работа [617,1 K], добавлен 08.01.2016Описание алгоритма поворота изображения. Вычисление синуса и косинуса угла поворота изображения. Алгоритм и реализация функции поворота изображения вокруг центра на заданный пользователем угол. Проверка на соответствие диапазону допустимых значений.
курсовая работа [1,3 M], добавлен 23.01.2015Алгоритмизация вычислительных процессов. Разработка интерфейса пользователя программы. Создание программного кода, анимации, справочной системы. Разработка программы для вычисления коэффициента мощности выпрямителя. Вывод графического изображения.
курсовая работа [1,9 M], добавлен 28.04.2014Освоение методов манипуляции параметрами SVG изображений при помощи JavaScript и возможности по анимации в современных браузерах. Интерфейс и структура модуля визуализации данных. Определение аномальных данных и их определение, реализованные типы.
курсовая работа [1,7 M], добавлен 20.05.2014Память персонального компьютера, основные понятия. Характеристика внутренней и внешней памяти компьютера. Логическое отображение и размещение. Классификация компьютерной памяти по назначению, по удаленности и доступности для центрального процессора.
контрольная работа [1,8 M], добавлен 27.11.2010