1 / 24

3 D графика в Silverlight 5 beta

3 D графика в Silverlight 5 beta. Виталий Дильмухаметов Oogway software. Основы 3D. 3 координаты точки – ( X,Y,Z ) В Si l verlight 5 – правосторонняя система координат Вектор – задаёт направление и скорость движения. B( x b ,y b ,z b ). Y. C( x c ,y c ,z c ). A( x a ,y a ,z a ).

graceland
Télécharger la présentation

3 D графика в Silverlight 5 beta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3D графика в Silverlight5 beta Виталий Дильмухаметов Oogway software

  2. Основы 3D • 3 координаты точки – (X,Y,Z) • В Silverlight 5 – правосторонняя система координат • Вектор – задаёт направление и скорость движения B(xb,yb,zb) Y C(xc,yc,zc) A(xa,ya,za) X Z K(xk,yk,zk)

  3. Основы 3D • Модель состоит из полигонов • Точка – вершина (vertex) • Несколько граней – сетка (mesh) Контуры Вершины Грани Полигоны Поверхности

  4. Матрицы в 3D • Имеют вид 4x4 • Матрица мира: • Перемещение • Вращение • Масштаб • Матрица вида: • Управление камерой • Матрица проекции: • Настройка проекции 3D на экран

  5. Матрицы в 3D • Преобразование модели (координат вершин) Матрица проекции Матрица мира Матрица вида Область отображения

  6. 3D в Silverlight 5 • Основа – элемент управления DrawingSurface • Отрисовка силами GPU • HLSL шейдеры версии 2.0 • API из XNA • Встроенные эффекты (не в beta) • Библиотека XNA Math Helper

  7. Процесс отрисовки Пиксельный шейдер Вершинный шейдер • Буфер вершин • Буфер индексов вершин • Матрицы преобразования • Положение/тип источника • света • Текстуры

  8. Шейдеры • Для написания используется HLSL • Компиляция при помощи FXC из DirectX SDK • Используется версия 2.0 (поддержка в очень большом спектре GPU) • Вершинные шейдеры • Работа с данными вершин • Пиксельные шейдеры • Обработка точек результирующего изображения

  9. Шаг 1: Включение 3D • Добавить в HTML: <objectdata="data:application/x-silverlight-2,"type="application/x-silverlight-2"...> <paramname="EnableGPUAcceleration"value="true"/> </object>

  10. Шаг 2: DrawingSurface • Добавить в XAML-разметку: <Gridx:Name="LayoutRoot"Background="Black"> <DrawingSurface Draw="OnDraw" /> </Grid>

  11. Шаг 3: Отрисовка • Обработчик OnDraw() publicvoid OnDraw(Object sender, DrawEventArgs args) { // Очистка поверхности args.GraphicsDevice.Clear(...); // Собственно отрисовка args.GraphicsDevice.DrawPrimitives(...); // Объявить о необходимости обновить поверхность // За этим вызовом следует генерирование Draw ещё раз args.InvalidateSurface(); }

  12. Демо Простое приложение с 3D-графикой

  13. Важные моменты • В приложениях c 3D: • UI поток • Поток отрисовки 3D (в нём выполняется обработчик Draw) • Из потока отрисовки нельзя обращаться к DependencyProperty! • Использование промежуточной модели данных, блокировки и кэширования • Анимация в 3D – посредством матричных преобразований

  14. Важные моменты • Создание ресурсов (текстур, шейдеров и пр.) – вне обработчика Draw • Для исключения задержек при отрисовке • Использование GraphicsDeviceManager.Current.GraphicsDevice • Поддержка смешивания цветов • Silverlight использует BGRA, XNA – RGBA! • Проверка доступности 3D: • GraphicsDeviceManager.Current.RenderMode • Событие RenderModeChangedуGraphicsDeviceManager

  15. Немного о будущем • Не войдёт в релиз 5 версии: • Content pipeline и работа с моделями • Обработка ввода • 3D звук • Пользовательские эффекты • Средства упрощения создания игр

  16. Немного о будущем • Не вошло в beta и будет добавлено: • Эффекты (BasicEffect, SkinnedEffect, Environment Map и др.) • Антиалиасинг • Рисование на текстуре (render target texture) • Управление устройствами • Доп. параметры для DrawingSurface

  17. Babylon • Графический движок • Обнаружение столкновений • BasicEffect– освещение и отражение света Авторы: David Catuhe, Michel Rousseau URL: http://code.msdn.microsoft.com/Babylon-3D-engine-f0404ace

  18. 3D Housebuilder • Частичная поддержка COLLADA • Трансляция 2D координат мыши в 3D • MIP-текстурирование Авторы: Archetype, Inc. (http://www.archetype-inc.com/) URL: http://code.msdn.microsoft.com/3D-Housebuilder-demo-from-def4af04

  19. Silverlight 3D Model Importer • Импорт моделей из популярных форматов с помощью XNA • Анимированные модели • Освещение и текстуры Автор: Simon Ferquel URL: http://sl3dmi.codeplex.com/

  20. Balder • Есть alpha-версия под Silverlight 5 beta • http://balder.codeplex.com/

  21. Примеры с MIX11 • Набор исходных кодов с демонстраций MIX11, посвященных 3D в Silverlight 5 beta • Все ссылки в блоге Aaron Oneal: • http://aarononeal.info/?p=125

  22. Полезные вещи • Инструменты • Autodesk FBX Converter 2012 • NVidia FX Composer • Microsoft DirectX SDK • Материалы • http://xnadev.ru • http://create.msdn.com

More Related