От автораНа написание этого текста меня сподвигли тяжкие усилия ассемблирования
Майкрософтовского текста со скупыми примерами из ангоязычной части ИНета,
а также со свои собственными мыслями. Приятного программирования, Antiloop
Обзор Direct3DПрежде, чем начать программировать Direct3D, давайте познакомимся, что это такое и с чем его едят. Вот как преподносит простому пользователю свое детище сама Microsoft: "Direct3D был разработан для программирования игр мирового класса и трехмерной интерактивной графики для компьютера, работающего под управлением Microsoft Windows. Его миссия - дать устройство-независимый доступ к программированию совсем различного видео-3D оборудования. Таким образом, Direct3D становится стандартом для программирования 3D устройств." Ну что сказать? Цели своей они естесственно добились. Сегодня 99.9% видеокарт прелестно работают с Direct3D. Однако Microsoft есть Microsoft - и в интерфейсе программирования Direct3D есть свои баги и глюки. Результатом стало появление других стандартных интерфейсов для программирования 3D графики. Например, весьма популярный сейчас OpenGL, разработанный компанией Silicon Graphics. Многие известные игры используют OpenGL движки, да хоть тот же Quake II. Еще один известный интерфейс - Glide, бал разработан компанией 3DFX Interactive и поддерживается только видеоакселлераторами на базе ихнего чипсета. Для всех этих интерфейсов существуют свои SDK с их помощью любой может программировать 3D графику. Однако вернемся к D3D. Как вы может быть слышали, существует Direct3D Retained Mode и Direct3D Immediate Mode. Что это такое? Сейчас расскажу.
В этом учебнике, мы будем изучать Direct3D Immediate Mode. D3DIM основан на вершинах, многоугольниках и командах, которые ими управляют. Проще не придумаешь. Команды дают доступ к действиям над вершинами и многоугольниками - трансформации, освещению, наложению текстур. Эмуляция. По своей сути, D3D предназначен для работы с 3D акселлераторами. Однако, если конечный пользователь не обладает этой небольшой платкой, Direct3D позволяет программно эмулировать функции, которые по-хорошему выполняются на аппаратном уровне. Не мне вам говорить что при этом получается. Программист может при этом говорить, какие функции D3D должен эмулировать. Архитектуру работы D3D можно изобразить вот на таком рисунке: Direct3D тесно связан с DirectDraw компонентом DirectX. Поверхности DirectDraw используются, как целевые для рендеринга (т.е. на них происходит рендеринг) и как z-буфера. Итак, если Вы готовы, начнем!
Подготовка формыСделаем маленькое приложение-пример, называемое "Треугольник". Как не трудно догадаться, оно будет рендерить сцену с треугольником. Откройте Visual Basic IDE, создайте новый проект, назовите его Triangle
и подключите в "References" библиотеку DirectX 7 For Visual
Basic. Теперь вы можете работать с DirectX. BorderStyle = 1 'Fixed Single Чтобы показать окно приложения на экране, добавьте следующую строку в процедуру Form_Main: Me.Show Теперь, когда форма готова, можно приступать к созданию объектов DirectX.
|