Microsoft DirectX

Microsoft DirectX 2

Microsoft® DirectX™ 2 Комплект Разработки Программного обеспечения (SDK) обеспечивает набор интерфейсов программирования прикладной программы (API) который дает Вам, разработчику, ресурсы необходимые для разработки быстродействующих, в реальном масштабе, времени программ, типа игр и мультимедиа приложений следующего поколения..
Microsoft разработал DirectX 2 SDK по ряду причин. Основная  причина состоит в том, чтобы сделать Windows платформу более эффективной, чем MS DOS  или игровые платформы. Другая причина состоит в том, чтобы поддержать игровые разработки для Microsoft Windows, и помочь Вам,  обеспечивая работу в стандартизированной  и хорошо документированной платформе.

Использование DirectX 2 в Windows
DirectX был разработан, чтобы обеспечить прикладные программы для Microsoft Windows быстродействующий, в реальном масштабе времени доступом к существующим аппаратным средствам на персональных компьютерных системах. DirectX обеспечивает непротиворечивый интерфейс между аппаратными изготовителями и Вами, разработчиком прикладной программы, таким образом уменьшая сложность установки и конфигурации при использовании преимуществ аппаратных средств.

ReleaseDC

IDirectDrawClipper:: Release
Уменьшает счет ссылки объекта DirectDrawClipper на 1. Этот метод - интерфейса IUnknown, унаследованного DirectDraw. Возвращает новый счет ссылки объекта. Объект DirectDrawClipper освобождает себя, когда счет ссылки достигает 0. Используйте метод IDirectDrawClipper:: AddRef, чтобы увеличить счет ссылки объекта на 1.

DDSCAPS_3D
Поддерживается для обратной совместимости. Прикладные программы должны использовать флажок DDSCAPS_3DDEVICE.

Программирование стратегических игр с DirectX 9.0

Привет и добро пожаловать в восхитительный мир программирования стратегических игр! Стратегия всегда была одинм из моих любимых игровых жанров. Ничто в игровом мире не сравнится с длительной стратегической игрой с другом или противником.
Как новичок или начинающий разрвботчик, вы вероятно задаетесь вопросом о том, как создаются подобные игры. Хотя есть множество составляющих, и разработка игры представляет собой длительный процесс, есть некоторые базовые компонеты, о которых я расскажу в этой книге:
Механика игры
Планирование проекта
Блочная графика
Дизайн и разработка интерфейса
Воспроизведение звука
Контроль и управление соединениями
Инструментальные средства разработчика
Трехмерная анимация
Мнногопользовательская игра
Как вы можете видеть, просмотрев список тем, книга охватывает широкий диапазон тем, относящихся к программированию стратегических игр. Вы можете воспринимать эту книгу как набор строительных блоков для разработчика. Каждая тема, или блок, могут рассматриваться отдельно, а соединенные вместе эти блоки дают великолепный результат.

Введение
Если вы новичок или начинающий разработчик игр, и желаете создать основу для производства стратегической игры, эта книга прекрасно подойдет вам. Хотя я и рассматриваю в книге некоторые достаточно сложные темы, я стараюсь сделать их доступными для как можно большей аудитории. Если вы удостокенный многих титулов ветеран разработки игр, вы, возможно, пройдете мимо. После всего, что вы сделали, прочтите книгу! Серьезно, большинство программистов, знакомых с теорией программирования игр, могут воспользоваться примерами чтобы сэкономить время.

Ранние стратегии реального времени
Также, как история древних веков содержит много загадок, прошлое стратегических игр реального времени не является полностью ясным. Многие люди утверждают, что первая стратегия реального времени — это Dune от Westwood, но я вспоминаю намного более ранние примеры игр этого жанра.

Условно бесплатные программы
Ах, условно-бесплатные программы, западня для стремлений. Это простейший метод, который вы можете выбрать для распространения вашей игры. Существует много открытых сайтов, на которых любой желающий может разместить свою игру для бесплатного скачивания. Все, что вам необходимо сделать — это разместить на сайте установочный пакет для скачивания и указать адрес для людей, которые пожелают сделать пожертвование.

Загрузка текстур
Буфер вершин полностью наряжен, но пока нет места куда он мог бы пойти. Как насчет нескольких текстур? Оставшаяся часть кода инициализации осуществляет загрузку текстур, необходимых программе TitleScreen. Для загрузки текстур я использую функцию D3DXCreateTextureFromFile() предоставляемую вспомогательной библиотекой DirectX. Вот как выглядит ее прототип:
HRESULT D3DXCreateTextureFromFile( LPDIRECT3DDEVICE9 pDevice, LPCSTR pSrcFile, LPDIRECT3DTEXTURE9 *ppTexture );

DVD Authoring 1.0 DVD своими руками

DVD постепенно завоевывает рынок и вопросы применения программ и аппаратных решений для работы с DVD становятся все более и более интересными для многих и многих людей. С аппаратной составляющей все более-менее ясно – есть пишущие DVD приводы двух конкурирующих стандартов, есть аппаратные кодеры MPEG для тех, кто не может ждать часами результатов работы программных кодировщиков. Осталось только понять, какие программы можно и/или нужно использовать для создания DVD-Video дисков.

Коротко о многом

DVD Rip

Число DVD приводов в компьютерах у населения стремительно растёт, что позволяет всё новым и новым личностям приобщиться к волшебному миру сверхчёткого изображения (пусть и на маленьком компьютерном мониторе) и потрясающего многоканального звука (хм, а вот с этим ещё сложнее чем с изображением, иногда всё это великолепие подаётся на пару маленьких пластмассовых колоночек). Истинные ценители могут морщить носы, но факт остаётся фактом компьютерное (или, как его ещё можно назвать, карманное) DVD сейчас распространено не меньше (а наверно даже и больше) чем "нормальное". Единственное, что несколько огорчает, так это относительно высокая цена DVD дисков. Положение несколько спасает прокат DVD дисков. Однако, посмотрев взятый на прокат диск, его приходиться возвращать обратно, тогда как интересный фильм иногда охота пересмотреть ещё раз. А ещё раз деньги за прокат платить жалко. Тут поневоле вспоминается тяжёлая жизнь любителей музыки несколько лет назад, когда люди бегали одалживали друг у друга компакты и кассеты, переписывали их по десять раз, и потом слушали эти хриплые, глухие записи и были счастливы. Но потом появился "народный" формат mp3, благодаря которому сейчас у практически каждого уважающего себя владельца PC имеется собственная коллекция музыки на жёстком диске или самолично записанных компактах. Никаких магнитофонов, кассет, потерь качества при перезаписи, и тому подобных печальных эффектов. Конечно же, с современными темпами развития компьютерной техники не могла не появиться подобная mp3 технология, применительно к видео. И она появилась.

DVD Rip
Число DVD приводов в компьютерах у населения стремительно растёт, что позволяет всё новым и новым личностям приобщиться к волшебному миру сверхчёткого изображения (пусть и на маленьком компьютерном мониторе) и потрясающего многоканального звука (хм, а вот с этим ещё сложнее чем с изображением, иногда всё это великолепие подаётся на пару маленьких пластмассовых колоночек)

DVD Decrypter
Как все уже знают (а кто не знает, тот и узнать), DVD диски обладают несколькими степенями защиты, встроенными в сам формат. Самый простой способ выяснить есть защита или нет, это попробовать скопировать видео файл с диска, и проиграть его. Но для этого надо, как минимум, знать что копировать. Поэтому давайте рассмотрим, что вы увидите на типичном DVD видео диске.

FlasKMPEG
Прежде чем приступать к обзору программ для кодирования в Divx, необходимо остановиться на нескольких моментах. Кодирование - это наиболее долгий этап из всего, что придётся делать. В зависимости от мощности компьютера, кодируемого фильма, и используемого программного обеспечения, этот процесс может занять от 10 до 15, и даже больше часов.

Программа Flask
Основные принципы которые необходимо понимать выбирая битрейт, просты. Чем меньше кадров в секунду имеет фильм, тем больший объём данных приходится на каждый конкретный кадр. Чем меньше разрешение фильма, тем более тщательной обработке подвергается каждый пиксель, и тем выше качество изображения.

MPEG2AVI
Mpeg2Avi представляет собой программный пакет, делающий почти всё тоже самое что и Flask, плюс ещё кое что. Это сборник из нескольких утилит, большинство из которых предназначено для командной строки, и GUI.EXE, интерфейс для всех этих программок.

FairUse
Итак, в результате всех вышеперечисленных действий, в зависимости от того, каким из способов вы воспользовались, у вас имеется либо готовый фильм, и ничего больше не надо делать, либо готовый фильм, в котором есть проблемы с синхронизацией. Либо просто набор файлов, отдельно видео, отдельно звуковая дорожка, может быть даже разбитые на несколько кусков

VirtualDub
Её возможности настолько широки, что я и не думаю о том, что бы описать её полностью, опишу только те возможности, которые необходимы для редактирования закодированных фильмов. Запускаем VirtualDub, загружаем в него видеофайл. Меню File - Open Video File

Aspect Ratio
Aspect Ratio (пригодится когда будем рассчитывать разрешение фильма). Тип фильма, PAL или NTSC. требуется ли применение IVTC. На первый вопрос ответ очевиден сразу, второй определяем по Frame Rate (если 25 то PAL, если 30 то NTSC). Ответ на третий вопрос зависит от второго. Если фильм в PAL, значит кадры идут один за другим, и ничего делать не надо.

Nandub - настройки
Определившись с битрейтом, тем или иным способом, можно переходить к настройкам непосредственно SBC, пункт SBC Options... После выбора этого пункта откроется окно, разделённое на несколько закладок. От значений выставленных на этих закладках зависит качество и размер полученного файла.

Кодирование в Nandub
После того, как читатели получили общее представление о настройках Nandub, можно, наконец то, перейти к самому процессу кодирования. Первое с чем надо определиться это... А охота ли вам копаться в настройках самостоятельно, или доверяете кому-либо другому. Если второе, то можно с чистой совестью забыть всё, что было прочитано про настройки Nandub, и воспользоваться одним из готовых конфигурационных файлов.

Деблокинг
Деблокинг – на этих уровнях включаются различные уровни deranging фильтра основанные на изменении цвета. Он призван бороться с артефактами возникающими из за сжатия изображения. На этом уровне включается deranging фильтр основанный на изменении яркости. Для демонстрации работы deranging фильтров, я снова приведу пару картинок их файла справки для Divx v4.



Конвертируем DVD в MPEG4

Технология компрессии MPEG video files (в нашем случае dvd-файлов *.vob) по методу DivX ;-) заключается в следующем: сам алгоритм DivX ;-) применяется в кодеке, который используется в программе непосредственно кодирования и является отдельным подключаемым программным модулем, наряду с другими имеющимися модулями-кодеками. Т.е. для того чтобы преобразовать какой-либо *.vob файл в файл *.avi (получаемый, в частности, при использовании кодеков DivX ) Вам необходимы две вещи - программа-кодер и сами кодеки DivX в качестве подключаемого модуля. Скачиваются и инсталлируются они отдельно. После удачной инсталляции при запуске программы-кодера в настройках выбора типа кодека должны появиться кодеки DivX MPEG-4 Low-Motion и DivX MPEG-4 Fast-Motion. Именно, выбрав один из них Вы и получите, в результате преобразования, файл *.avi. Т.е. описываемая здесь методика аналогична той, которую применяют (на этапе компрессии) для производства дисков MPEG-4 VIDEO, появившихся в большом количестве на рынках.

Конвертируем DVD в MPEG-4

Конвертация DVD в AVI

Почти все DVD имеют зональную защиту, MACROVISION, и его файлы зашифрованы крипто-ключем. Избавимся от этого ужаса не вдаваясь подробно, что это вообще за бяка.

Этапы

Противостояние форматов DVD-R-RW и DVD+RW

Одним из главных событий последней международной выставки информационных технологий CeBIT 2001 стало резкое обострение "войны" между записываемыми DVD-форматами. Сегодня противостояние стандартов DVD-R/RW и DVD+RW (или минус RW и плюс RW) вышло из области затяжных теоретических дискуссий на арену практической реализации.

Противостояние DVD-R/RW и DVD+RW

Кодирование DVD с использованием DivX Pro и Ogg Vorbis

Руководство должно помочь рядовому пользователю создать копию видео-программы с максимально приближенным к оригиналу качеством изображения, при этом сохранить две основные звуковые дорожки на оригинальном и русском языках и две основые дорожки субтитров на оригинальном и русском языках, а также ограничиться размером дискового пространства равному двум чистым болванкам CD-R 700Mb.
Видео закодировано при помощи кодека DivX Pro 5.0.5 с использованием двухпроходного, двунаправленного кодирования с глобальной компенсацией движения. Звуковые дорожки с хорошим качеством при низком битрейте закодированы кодеком Ogg Vorbis, качество которого признано довольно широко. Дорожки субтитров размещены в формате SubRipper. Полученные в результате кодирования дорожки мультиплексированы и размещены в платформонезависимом мультимедиа-контейнере OGM (Ogg Vorbis Media).

Профессиональное кодирование DVD с использованием DivX Pro и Ogg Vorbis
В процессе кодирования использовано следующее программное обеспечение: Xmpeg 5.0 beta 2 (5.0.4), VirtualDubMod 1.5.1.1a (build 1155/release), DVD Decrypter 3.1.4.0, Chapter-X-tractor 0.962, oggdropXPd 1.7, VobSub 2.23, OggMux 0.9.5.0, DivX Pro 5.0.5, OggDS 0.9.9.5, SubTitDS 1.4.0.0.

Установка програмного обеспечения
Программное обеспечение для нужд домашнего цифрового видео лучше всего хранить в отдельном каталоге, например, это может быть каталог с именем HomeVideo на том же дисковом разделе, где производится редактирование и кодирование видео-данных.

Снятие защиты и копирование DVD
Перед кодированием в DivX для удобства, скорости, а также увеличения жизненного ресурса привода DVD желательно скопировать содержимое DVD на жесткий диск компьютера. Если же диск с видеопрограммой имеет защиту от копирования, то пожелание становится необходимым условием, т.к. в этом случае придется предварительно снимать защиту.

Открытие фильма в Xmpeg
Запускаем Xmpeg. По нажатию правой кнопки мыши на окне программы нам доступно главное меню

Параметры Xmpeg
После открытия видео на экране появятся два окна. В одном отображается видео из фильма, другое - панель управления, напоминающая панель видео-проигрывателя, так и называющаяся Player. Нажимаем кнопку Video tools на панели Player и опадаем в режим редактирования параметров видео для кодирования. Resized output позволяет изменять размеры изображения по горизонтали и по вертикали.

Параметры AVIWriter Plug-In и DivX Pro 5.0.5 Codec
Теперь необходимо установить параметры кодирования для Plug-In'a. В главном меню выбираем плагин AVI Writer, как следует из названия предназначенный для записи видео в AVI.

Кодирование
Все готово для начала кодирования фильма в DivX. Проверям свободное место на диске указанном в параметрах Xmpeg. Если для этого раздела не применяется динамическая компрессия данных, то около 1.5 Гб свободного места будет вполне достаточно.

Нормализация звука
Разберемся со звуком. Нажимаем кнопку Audio tools на панели Player. Попадаем в режим редактирования параметров аудио-потока для кодирования. Довольно часто звуковая дорожка фильма звучит недостаточно громко или имеет какие-то другие огрехи, в этом случае необходимо улучшить качество её звучания с помощью нормализации.

Кодирование с помощью oggdropXPd
Пришло время закодировать полученные звуковые дорожки из WAV в формат Ogg Vorbis. Для этого процесса используем очень удобную утилиту oggdropXPd, запускаем ее. На экране появляется маленькое окошко с изображением рыбки.

Демультиплексирование субтитров
Займемся добываением субтитров из фильма. В этом поможет набор утилит, объединенных под общим названием VobSub. Сначала запускаем VobSub Configure.

Распознавание субтитров
Запускаем еще одну программу из пакета VobSub - SubResync. Программа работает с большим числом форматов субтитров и поможет нам преобразовать субтитры в необходимый формат Subripper. Открываем с помощью нее VTS_01_0.idx, не забыв указать правильную частоту кадров фильма

Копирование и переименование списка разделов
Создадим список разделов фильма. В этом нам поможет утилита Chapter-X-tractor. Откроем в ней уже знакомый нам файл VTS_01_0.IFO, содержащий информацию о потоке, которую программа сразу же выведет на экран. Здесь есть информация о видеоизображении, о дорожках аудио, о дорожках субтитров, о программных цепочке/цепочках и порядке следования ячеек в них, а в самом конце информация о разделах (Chapters) фильма.

Мультиплексирование дорожек с помощью OggMux
Осталось все это мультиплексировать в единое целое и разбить на две части для удобства записи на CD-R. Мультиплексирование дорожек нам обеспечит формат контейнера мультмедиа OGM, Ogg Media, а поможет в этом программа OggMux. Запускаем ее.

Создание экранов смены диска
Чтобы момент смены диска не был случайным и выглядел эстетично неплохо добавить короткие информационные экраны в конце первой части и в начале второй. Воспользовавшись, например, Macromedia Fireworks MX спроектируем два экрана с графическим разрешением равным разрешению фильма (720 x 304), на первом из которых на английском языке написано приглашение о смене диска, на втором написано что это и есть второй диск.

Разбиение фильма на две части
Запускаем VirtualDubMod. В меню File выбираем Open video file... и открываем файл The Matrix.ogm. Необходимо немного подождать, пока программа проверит корректность файла и считает его структуру в память. После успешного открытия файла в VirtualDubMod появятся два окна - видео на входе и результат его преобразования на выходе. Немного настроим отображение в более удобной форме, для этого в меню Options установим опции в соответствии с рисунком.

Объединение экранов смены диска с фильмом
В VirtualDubMod в меню File выбираем Open video file... и открываем файл с первой частью фильма The Matrix - 1.ogm. В конце первой части фильма необходимо добавить экран смены диска на второй. Возвращаемся в меню File и выбираем функцию добавления сегмента видео Append segment... В открывшемся диалоге открываем файл The Matrix - Please insert disc two.ogm.

Дополнительная информация о фильме
Файл с содержимым сканированной передней обложки называем The Matrix - Front.jpg, внутренние страницы называем The Matrix - Inside (N).jpg, указывая в скобках номер, если это необходимо, внутреннюю сторону называем The Matrix - Inlay.jpg, скан DVD диска называем The Matrix - DVD Disc (N).jpg, указывая в скобочках номер, если дисков несколько.

Структура размещения файлов на дисках
В корневой каталог первого диска помещаем файл с первой частью фильма The Matrix - Disc 1.ogm и файл readme.txt с краткой информацией о фильме, в том числе и той, что уже использовалась в полях комментариев к фильму.

Кодеки, фильтры
Коммерческий кодек DivX Pro. Бесплатный высококачественный кодек, полностью совместимый с MPEG-4, DivX. Фильтр Ogg для Microsoft DirectShow. Миксер субтитров для Microsoft DirectShow. Высококачественный кодер MP3. Доступен в виде кодека и консольной программы.