Microsoft TechDayshttp:// Виталий Дильмухаметов Oogway software
Microsoft TechDayshttp:// 3 координаты точки – (X,Y,Z) В Silverlight 5 – правосторонняя система координат Вектор – задаёт направление и скорость движения Z Y X K( x k,y k,z k ) A( x a,y a,z a ) B( x b,y b,z b ) C( x c,y c,z c )
Microsoft TechDayshttp:// Модель состоит из полигонов Точка – вершина (vertex) Несколько граней – сетка (mesh) Вершины Контуры ГраниПолигоны Поверхности
Microsoft TechDayshttp:// Имеют вид 4x4 Матрица мира: Перемещение Вращение Масштаб Матрица вида: Управление камерой Матрица проекции: Настройка проекции 3D на экран
Microsoft TechDayshttp:// Преобразование модели (координат вершин)
Microsoft TechDayshttp:// Основа – элемент управления DrawingSurface Отрисовка силами GPU HLSL шейдеры версии 2.0 API из XNA Встроенные эффекты (не в beta) Библиотека XNA Math Helper
Microsoft TechDayshttp:// ВершинныйшейдерВершинныйшейдерПиксельныйшейдерПиксельныйшейдер Буфер вершин Буфер индексов вершин Матрицы преобразования Положение/тип источника света Буфер вершин Буфер индексов вершин Матрицы преобразования Положение/тип источника света Текстуры
Microsoft TechDayshttp:// Для написания используется HLSL Компиляция при помощи FXC из DirectX SDK Используется версия 2.0 (поддержка в очень большом спектре GPU) Вершинные шейдеры Работа с данными вершин Пиксельные шейдеры Обработка точек результирующего изображения
Добавить в HTML:
Добавить в XAML-разметку:
Обработчик OnDraw() public void OnDraw(Object sender, DrawEventArgs args) { // Очистка поверхности args.GraphicsDevice.Clear(...); // Собственно отрисовка args.GraphicsDevice.DrawPrimitives(...); // Объявить о необходимости обновить поверхность // За этим вызовом следует генерирование Draw ещё раз args.InvalidateSurface(); }
Microsoft TechDayshttp:// Простое приложение с 3D-графикой
Microsoft TechDayshttp:// В приложениях c 3D: UI поток Поток отрисовки 3D (в нём выполняется обработчик Draw) Из потока отрисовки нельзя обращаться к DependencyProperty! Использование промежуточной модели данных, блокировки и кэширования Анимация в 3D – посредством матричных преобразований
Microsoft TechDayshttp:// Создание ресурсов (текстур, шейдеров и пр.) – вне обработчика Draw Для исключения задержек при отрисовке Использование GraphicsDeviceManager.Current.GraphicsDevice Поддержка смешивания цветов Silverlight использует BGRA, XNA – RGBA! Проверка доступности 3D: GraphicsDeviceManager.Current.RenderMode Событие RenderModeChanged у GraphicsDeviceManager
Microsoft TechDayshttp:// Не войдёт в релиз 5 версии: Content pipeline и работа с моделями Обработка ввода 3D звук Пользовательские эффекты Средства упрощения создания игр
Microsoft TechDayshttp:// Не вошло в beta и будет добавлено: Эффекты (BasicEffect, SkinnedEffect, Environment Map и др.) Антиалиасинг Рисование на текстуре (render target texture) Управление устройствами Доп. параметры для DrawingSurface
Microsoft TechDayshttp:// Графический движок Обнаружение столкновений BasicEffect – освещение и отражение света Авторы: David Catuhe, Michel Rousseau URL: f0404acehttp://code.msdn.microsoft.com/Babylon-3D-engine- f0404ace Авторы: David Catuhe, Michel Rousseau URL: f0404acehttp://code.msdn.microsoft.com/Babylon-3D-engine- f0404ace
Microsoft TechDayshttp:// Частичная поддержка COLLADA Трансляция 2D координат мыши в 3D MIP- текстурирование Авторы: Archetype, Inc. ( URL: from-def4af04http://code.msdn.microsoft.com/3D-Housebuilder-demo- from-def4af04 Авторы: Archetype, Inc. ( URL: from-def4af04http://code.msdn.microsoft.com/3D-Housebuilder-demo- from-def4af04
Microsoft TechDayshttp:// Импорт моделей из популярных форматов с помощью XNA Анимированные модели Освещение и текстуры Автор: Simon Ferquel URL: Автор: Simon Ferquel URL:
Microsoft TechDayshttp:// Есть alpha-версия под Silverlight 5 beta
Microsoft TechDayshttp:// Набор исходных кодов с демонстраций MIX11, посвященных 3D в Silverlight 5 beta Все ссылки в блоге Aaron Oneal:
Microsoft TechDayshttp:// Инструменты Autodesk FBX Converter 2012 NVidia FX Composer Microsoft DirectX SDK Материалы