netlib.narod.ru
< Назад |
Оглавление
| Далее >
Оглавление
Введение
Надвигающаяся трехмерная революция
Что такое Direct3D?
Требования к читателю
Требования к программному обеспечению
Требования к аппаратному обеспечению
Организация книги
Получение помощи
Благодарности
Глава 1. Краткий обзор Visual C++
Студия разработчика
Windows SDK против MFC
Программирование, управляемое событиями
Функция WinMain
Обработчики событий
Карты сообщений
Мастер создания классов ClassWizard
Мастер создания приложений AppWizard
Создание MFC приложения
Добавление обработчика событий
Мастер создания приложений Direct3D AppWizard
Программирование для Windows и некоторые соглашения
Глава 2. Введение в трехмерную графику
Трехмерные системы координат
Начало системы координат
Векторы
Плоскости
Вершины
Грани
Сетки
Нормали
Преобразования
Перемещение
Масштабирование
Вращение
Наложение текстур
Природа текстуры
Масштабирование текстуры
Способы наложения текстуры
Анимация текстуры
Освещение
Цвет источника света
Типы источников света
Перспективное преобразование
От трех измерений к двум
Техника удаления невидимых поверхностей
Z-буферизация
Z-буферизация: за и против
Методы визуализации
Каркасный метод
Неосвещенный метод
Равномерная закраска
Метод Гуро
Метод Фонга
Трассировка лучей
Анимация
Параметры движения
Ключевые кадры
Заключение
Глава 3. Знакомство с Direct3D
Direct3D
COM
Direct3DRM: основной интерфейс
Создание объектов Direct3D
Изменение пути поиска файлов
Управление скоростью обновления
Direct3DRMDevice: интерфейс устройства
Цветовые модели
Параметры визуализации
Direct3DWinDevice: интерфейс устройства Windows
Direct3DRMViewport: интерфейс порта просмотра
Поле зрения
Отсечение
Direct3DRMFrame: интерфейс фрейма
Иерархия фреймов
Позиционирование фреймов
Перемещение фреймов
Перемещение и функции обратного вызова
Direct3DRMMeshBuilder: интерфейс конструктора сеток
Загрузка и сохранение
Параметры визуализации
Доступ к граням
Доступ к вершинам
Перемещение и масштабирование
Производительность
Direct3DRMMesh: интерфейс сетки
Группы и сетки
Доступ к вершинам
Создание сеток посредством конструктора сеток
Direct3DRMFace: интерфейс грани
Текстуры грани
Материалы грани
Вершины грани
Direct3DRMTexture: интерфейс текстуры
Создание текстур
Цвета текстуры
Декалы
Direct3DRMTextureWrap: интерфейс наложения текстур
Direct3DRMMaterial: интерфейс материала
Мощность отраженного света
Цвет отраженного света
Цвет испускаемого света
Direct3DRMLight: интерфейс источника света
Рассеяный свет
Точечный источник света
Направленый свет
Параллельный свет
Зональное освещение
Direct3DRMShadow: интерфейс тени
Direct3DRMAnimation: интерфейс анимации
Создание ключей
Установка времени в анимации
Параметры анимации
Direct3DRMAnimationSet: интерфейс анимационного набора
Загрузка анимационных наборов
Установка времени в анимационных наборах
Типы данных Direct3D
D3DVALUE
D3DVECTOR
D3DCOLOR
D3DRMBOX
D3DRMVERTEX
D3DRMQUATERNION
HRESULT
X-файлы
Conv3ds
Заключение
Глава 4. Код
Мастер Direct3D AppWizard
Программа Sample
Зависимости COM-интерфейсов Direct3D
Дерево зависимостей
Построение собственного дерева зависимостей
Последовательность событий
Разработка классов
Разделение труда
Инициализация Direct3D
Функция InitInstance()
Функция OnCreate()
Функция CreateDevice()
Функция GetGUID()
Конструирование сцены
Функция CreateScene()
Создание сетки
Создание источника света
Создание порта просмотра
Управление сценой
Функция OnIdle()
Функция OnActivate()
Функция OnPaint()
Функция OnSize()
Функция OnEraseBkgnd()
Использование функций обратного вызова
Завершение работы
Функция OnDestroy()
Вспомогательные функции
Функция ScaleMesh()
Функция GetMouse()
Преобразования типов COLORREF и D3DCOLOR
Обучайтесь экспериментируя
Глава 5. Наложение текстур
Наглядный пример наложения текстур
Наложение текстуры на сетку
Приложение Jade
Класс JadeWin
Функция JadeWin::CreateScene()
Функция JadeWin::MoveFrame()
Функции меню Render приложения JadeWin
Способы наложения текстур
Приложение Wraps
Класс WrapsWin
Функция WrapsWin::CreateScene()
Функция WrapsWin::LoadMeshes()
Функция WrapsWin::LoadWrapsTexture()
Функция WrapsWin::OnWrapsReset()
Функция WrapsWin::ApplyWraps()
Декалы
Приложение Decal
Класс DecalWin
Функция DecalWin::CreateScene()
Прозрачность
Приложение OrbStar
Класс OrbStarWin
Функция OrbStarWin::CreateScene()
Функции обратного вызова в приложении OrbStar
Анимация текстур
Приложение TextureDrift
Класс TextureDriftWin
Функция TextureDriftWin::CreateScene()
Функция TextureDriftWin::MoveTexture()
Приложение ShowRoom
Класс ShowRoomWin
Функция ShowRoom::CreateScene()
Функция ShowRoom::UpdateTexture()
Заключение
Глава 6. Источники света и тени
Методы визуализации и цветовые модели
Рассеяный свет
Демонстрация рассеянного света
Класс AmbientLightWin
Функция AmbientLightWin::CreateScene()
Функции меню Render
Точечный свет
Приложение Firefly
Класс FireflyWin
Функция FireflyWin::CreateScene()
Направленый свет
Приложение SpaceStation
Класс SpaceStationWin
Функция SpaceStationWin::CreateScene()
Параллельно-точечный свет
Приложение SpaceDonut
Класс SpaceDonutWin
Функция SpaceDonutWin::CreateScene()
Прожектор
Приложение Spotlight
Класс SpotlightWin
Функция SpotlightWin::CreateScene()
Функция SpotlightWin::MoveLight()
Функции меню Render приложения Spotlight
Функции меню Beam приложения Spotlight
Применение нескольких источников света
Тени
Приложение Shadow
Класс ShadowWin
Функция ShadowWin::CreateScene()
Функция ShadowWin::AdjustSpin()
Функции меню Render приложения Shadow
Заключение
Глава 7. Фреймы и анимация
Иерархии фреймов
Приложение Molecule
Класс MoleculeWin
Функция MoleculeWin::CreateScene()
Функция MoleculeWin::CreateHierarchy()
Функция MoleculeWin::CreateChildren()
Функции управления глубиной иерархии
Управление количеством дочерних фреймов
Ключевые кадры
Приложение Rocket
Класс RocketWin
Функция RocketWin::CreateScene()
Функция RocketWin::UpdateScene()
Функции меню Animation в классе RocketWin
Функции управления скоростью анимации
Еще об анимации
Приложение Target
Класс TargetWin
Функция TargetWin::CreateScene()
Функция TargetWin::MoveTarget()
Функция TargetWin::OrientFrame()
Заключение
Глава 8. Снова о сетках
Анимация вершин
Приложение Cube
Класс CubeWin
Функция CubeWin::CreateScene()
Функция CubeWin::UpdateCube()
Функции меню Render в классе CubeWin
Группы граней сетки
Приложение Cube2
Класс Cube2Win
Функция Cube2Win::CreateScene()
Функция Cube2Win::UpdateCube()
Функция Cube2Win::UpdateColors()
Функции меню Render в классе Cube2Win
Трансформация
Приложение MorphPlay
Структура классов
Класс MorphWin
Функция MorphWin::LoadMorphSequence()
Функция MorphWin::LoadMeshes()
Функция MorphWin::CreateAnimations()
Функция MorphWin::PrepareMorphVertices()
Функция MorphWin::GetNumMorphTargets()
Функция MorphWin::AddMorphKey()
Функция MorphWin::SetMorphTime()
Функция MorphWin::GetMorphMesh()
Класс MorphPlayWin
Функция MorphPlayWin::CreateScene()
Функция MorphPlayWin::OnFileOpen()
Функция MorphPlayWin::InitMorphSequence()
Функция MorphPlayWin::UpdateMorph()
Функции класса MorphPlayWin для работы с мышью
Заключение
Глава 9. Порты просмотра
Поле зрения
Приложение Zoom
Класс ZoomWin
Функция ZoomWin::CreateScene()
Функция ZoomWin::AdjustField()
Функции меню Animation в классе ZoomWin
Выбор объектов
Приложение MeshPick
Класс MeshPickWin
Функция MeshPickWin::CreateScene()
Функции класса MeshPickWin для работы с мышью
Функция MeshPickWin::PickMesh()
Функция MeshPickWin::UpdateDrag()
Выбор граней
Приложение FacePick
Класс FacePickWin
Функция FacePickWin::CreateScene()
Функции класса FacePickWin для работы с мышью
Функция FacePickWin::PickFace()
Функция FacePickWin::UpdateDrag()
Функции меню Color в классе FacePickWin
Функции меню File в классе FacePickWin
Работа с несколькими портами просмотра
Приложение MultiView
Код приложения MultiView
Класс MultiViewWin
Функция MultiViewWin::CreateScene()
Изменения в классе RMWin
Функция RMWin::CreateDevice()
Функция RMWin::ConfigViewport()
Функция RMWin::CreateViewports()
Функция RMWin::Render()
Функция RMWin::OnSize()
Функции меню Viewport в классе RMWin
Заключение
Глава 10. Полноэкранные приложения
DirectDraw
Интерфейс DirectDraw
Уровни взаимодействия
Видеорежимы
Переключение страниц
Поверхности
Z-буферизация
Палитры
Модификация класса RMWin
Класс RMWin
Удаление ненужных функций
Добавление поддержки видеорежимов
Функции для работы с поверхностями
Работа с палитрами
Функция OnCreate()
Функция InitDisplayMode()
Функция InitMainSurfaces()
Функции для работы с палитрами
Функция CreateDevice()
Функция ActivateDisplayMode()
Функция GetNumDisplayModes()
Функция GetCurDisplayMode()
Функция GetDisplayModeDims()
Функция GetCurDisplayModeDims()
Функция CreateSurface()
Функция ClearSurface()
Функция Render()
Приложение FullScreen
Класс FullScreenWin
Функция FullScreenWin()
Функция CreateScene()
Функция CreateMenuSurface()
Функция UpdateMenuSurface()
Функция CreateFPSSurface()
Функция UpdateFPSSurface()
Функция Render()
Функция KeyDown()
Заключение
Приложение. Работа с демонстрационными программами
Содержимое CD-ROM
Установка приложений
Структура каталогов
Код приложений
Файлы CPP и H
Файлы MDP
MAK
CLW
Файлы RC
Файлы X, BMP и PPM
Модификация приложений
Дополнительные утилиты
Texture Magic
3DS2POV
Несколько слов о Visual C++ 4.2
Алфавитный указатель
netlib.narod.ru
< Назад |
Оглавление
| Далее >
Сайт управляется системой
uCoz