Сегодня
1 июня 2024
4:09
Вход Sign In Регистрация Sign Up Забыли пароль ? Forgot password ?
VARVE - Моделируем девушку в 3ds max - Тело
Моделируем девушку в 3ds max - Тело
подробнее...

Теги

сайты, игры, дизайн, продвижение, php, html, css, my sql, c++, delphi, photoshop, 3ds max, fl studio, трекерская музыка, уроки

Статьи сайта

Что нужно для создания собственного сайта ?

Макет дизайна Вашего сайта

скачать megainformatic cms

для чего нужна карта сайта

Что нужно для создания собственного сайта ?

как создать инсталлятор для собственной cms

новые идеи, новые решения

Нововведения в megainformatic cms

Web Администрирование

Уроки Верстки

Система автоматизированной е-майл рассылки

Мысли о разном

Выгрузка файла на сайт

выпадающее меню на html и css

Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Легко ли быть программистом

От идеи к реализации - трудно ли создавать сайты ?

Проблемы с кодировками при отображении страниц

игра Нечто: Необъяснимое Нить Накала - "в плену желаний"

Система Автоматизации Доставки Электронных Заказов megainformatic cms e-pro

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

Глубины программирования на C++

VARVE: Музыкальная страничка трэкера

Создание музыки и звука

VARVE: Создание музыки и звука: урок 2

Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

Создание музыки в Impulse Tracker 2.14 Первая мелодия

Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

Создание музыки и звука: теория и практика создания трэкерской музыки

Что такое VARVE ?

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

Написание приложения DirectX9c + MFC в среде MSVS 2005

Создание компьютерных игр на основе DirectX в среде Delphi 6, 7

Создание компьютерных игр на основе DirectX в среде Delphi 6, 7 - Почему избраны DX8 и Delphi ?

Основы IDirectMusic8 в среде Delphi6-7

Основы DirectInput8 в среде Delphi 7

Основы DirectSound8 в среде Delphi6-7

Плагин для 3DS MAX из DX9 SDK

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 2

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 3

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 4

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 5

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 6

Система управления сайтом - megainformatic cms e-shop

Моделируем девушку в 3ds max - Женская грудь

Моделируем девушку в 3ds max - Тело

Уроки 3ds max - Введение в 3ds max

ГАЛЕРЕЯ 3D-моделей

СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ

Создание макета помещения - этап 2

МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

Моделирование обстановки помещения

Создание модели автомобиля

Создание текстурной развертки для модели автомобиля

Создание анимации вращающихся колес автомобиля

игра Нечто: Необъяснимое и в плену желаний

Основы 3D-анимации, экспорт скелетной анимации

Подготовка модели к использованию скелетной анимации

Продолжаем Создание скелета для данной модели

Построение ирерархических связей между объектами и основы 3d анимирования

Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

Создание модели броневика (Хэд)

megainformatic cms e-mailer

Моделируем девушку в 3ds max - Моделируем руку

Моделируем девушку в 3ds max - Кисть руки

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

Путешествие в мир 3d

Путешествие в мир 3d - страница 2

Путешествие в мир 3d - страница 3

Путешествие в мир 3d - страница 4

Путешествие в мир 3d - страница 5

Путешествие в мир 3d - страница 6

Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

Моделируем девушку в 3ds max - Моделируем голову

Моделируем девушку в 3ds max - Моделируем голову страница 2

Уроки Photoshop - Чудеса

megainformatic cms express files - Развертывание сайта на Вашем хостинге

Настольная игра "Веселый Буквоежка"

Уроки delphi directx 8.1

Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения.

Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения. Страница 2

Урок 2 Создаем и обрабатываем команды меню.

Урок 2 Создаем и обрабатываем команды меню. Страница 2

Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

Урок 4 Построение класса приложения

Урок 4 Построение класса приложения - Страница 2

Урок 5 Построение классов игровых объектов и других необходимых классов

Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

Урок 6 Игровая логика

Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

megainformatic cms express files - Добавление статей на сайт под управлением megainfromatic cms express files

Урок 7 2D-анимация

Урок 8 Загрузка/Сохранение текущей игры, режим паузы, режимы часов/будильника, запуск браузера Internet Explorer для показа сайта разработчика и других интернет-ресурсов

Урок 9 Тестирование и отладка приложения

     
     
 

4.12.2010, 18.12.2010

Разбор кода примера MultiAnimation (F:\GameDev\Microsoft DirectX SDK (August 2008)\Samples\C++\Direct3D\MultiAnimation)

 
     
 

Основные моменты, которые представлены в примере

модуль - MultiAnimation.cpp

//имя файла для земной поверхности, количество тайлов по вертикали и горизонтали

#define TXFILE_FLOOR L"\\Media\\Textures\\floor.jpg"
#define FLOOR_TILECOUNT 2

 
     
  CFirstPersonCamera g_Camera; // игровая камера  
     
 

Исполнение любого WinAPI приложения начинается с функции WinMain

поэтому в первую очередь смотрим - wWinMain

 
     
 

OnCreateDevice - функция вызывается модулем DXUT, непосредственно сразу же после создания Direct3DDevice (это происходит внутри DXUT). Загружаемые здесь ресурсы являются - D3DPOOL_MANAGED, т. е. загружаемые непосредственно в память видеокарты и зависящие от её состояния (от состояния объекта IDirect3DDevice).

загрузка моделей и текстур происходит в функции - OnResetDevice, эта функция вызывается специализированным объектом модуля DXUT.

 
     
 

После того, как будет полностью выполнена функция wWinMain приложение перейдет в цикл последовательного вызова двух функций -

OnFrameMove - метода подготовки сцены (анимации сцены);

OnFrameRender - метода отрисовки сцены.

Поступающие от системы сообщения обрабатываются в MsgProc

OnGUIEvent - обрабатывает сообщения элементов GUI (кнопок, полей ввода и т. п., эти элементы - классы DXUTgui)

KeyboardProc - обрабатываются сообщения от клавиатуры, но рассчитанные не на управление игрой, а более медленные операции, например вызов помощи/подсказки по клавише [F1] - Help.

Управление игрой требует достаточно оперативного отклика, поэтому должно происходить внутри OnFrameMove

 
     
 

Давайте сначала более детально проясним основные моменты работы кода.

Создадим резервные копии файлов MultiAnimation.h и MultiAnimation.cpp и смело начнём.

Первым шагом Я убрал (закомментировал) весь код, который относится к элементам GUI (g_DialogResourceManager, g_SettingsDlg, g_HUD), чтобы не усложнять и без того сложный код.

 
     
  Откомпилировал и убедился что всё работает.  
     
 

Далее я выяснил, что в функции MsgProc

строки кода -

if( -1 == g_dwFollow )
g_Camera.HandleMessages( hWnd, uMsg, wParam, lParam );

- это управление камерой от клавиатуры и мыши, если их закомментировать, то управление камерой становится невозможным.

 
     
  Далее я поставил режим компиляции Debug, расставил контрольные точки во всех значимых функциях и начал отслеживать как работает код в режиме отладки.  
     
  InitApp() - выполняется в первую очередь, здесь выставляется начальное положение камеры.  
     
  ModifyDeviceSettings - проверяются возможности d3d9device, необходимые для работы данного примера. А также выставляется начальный режим работы по отрисовке геометрии на аппаратном уровне (D3DDEVTYPE_HAL).  
     
  OnCreateDevice - создается шрифт для вывода отладочной информации, загружается текстура для пола, шейдер, рассчитываются параметры расположения пола и инициализируется материал для него.  
     
  OnResetDevice - выполняется загрузка кода шейдера, геометрии, параметры камеры, освещения, сбрасывается таймер  
     
  OnFrameMove - анимируются персонажи, камера  
     
  OnFrameRender - отрисовывается сцена  
     
  далее снова вызывается функция OnFrameMove, затем OnFrameRender и этот процесс повторяется бесконечно, пока не будет выполнено закрытие приложения.  
     
  В коде собственного примера я создал аналогичные функции, поэтому вызываться они должны в такой же последовательности, иначе будут ошибки. Это и предстоит проверить.  
     
  InitApp() - в моём коде вызову данной процедуры соответствует метод CAdventure::InitCamera()  
     
 

сразу же была выявлена ошибка - первым был вызван метод CAdventure::LoadMedia()

что соответствует OnCreateDevice вот и первая ошибка !

Из-за отсутствия вызова InitCamera() сцена рисовалась некорректно. Решение - вызов метода InitCamera() был вставлен первой строчкой в реализации метода LoadMedia()

 
     
 

Для реализации управления камерой, а также управления персонажами и добавления их в сцену нужно написать аналогичные методы для обработки и направления сообщений метода MsgProc камере.

В примере MultiAnimation управление персонажами (их добавлением) и некоторые другие опции реализованы кнопками GUI. Можно поступить так же, а можно перевести результат действия этих кнопок, привязав их к каким-либо клавишам и обрабатывая нажатия посредством DirectInput.

 
     
  На этом наш краткий обзор завершен.  
     
 
Рейтинг@Mail.ru
Время загрузки: 0,0144