Трехмерная графика и анимация

         

Анимация персонажей в 3ds max

Я хотел поделиться методами своей работы, представлениями и идеями, касающимися анимации персонажей игр в реальном времени в 3ds max 6 и в character studio 4.2. На сайте рассказывается обо всем, что имеет отношение к процессу анимации в этих двух пакетах. Разработка, моделирование, текстурирование, конструирование, задание весов, установка ключевых кадров, захват движения и экспорт на игровой движок -все это описано на страницах данного сайта. Он адресован и начинающим, и уже опытным пользователям 3ds max, но это не пересказ руководств и учебных пособий, которые поставляются вместе с программным обеспечением. Сайт дополняет их.
Вы должны хорошо ориентироваться в основах 3ds max 6 и по крайней мере просмотреть пособия по анимации, иначе вы не сможете понять терминологию, которая используется здесь. Идеи, советы, приемы и методы я иллюстрировал с помощью нескольких персонажей из игр или проектов, которые создал за последние полтора года. Чаще всего использовался персонаж Betty Bad (Отчаянная Бетти) из одноименной игры, выпущенной в январе 2002 года компанией WildTangent. Основная моя задача - показать процесс обдумывания и создания объекта, который станет законченным персонажем игры. Я надеюсь, что описал в общих чертах то, чем занимаюсь каждый день на протяжении последних девяти лет, а именно анимацию персонажей. Это не просто моя работа, это мое хобби, моя страсть и любимый предмет для обсуждения.

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

Подготовка к анимации
Анимация на основе ключевых кадров. Часть 1
Анимация на основе ключевых кадров. Часть 2
Использование захвата движения
Сводим все вместе

Энциклопедия 3ds max 6

Программа 3ds max версии 6 (в дальнейшем называемая просто max 6) является собственностью компании Autodesk и разработана ее отделением - фирмой Discreet, специализирующейся на создании программных средств фильтрации изображений, видеомонтажа, компьютерной графики и анимации. Программа max 6 относится к семейству программ трехмерной компьютерной графики или, как ее еще называют, ЗD-графики (3 Dimensional - трехмерная) и предназначена для синтеза выходных продуктов двух типов:
отдельных изображений, имитирующих сцены из жизни реальных или вымышленных миров с фотографической детальностью и качеством. При этом помимо традиционных плоских изображений в max 6 предусмотрена возможность сохранения таких картин в новом формате - в виде цилиндрических или сферических интерактивных панорам, позволяющих создать эффект присутствия зрителя в центре сцены, которую можно рассматривать, «поворачивая голову»;
анимационных видеоклипов, то есть наборов отдельных изображений, фиксирующих последовательные стадии движений или изменений каких-то свойств запечатленных на них объектов. При просмотре таких видеоклипов с определенной частотой смены кадров создается иллюзия плавных движений объектов или изменений их формы, цвета, прозрачности и т. п.



Общие сведения о 3ds max 6
Модальные и немодальные окна диалога
Инструменты выделения объектов
Конфигурирование и использование привязок
Импорт файлов формата STL

Создание геометрических примитивов, кусков Безье и NURBS-поверхностей
Линия
Создание объектов типа Boolean
Порядок создания объемных деформаций
Нацеленный прожектор
Инструменты модификации объектов
Настройка весов вершин сетки

Редактирование сплайнов на уровне сплайнов
Редактирование NURBS-поверхностей
Просмотр материалов
Стандартные и усовершенствованные материалы
Отмена назначения карт текстур

Составные карты текстур
Визуализация сцен и имитация эффектов внешней среды
Настройка параметров фильтра
Возможные причины замены контроллеров
Создание ветвящихся систем костей
Отладчик сценариев языка MAXScript

Самоучитель по 3dsmax 7

Программа 3ds max характеризуется продуманным интерфейсом и относительной легкостью в освоении. Этим можно объяснить ее большую популярность. Богатый инструментарий дает разработчику трехмерной графики возможность реализовать в программе любую задумку.
Публикация состоит из восьми глав, каждая из которых условно разделена на две части — теоретическую и практическую. В начале каждой главы содержатся теоретические сведения о работе в 3ds max 7, а в конце — один или несколько уроков, которые помогут закрепить изученный материал.
Не претендует на полноту освещения всех возможностей 3ds max 7, в ней описаны инструменты, которые используют разработчики трехмерной графики чаще всего.Это обусловлено тем, что рассчитано все на пользователей, начинающих освоение программы.
Особое внимание уделено средствам, которые недавно появились в 3ds max, например, в гл. 4 рассматривается работа со встроенными в 3ds max 7 модулями Character Studio, Particle Flow и reactor 2, а также использование окон Parameter Collector и Parameter Editor, в гл. 7 описан интегрированный в 3ds max 7 визуализатор mental ray 3.3. Практические уроки в конце каждой главы дадут вам возможность освоить все средства создания трехмерной графики, о которых идет речь.
Уроки постепенно усложняются, и их следует выполнять один за другим. Это обеспечит постепенное повышение уровня владения инструментарием 3ds max 7. В конце каждого урока дается краткий перечень того, чем должен был овладеть читатель после выполнения урока.

Предисловие
Введение в трехмерную графику
Основные принципы работы в 3ds max7
Моделирование
Моделирование (часть 2)

Создание трехмерной анимации
Текстурирование объекта
Освещение сцены. Виртуальные камеры
Визуализация готовой сцены

3D программирование
Заключение
Приложение

Анимация для Интернет

Вниманию читателей предлагаются некоторые способы создания анимации с помощью компьютера. Хотя в качестве конечной цели рассматривается размещение анимации в Интернете, тем не менее описанные здесь способы могут быть использованы и при создании рекламных роликов, мультипликационных фильмов и для других применений движущихся изображений.
Существует значительное количество программных продуктов, позволяющих реализовать те или иные методы анимации. У нас рассматриваются только наиболее распространенные из них, как простые, так и значительно более сложные, обладающие различными наборами возможностей. Не претендуя на полноту обзора существующих программных продуктов, автор, однако, старался обратить внимание на их отличительные особенности и соответствие современным требованиям.
Ориентируясь на читателей, которым уже известны понятия векторной и растровой графики, умеющих работать в операционной системе Windows и устанавливать в ней приложения, а также работать с их справочными системами, автор старался создать достаточно компактный курс, позволяющий познакомиться с основами анимации и возможностями различных программ. Это даст возможность читатель в дальнейшем грамотно выбрать подходящий программный продукт в соответствии с задачей, стоящей перед ним, добиваясь требуемого результата с минимумом усилий и затрат.

Ulead GIF Animator
Jasc Animation Shop
Adobe ImageReady
Macromedia Flash
Corel R.A.V.E
Adobe After Effects

Введение в японскую анимацию

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

Бытовая культура
Новые стилистические нюансы

Дополнительные техники анимации

Во многих случаях искусство требует трансцендентных способов выражения. Оно имеет внутреннюю гармонию. Для лучшего понимания задач, возникающих в процессе создания компьютерной графики, нужно осознать, с чем вы работаете и к чему вы стремитесь.
Приступив к изучению Maya, вы начинаете знакомство с новым языком, с новым средством общения. Помните, что техника, которую вы получаете в руки, является лишь средством конечного выражения вашей фантазии. Поэтому насладитесь процессом работы.
Цифровые студии нанимают в первую очередь профессиональных художников, то есть людей, имеющих опыт в традиционных искусствах, например рисовании, живописи, фотографии или скульптуре. Соответственно, изучение компьютерной графики следует начать с обзора ключевых принципов искусства. Именно этому и посвящена данная глава. Всегда следует помнить, что компьютер, с которым вы работаете, — не более чем инструмент.
В последние десятилетия интерес к компьютерной графике значительно возрос. В немалой степени это является следствием появления на рынке мощных компьютеров по относительно низким ценам. Начиная с конца 90-х годов оборудование для создания анимации стало доступным для индивидуальных пользователей.

Скелеты и кинематика
Базовые концепции освещения
Настройки визуализации
Динамические взаимодействия

Все о Meta Creation Poser
Как можно назначить объекту материал с помощью позы?

Основы анимации

LightWave - это мощная программа для 3D-моделирования, анимации и визуализации. Данный продукт может применяться в самых разнообразных областях: от создания высококачественных изображений для полиграфии до выполнения всевозможных спецэффектов в кино и телевидении. Используя широчайший набор инструментов моделирования и анимации, предоставляемых пакетом LightWave, можно в мельчайших подробностях воссоздать тонущий «Титаник» или оживить героя видеоигры. Непревзойденное фотографическое качество получаемых изображений многие считают промышленным стандартом.
Несмотря на то что LightWave - очень мощный программный продукт, он сравнительно прост в изучении и, кроме того, легко и быстро настраивается. Предусмотрены варианты конфигурации программы для начинающих и опытных пользователей. В главах 3-5 описывается Modeler (Редактор моделей), предназначенный для моделирования объектов; в главах 6-13 рассматривается Layout (Редактор сцены), который используется для создания анимации, настройки внешнего вида моделей, освещения, композиции и визуализации сцены. Тщательно подобранные примеры позволяют быстро освоить принципы работы одного из самых популярных программных продуктов трехмерного моделирования. Читайте внимательно, и, возможно, в один прекрасный день мы увидим на экране и вашу работу.

Понятие об объектах
Свет и световые эффекты
Анимация по опорным кадрам

Тайминг в анимации

Английское слово «timing» не имеет прямого аналога в русском языке. Оно может означать темпоритм, синхронизацию, хронометраж. В контексте данной книги его следует понимать как расчет движения во времени и пространстве. Чтобы не повторять каждый раз столь длинный оборот речи, мы оставляем это слово таким, как оно звучит в оригинале - «тайминг*, имея в виду совокупность заключенных в нем значений и расшифровывая в конкретных случаях его специфический смысл.
Книга рассказывает об элементарных законах движения и адресована начинающим аниматорам. Однако время — «тайминг» - настолько сложный и малоизученный компонент анимационного фильма, что приведенные здесь сведения могут оказаться полезными и искушенному профессионалу. Недаром ритм считается высшей математикой анимации.

Продолжение

Java

Основная идея, лежавшая в разработке технологии Enterprise JavaBeans -- создать такую инфраструктуру для компонент, чтобы они могли бы легко ``вставляться'' (``plug in'') и удаляться из серверов, тем самым увеличивая или снижая функциональность сервера. Технология Enterprise JavaBeans похожа на технологию JavaBeans в том смысле, что она использует ту же самую идею (а именно, создание новой компоненты из уже существующих, готовых и настраиваемых компонент, аналогиично RAD-системам), но во всем остальном Enterprise JavaBeans -- совершенно иная технология.

Как заставить AJAX читать между строк
Метод getTime
Объект Math
Прецеденты использования системы
Средства разработки Java-приложений
Настройка доменов контроля доступа в JBoss 3.х.х

Java 2 Micro Edition (J2ME)

Эта книга предназначена для разработчиков на Java. Она подходит для профессиональных разработчиков программного обеспечения, а также для продвинутых студентов, аспирантов. Если быть более точным, создатели этой книга ожидают, что читатель хорошо знает язык программирования Java, но не приобрел опыта в программировании с отдельными API сверх основных API Java. Несмотря на возможное отсутствие опыта в какой-либо отдельной области программирования на Java, кроме хорошего знания языка, будет полезно, если читатели имеют, по крайней мере, представление о понятиях и профессиональных выражениях, которые окружают различные технологии Java, как, например, термины, которые связаны с виртуальными машинами, сборкой мусора, загрузкой классов, верификацией классов, интерфейсами родного кода, синхронной компиляцией, AWT, RMI, JDK, JRE и так далее.
Я также предполагаю, однако, что читатель имеет порядочный опыт в объектно-ориентированном программировании. По этой причине я не объясняю объектно-ориентированных понятий, когда они появляются в процессе описания J2ME API, классов, идиом программирования и тому подобного.

Определение платформы Java для портативных устройств
Дейтаграммные соединения и дейтаграммы

Клиентский JavaScript 1.3 Руководство

JavaScript это разработанный корпорацией Netscape межплатформенный объектно-ориентированный язык скриптинга (сценариев). Ядро JavaScript содержит набор основных объектов, таких как Array, Date и Math, и основной набор элементов языка, таких как операции, управляющие структуры и операторы. Ядро JavaScript может быть расширено путём предоставления дополнительных объектов; например:
* Клиентский JavaScript расширяет ядро языка за счёт объектов, управляющих браузером (Navigator или другой подобный web-браузер) и его Document Object Model (DOM). Например, клиентские расширения позволяют приложению размещать элементы на HTML-форме и отвечать на пользовательские события, такие как щелчок мышью, ввод данных в форму и навигация по страницам.
* Серверный JavaScript расширяет ядро языка за счёт объектов, имеющих отношение к работе JavaScript на сервере. Например, серверные расширения позволяют подключиться к реляционной БД, поддерживать непрерывность информации между вызовами приложения или работать с файлами на сервере. JavaScript даёт Вам возможность создавать приложения, работающие в Internet. Клиентские приложения работают в браузере, таком как Netscape Navigator, а серверные приложения запускаются на сервере, таком как Netscape Enterprise Server. Используя JavaScript, Вы можете создавать динамические HTML-страницы, которые обрабатывают пользовательский ввод и работают с данными через использование специальных объектов, файлов и реляционных баз данных.

JavaScript. Обзор
Выражения и Операции
Операторы
Объектная Модель. Детали

Использование Объектов Navigator'а
Безопасность в JavaScript
LiveConnect. Обзор
Отображение Ошибок с Помощью Консоли JavaScript

Спецификация Java Server Pages 1.2

Данная Спецификация защищена авторскими правами, и информация, приведённая здесь, может быть защищена одним или более патентами США, иностранными патентами или задействованными приложениями.
За исключением случаев, указанных в данной лицензии, никакая часть данной Спецификации не может воспроизводиться в любой форме и любым способом без наличия предварительного письменной авторизации Sun Microsystems, Inc. ("Sun") и её лицензоров, если имеются.
Любая часть данной Спецификации и описанной здесь информации управляется терминами и условиями данной лицензии и Export Control Guidelines, как установлено ранее в Terms of Use на сайте Sun.
Просматривая, загружая и копируя данную Спецификацию, Вы соглашаетесь с тем, что Вы прочли, поняли и согласны со всеми терминами и условиями, установленными здесь и далее.
Настоящим документом Sun предоставляет Вам лицензию на бесплатное, неисключительное пользование без права передачи (без права на сублицензию), с сохранением прав интеллектуальной собственности Sun, что является непременным условием использования данной Спецификации для внутренних целей дизайна и разработки Ваших Java-аплетов и приложений, предназначенных для работы на платформе Java, или для создания чисто рабочих реализаций данной Спецификации

Процессы Сообщества Java
Неявное Отображение Входов из Контейнера
Словарь
Прослушиватели/Listeners Событий
IterationTag

Классы Java для работы с потоками

Библиотека классов языка программирования Java содержит многочисленные средства, предназначенные для работы с файлами. И хотя аплеты не имеют доступа к локальным файлам, расположенным на компьютере пользователя, они могут обращаться к файлам, которые находятся в каталоге сервера Web. Автономные приложения Java могут работать как с локальными, так и с удаленными файлами (через сеть Internet или Intranet).
В любом случае, будете ли вы создавать автономные приложения Java или аплеты, взаимодействующие с сервером Web через сеть, вы должны познакомиться с классами, предназначенными для организации ввода и вывода.

Работа с файлами
Создание сетевых приложений
Растровые изображения и анимация

Доступ к базам данных из Java программ и проблемы русификации

Подробное руководство по программированию на Java

Почему вам нужно изучать новый язык программирования Java?
Если ответить на этот вопрос кратко, то потому, что он специально ориентирован на самые передовые технологии, связанные с сетью Internet. Растущая популярность Internet и, в особенности, серверов Web, создает для программистов новые возможности для реализации своих способностей.
Огромное преимущество Java заключается в том, что на этом языке можно создавать приложения, способные работать на различных платформах. К сети Internet подключены компьютеры самых разных типов - Pentium PC, Macintosh, рабочие станции Sun и так далее. Даже в рамках компьютеров, созданных на базе процессоров Intel, существует несколько платформ, например, Microsoft Windows версии 3.1, Windows 95, Windows NT, OS/2, Solaris, различные разновидности операционной системы UNIX с графической оболочкой X­Windows. Между тем, создавая сервер Web в сети Internet, вы бы наверняка хотели, чтобы им могло пользоваться как можно большее число людей. В этом случае вас выручат приложения Java, предназначенные для работы на различных платформах и не зависящие от конкретного типа процессора и операционной системы.
Программы, составленные на языке программирования Java, можно разделить по своему назначению на две большие группы.
К первой группе относятся приложения Java, предназначенные для автономной работы под управлением специальной интерпретирующей машины Java. Реализации этой машины созданы для всех основных компьютерных платформ.
Вторая группа - это так называемые аплеты (applets). Аплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.
Приложения, относящиеся к первой группе (мы будем называть их просто приложениями Java), - это обычные автономные программы. Так как они не содержат машинного кода и работают под управлением специального интерпретатора, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Однако не следует забывать, что программы Java без перетрансляции способны работать на любой платформе, что само по себе имеет большое значение в плане разработок для Internet.
Аплеты Java встраиваются в документы HTML, хранящиеся на сервере Web. С помощью аплетов вы можете сделать страницы сервера Web динамичными и интерактивными. Аплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Из соображений безопасности аплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web. Более сложную обработку данных можно выполнять, организовав взаимодействие между аплетами и расширениями сервера Web - приложениями CGI и ISAPI.
Для повышения производительности приложений Java в современных браузерах используется компиляция "на лету"- Just-In-Time compilation (JIT). При первой загрузке аплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения аплета Java увеличивается в несколько раз.

Введение в Java
Первое приложение
Рисование в окне аплета
События
Работа с системой Layout Manager
Окна и диалоговые панели

Программирование на Java.Подробное руководство

В данном разделе представлены подробные материалы по языку Java и многочисленные примеры программирования на Java. Вы познакомитесь с принципами и технологиями, положенными в основу этого языка, изучите библиотеки классов Java, научитесь пользоваться современными визуальными средствами разработки приложений Java, такими как Java WorkShop и Java Studio.
Многочисленные примеры приложений и аплетов помогут вам в кратчайшие сроки освоиться в мире Java.

Первое приложение Java
Первый аплет Java
События
Работа с системой Layout Manager
Многопоточность
Работа с файлами
Создание сетевых приложений
Растровые изображения и анимация
Звук в аплетах Java

Программирование Java

Java широко известна как новейший объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок (кроссплатформенность). Еще с Java почему-то всегда связана тема кофе (изображения логотипов, названия продуктов и т.д.). Программисты могут добавить к этому описанию, что язык похож на упрощенный С или С++ с добавлением garbage collector'а - автоматического сборщика "мусора" (механизм освобождения памяти, которая больше не используется программой). Также известно, что Java ориентирована на Internet, и самое распространенное ее применение - небольшие программы, апплеты, которые запускаются в браузере и являются частью HTML-страниц.
Критики, в свою очередь, утверждают, что язык вовсе не так прост в применении, многие замечательные свойства лишь заявлены, а на самом деле не очень-то работают, а главное - программы на Java исполняются чрезвычайно медленно. Следовательно, это просто некая модная технология, которая только на время привлечет к себе внимание, а затем исчезнет, как и многие другие.

Методы для настройки параметров разборщика
Многопоточная архитектура
Классы-обертки
Система ввода/вывода. Потоки данных (stream)

Программирование на Java

Java широко известна как новейший объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок (кроссплатформенность). Еще с Java почему-то всегда связана тема кофе (изображения логотипов, названия продуктов и т.д.). Программисты могут добавить к этому описанию, что язык похож на упрощенный С или С++ с добавлением garbage collector'а - автоматического сборщика "мусора" (механизм освобождения памяти, которая больше не используется программой). Также известно, что Java ориентирована на Internet, и самое распространенное ее применение - небольшие программы, апплеты, которые запускаются в браузере и являются частью HTML-страниц.
Критики, в свою очередь, утверждают, что язык вовсе не так прост в применении, многие замечательные свойства лишь заявлены, а на самом деле не очень-то работают, а главное - программы на Java исполняются чрезвычайно медленно. Следовательно, это просто некая модная технология, которая только на время привлечет к себе внимание, а затем исчезнет, как и многие другие.

Что такое Java?
Кодировка
Простые и составные имена. Элементы
Виды приведений
Массивы как тип данных в Java

Программирование на языке Java

Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той, которая реализована в языке Java, революционной — вас могут закидать тухлыми яйцами или занести в разряд пустозвонов, падких на модные новинки. Что же в таком случае делает тот или иной продукт революционным ? Он не может быть только лишь компактней, быстрее и дешевле. Такой продукт должен изменить весь стиль работы, радикально упростив решение сложных проблем.
Создание языка Java — это действительно один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет. Язык HTML (Hypertext Markup Language — язык разметки гипертекста) был необходим для статического размещения страниц во “Всемирной паутине” WWW (World Wide Web). Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.
Три ключевых элемента объединились в технологии языка Java и сделали ее в корне отличной от всего, существующего на сегодняшний день.

Революция по имени Java
Конструкторы
Меню
Компоненты
Оператор implements
RGBImageFilter
Зарезервированные слова Java

Начинаем программировать на языке Java

Задумывая этот практикум, я первым делом задал себе вопрос: какими должны быть статьи, обучающие программированию на новом языке? Проанализировав опыт различных изданий, я пришел к выводу, что не стоит начинать с нуля, - для того написаны толстые тома, приобрести которые можно в любом книжном магазине. Я пишу для тех, кто уже имел дело с языком С++. Руководствуясь материалами этого практикума, программист, имеющий опыт написания приложений на С++, сможет освоить написание программ на языке Java. Хочу предупредить читателей: возможно, некоторые места вы поймете не сразу. Не стоит огорчаться, впоследствии, когда мы с вами начнем писать конкретные программы, многое прояснится.

Продолжение

Программирование мобильных телефонов на Java

Рынок мобильных телефонов - это, пожалуй, самый быстроразвивающийся сегмент рынка. Несколько лет назад мобильный телефон был чем-то дорогим и недосягаемым. Оплата за связь была астрономической. Но времена меняются, связь подешевела, мобильные телефоны продаются на каждом углу и наличие телефона у человека можно уже сравнить с наличием обычных наручных часов.
Обилие разнообразных моделей телефонов создает на этом рынке большую конкуренцию. Множество производителей стараются включить в телефоны как можно больше различных функций. Присутствием в телефоне адресной книги, органайзера, будильника и даже счетчика калорий уже никого не удивишь, и в какой-то момент времени возник вопрос, а чем же еще можно оборудовать телефон? Самым идеальным решением этого вопроса могла стать возможность загрузки в телефон программ сторонних производителей. Не секрет, что основная масса телефонов работает на основе прошивки, поэтому загрузка программ в телефон не возможна. Чтобы такая возможность появилась, производителям надо было бы решить ряд сложных вопросов. Во-первых - это язык программирования, на котором будут писаться программы для телефонов и, соответственно,, поддержка этого языка самим телефоном. Второе - это аппаратная архитектура мобильных телефонов, которая сильно ограничена в своих системных ресурсах, а это процессор, память, графический интерфейс. Улучшение архитектуры неизменно ведет к увеличению стоимости телефона, поэтому идеальной в этом случае стала платформа Java 2 Micro Edition, созданная компанией Sun Microsystems.
Платформа Java 2 ME состоит из виртуальной Java машины, языка программирования Java и огромного количества библиотек, облегчающих работу программиста. Язык программирования Java работает на основе интерпретации, поэтому для работы программ написанных на этом языке необходима виртуальная Java машина, встроенная в устройство, на котором планируется запускать Java программы. Наличие виртуальной Java машины в мобильном телефоне означает, что производитель поддерживает технологию Java. В данный момент практически все производители имеют поддержку Java технологии, что позволяет писать любые программы на этом языке и загружать их в телефон.

Устройство мобильных телефонов
Средства разработки мобильных приложений
Механизм работы приложений Java 2 ME
Программирование графики
Основы языка Java

Программирование мобильных телефонов на Java

Рынок мобильных телефонов - это, пожалуй, самый быстроразвивающийся сегмент рынка. Несколько лет назад мобильный телефон был чем-то дорогим и недосягаемым. Оплата за связь была астрономической. Но времена меняются, связь подешевела, мобильные телефоны продаются на каждом углу и наличие телефона у человека можно уже сравнить с наличием обычных наручных часов.
Обилие разнообразных моделей телефонов создает на этом рынке большую конкуренцию. Множество производителей стараются включить в телефоны как можно больше различных функций. Присутствием в телефоне адресной книги, органайзера, будильника и даже счетчика калорий уже никого не удивишь, и в какой-то момент времени возник вопрос, а чем же еще можно оборудовать телефон? Самым идеальным решением этого вопроса могла стать возможность загрузки в телефон программ сторонних производителей. Не секрет, что основная масса телефонов работает на основе прошивки, поэтому загрузка программ в телефон не возможна. Чтобы такая возможность появилась, производителям надо было бы решить ряд сложных вопросов. Во-первых - это язык программирования, на котором будут писаться программы для телефонов и, соответственно,, поддержка этого языка самим телефоном. Второе - это аппаратная архитектура мобильных телефонов, которая сильно ограничена в своих системных ресурсах, а это процессор, память, графический интерфейс. Улучшение архитектуры неизменно ведет к увеличению стоимости телефона, поэтому идеальной в этом случае стала платформа Java 2 Micro Edition, созданная компанией Sun Microsystems.

Устройство мобильных телефонов
Платформа Java 2 Micro Edition
Средства разработки мобильных приложений

Телефонные эмуляторы
Механизм работы приложений Java 2 ME
Классы пользовательского интерфейса
Программирование графики
Техника создания игр

Мобильная мультимедиа-библиотека

Философия Java

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

Развитие абстракции
Математические операторы
Конструкторы и полиморфизм
Обработчики исключений
События и типы слушателей
Почему JDBC API выглядит так сложно

Ограничения апплета
Поиск в отсортированном массиве
Protected: “тип дружественного доступа”
Проверка конфигурации
Stack
Видимость и время жизни объектов

Электронный магазин на Java и XML

Одна из причин быстрого распространения XML заключается в том, что Интернет способствует знакомству широких слоев пользователей с HTML, стандартным языком разметки web-страниц. HTML помог многим пользователям получить представление о том, как с помощью тегов в простой текст можно включать дополнительную информацию. Основываясь на этой идее, можно сделать следующий небольшой, хотя и нетривиальный, шаг — перейти к использованию тегов XML для описания данных.
Наиболее очевидным преимуществом XML является возможность расширения этого языка для решения специфических для каждого пользователя задач. Эта возможность делает XML столь привлекательным для тех, кому приходится работать с различными типами данных в какой-либо специальной области. Другoe, не столь очевидное преимущество заключается в том, что для любых расширений этого языка при проверке и обработке данных можно продолжать использовать инструментарий XML, если только при записи данных соблюдены правила языка.

Введение
Описание данных с помощью XML
Каталог товаров на XML
Представление XML-каталога в сети
Заполнение корзины покупателя

Оплата и подтверждение заказа
Обслуживание виртуального каталога
Поиск своего покупателя с помощью опросов
Новости на сайте

Привлечение постоянных посетителей
Web-приложения на Java
Интерфейсы API для сервлетов и JSP-страниц
Словарь терминов

Электронный магазин на Java и XML

Одна из причин быстрого распространения XML заключается в том, что Интернет способствует знакомству широких слоев пользователей с HTML, стандартным языком разметки web-страниц. HTML помог многим пользователям получить представление о том, как с помощью тегов в простой текст можно включать дополнительную информацию. Основываясь на этой идее, можно сделать следующий небольшой, хотя и нетривиальный, шаг — перейти к использованию тегов XML для описания данных.
Наиболее очевидным преимуществом XML является возможность расширения этого языка для решения специфических для каждого пользователя задач. Эта возможность делает XML столь привлекательным для тех, кому приходится работать с различными типами данных в какой-либо специальной области. Другoe, не столь очевидное преимущество заключается в том, что для любых расширений этого языка при проверке и обработке данных можно продолжать использовать инструментарий XML, если только при записи данных соблюдены правила языка.

Введение
XML и электронная коммерция
Технологии представления
Процесс оплаты
Разработка системы показа новостей
Параметры приложений

Программирование на Java

Java широко известна как новейший объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок (кроссплатформенность). Еще с Java почему-то всегда связана тема кофе (изображения логотипов, названия продуктов и т.д.). Программисты могут добавить к этому описанию, что язык похож на упрощенный С или С++ с добавлением garbage collector'а - автоматического сборщика "мусора" (механизм освобождения памяти, которая больше не используется программой). Также известно, что Java ориентирована на Internet, и самое распространенное ее применение - небольшие программы, апплеты, которые запускаются в браузере и являются частью HTML-страниц.
Критики, в свою очередь, утверждают, что язык вовсе не так прост в применении, многие замечательные свойства лишь заявлены, а на самом деле не очень-то работают, а главное - программы на Java исполняются чрезвычайно медленно. Следовательно, это просто некая модная технология, которая только на время привлечет к себе внимание, а затем исчезнет, как и многие другие.

Алгоритм отрисовки
Многопоточная архитектура
Классы-обертки
Класс Date
Основы модели OSI

Язык и архитектура Java

Ада-95. Компилятор GNAT

Современное общество все больше зависит от программного обеспечения.
Стремительное падение цен на оборудование позволяет, в настоящее время, осуществлять разработку больших программных комплексов, целевое предназначение которых весьма разнообразно.
Таким образом, транспортные, финансовые, медицинские и военные системы во все возрастающей степени зависят от программного обеспечения.
В результате этого, все больше возрастают требования к надежности разрабатываемого программного обеспечения.
Характерной особенностью языка программирования Ада является то, что он специально проектировался как инструмент разработки больших программных комплексов реального времени для встроенных компьютерных систем, к которым предъявляются высокие требования надежности.
В первую очередь, такие требования предъявляются к системам военного предназначения.
Однако, это не исключает применение языка Ада для решения всевозможных задач вычислительного характера, параллельной обработки, моделирования промышленных и технологических процессов в реальном масштабе времени, системного программирования и т.д.
Более того, язык Ада часто рассматривается как язык общего назначения.
К сожалению, существующая на русском языке литература, посвященная языку программирования Ада, в большинстве случаев, относится к старому стандарту языка Ада (Ada-83).

Некоторые исторические сведения
Первая программа
Возбуждение исключений
Описание простого массива
Преобразование численных типов

Создание задачи
Язык Ада - взгляд "сверху вниз"
Система Ада-компилятора GNAT
Знакомство с командами GDB
Директивы компилятора (pragma)

"Адское" программирование Ada-95 -Компилятор GNAT

Характерной особенностью языка программирования Ада является то, что он специально проектировался как инструмент разработки больших программных комплексов реального времени для встроенных компьютерных систем, к которым предъявляются высокие требования надежности. В первую очередь, такие требования предъявляются к системам военного предназначения. Однако, это не исключает применение языка Ада для решения всевозможных задач вычислительного характера, параллельной обработки, моделирования промышленных и технологических процессов в реальном масштабе времени, системного программирования и т.д. Более того, язык Ада часто рассматривается как язык общего назначения.
К сожалению, существующая на русском языке литература, посвященная языку программирования Ада, в большинстве случаев, относится к старому стандарту языка Ада (Ada-83). Таким образом, основной целью данной книги является попытка ликвидировать образовавшийся информационный пробел. Данная работа рассматривает средства языка программирования Ада в соответствии с действующим в настоящее время стандартом Ada-9 Представленный материал может быть полезен и интересен широкому кругу специалистов, чья работа связана с вычислительной техникой и программированием.

Основное содержание материала логически разделено на четыре части:
Первая часть посвящена обзору средств и возможностей языка Ада, в соответствии с действующим в настоящее время стандартом Ada-9
Вторая часть служит дополнением к первой части, и ее цель - дать некоторое представление об идеологии программирования на языке Ада.
Третья часть посвящена инструментальным средствам, и она рассматривает поставку компилятора GNAT, поскольку он является свободно доступным (включая исходные тексты).
Четвертую часть составляют приложения, которые содержат некоторый справочный и информационный материал.

Следует заметить, что представленный материал не можт расцениваться как исчерпывающий. Так, ввиду ограниченности объема книги, опущено обсуждение целого ряда самостоятельных тем, примерами которых могут служить: "Спецификация семантического интерфейса Ады" (ASIS - Ada Semantic Interface Specification), программирование распределенных систем (Distributed Systems), программирование систем реального времени (Real-Time Systems)...
Необходимо также заметить, что данная работа не может расцениваться как перевод стандарта, поэтому, в случае возникновения каких-либо конфликтных ситуаций, которые могут возникнуть при реальной работе, необходимо непосредственно обращаться к Ada-95 Reference Manual, который всегда является истиной в последней инстанции.

Введение
Сюрпризы переводной терминологии
Пакет Ada.Direct_IO
Особенности программирования защищенных входов
Приоритеты задач
Ссылочные типы для динамической памяти
Язык Ада - взгляд "сверху вниз"
Доступность средств разработки
Пакеты
Директивы компилятора

Cамоучитель по Adobe Audition 1.5

Книга посвящена Adobe® Audition™ — программе, принадлежащей к числу наиболее мощных звуковых редакторов. Здесь мы рассмотрели применение программы для записи и обработки высококачественного звукового сопровождения для цифрового видео. Предшественниками Adobe® Audition™ являются программы Cool Edit и Cool Edit Pro. Все лучшее из этих программ сохранено в Adobe® Audition™, кроме того, здесь появились новые средства обработки звука.
В своих книгах мы много раз обращались к различным версиям Cool Edit. В книге [2] вместе с начинающими компьютерными музыкантами мы впервые совершили попытку освоения принципиально важных возможностей Cool Edit 96. Оценив удобство, надежность, высокое качество функционирования программы, а также высочайшую степень насыщенности ее самыми современными методами и алгоритмами обработки аудиосигналов, в книге [8] мы довольно подробно рассказали о приемах работы с Cool Edit Pro 1.2. Эта версия принципиально отличалась от предшествующих: в ней впервые в качестве "программы в программе" появился мультитрековый редактор. Очень наглядно, просто и, вместе с тем, эффективно организовано в Cool Edit Pro 1.2 выполнение всех операций и с отдельными аудиофайлами (запись, монтаж, шумоподавление, динамическая обработка, фильтрация, обработка эффектами), и с группой файлов-блоков (монтаж на параллельных треках, панорамирование, достижение баланса уровней громкости, сведение в стереотрек).

Готовим программу к работе
Анализируем запись и определяем стратегию обработки сигнала
Корректируем спектр и преобразуем стереополе
Сводим мультитрековый проект в стерео

Обработка звука в Adobe Audition 1.5

Особенности программы, о которых нужно помнить
Для того чтобы эффективно применять программу Adobe Audition в своем творчестве, нужно иметь представление о ее некоторых принципиальных особенностях. Рассмотрим их.
Программа Adobe Audition предназначена для работы с оцифрованным звуком, т. е. аналоговые звуковые волны должны быть предварительно преобразованы (сэмплированы) в последовательность двоичных цифровых отсчетов. Такое преобразование осуществляется в аналого-цифровом преобразователе (АЦП). В результате работы АЦП получается цифровой образ звука, — то, что по-английски называется Waveform (волновая форма). Волновые формы хранятся на жестком диске в файлах различных форматов. Чаще всего это файлы с расширением имени WAV. Таким образом, когда вы "собираете" в Adobe Audition аудиокомпозицию, WAV-файлы служат стандартными элементарными блоками, кирпичиками.
В Adobe Audition есть два принципиально различных режима работы: редактирование отдельных волновых форм и совместное мультитрековое редактирование совокупности волновых форм. У каждого из режимов есть свое главное меню и свое главное окно: Edit Waveform View и Multitrack View --два различных по назначению звуковых редактора, объединенных в функциональный комплекс. Важно понимать, что операции редактирования, выполняемые в режиме Edit Waveform View (подобные вырезке, вставке и обработке эффектами), по своей сути являются разрушающими, и когда вы сохраняете файл, изменения вносятся непосредственно в волновую форму. Редактирование, выполненное в Multitrack View (перенос, состыковка волновых форм, изменение громкости, панорамы, параметров эффектов реального времени и т. п.), является неразрушающим.
Функция многократной отмены Undo дает вам свободу при работе над волновыми формами. Не стоит переживать о том, что самый интересный результат творчества вдруг может оказаться безвозвратно утраченным. Однако за свободу приходится платить. В данном случае возможность многократной отмены операций достигается ценой затрат дисковой памяти. Правда, все автоматически созданные копии будут также автоматически и удалены с жесткого диска, когда вы закроете файл или выйдете из программы. Но непосредственно в процессе работы с Adobe Audition нужно иметь на диске много свободного места. Впрочем, вы можете ограничить максимальное число уровней Undo или вовсе отключить эту функцию, если есть проблемы с дисковым пространством.

Готовим программу к работе
Учимся работать с файлами, волновыми формами и воспроизводить звук
Записываем звук с микрофона
Анализируем запись и определяем стратегию обработки сигнала

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

Создаем саундтрек к фильму
Сводим проект в surround

Обработка звука в Adobe Audition 1.5

Особенности программы, о которых нужно помнить
Для того чтобы эффективно применять программу Adobe Audition в своем творчестве, нужно иметь представление о ее некоторых принципиальных особенностях. Рассмотрим их.
Программа Adobe Audition предназначена для работы с оцифрованным звуком, т. е. аналоговые звуковые волны должны быть предварительно преобразованы (сэмплированы) в последовательность двоичных цифровых отсчетов. Такое преобразование осуществляется в аналого-цифровом преобразователе (АЦП). В результате работы АЦП получается цифровой образ звука, — то, что по-английски называется Waveform (волновая форма). Волновые формы хранятся на жестком диске в файлах различных форматов. Чаще всего это файлы с расширением имени WAV. Таким образом, когда вы "собираете" в Adobe Audition аудиокомпозицию, WAV-файлы служат стандартными элементарными блоками, кирпичиками.
К имевшимся в ранних версиях программы Cool Edit Pro средствам анализа свойств обрабатываемого звука (таким, как анализаторы текущего и мгновенного спектров, гистограмма распределения уровней аудиосигнала) добавился виртуальный стереогониометр, позволяющий по виду фигур Лиссажу оценить качество стереополя (в частности — моносовместимость создаваемой композиции).
В Adobe Audition встроен фирменный преобразователь WAV-файлов в файлы формата МРЗ.


Готовим программу к работе
Учимся работать с файлами, волновыми формами и воспроизводить звук
Записываем звук с микрофона
Анализируем запись и определяем стратегию обработки сигнала
Избавляемся от огрехов записи, шума и искажений

Корректируем спектр и преобразуем стереополе
Выполняем динамическую обработку
Знакомимся со встроенными эффектами
Сводим мультитрековый проект в стерео

Создаем саундтрек к фильму
Сводим проект в surround

Самоучитель по графике и звуку

Графические редакторы делятся на два главных типа - растровые (битмэ-повые, иногда говорят - битовые, пиксельные) и векторные. Первые предназначены в основном для обработки сканированных изображений и цифровых фотографий, вторые - для рисования.
В последние годы программы обоих типов двинулись навстречу друг другу. В составе растровых редакторов появились инструменты для работы с векторной графикой, а в составе векторных - инструменты для работы с фотоизображениями. Когда-нибудь все это соединится в каком-нибудь могучем универсальном графическом редакторе, одинаково хорошо работающем с обоими способами представления графической информации. А может, еще и с 3D-графикой, и программами создания анимации.
Впрочем, до этого пока далеко. Так что приходится для обработки фотографий использовать одну программу, а для рисования другую (или другие!). (Впрочем, если у вас есть графический планшет, можете рисовать и в Фото-шопе.)

Графические редакторы
CorelDRAW
Звуковые и музыкальные программы
Cakewalk Sonar
Сэмплеры

ChipCorder - устройство записи и воспроизведения звука
SpectraLAB

Справочник по компьютерной графике и звуку

Графические редакторы делятся на два главных типа - растровые (битмэ-повые, иногда говорят - битовые, пиксельные) и векторные. Первые предназначены в основном для обработки сканированных изображений и цифровых фотографий, вторые - для рисования.
В последние годы программы обоих типов двинулись навстречу друг другу. В составе растровых редакторов появились инструменты для работы с векторной графикой, а в составе векторных - инструменты для работы с фотоизображениями. Когда-нибудь все это соединится в каком-нибудь могучем универсальном графическом редакторе, одинаково хорошо работающем с обоими способами представления графической информации. А может, еще и с 3D-графикой, и программами создания анимации.

Adobe Photoshop
Жидкие картинки Команда Liquify
Выбор цвета
CorelDRAW
Как устроен рисунок в CorelDRAW
Обрезка Trim

Sound Forge
Cakewalk Sonar
Текстовый редактор
Сэмплеры
Приложения

Справочник по компьютерной графике и звуку

Графические редакторы
CorelDRAW
Звуковые и музыкальные программы

Cakewalk Sonar
Сэмплеры
Звуковые коды сообщений bios разных производителей
Командует звук