Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 393 394 395 396 397 398 < 399 > 400 401 402 403 404 405 .. 473 >> Следующая

К счастью, существует достаточно много средств для построения трехмерных сцен, которые вы можете использовать в приложениях WPF. Ниже перечислены некоторые из них.
• ZAM 3D — инструмент трехмерного моделирования, предназначенный специально для XAML. Доступен по адресу http://www.erain.com/Products/ZAM3D.
• Blender — набор инструментов с открытым кодом для трехмерного моделирования. Доступен по адресу http://www.blender.org. Имеется также экспериментальный сценарий экспорта XAML на http://codeplex.com/xamlexporter. Все вместе они представляют развитую платформу для построения трехмерного содержимого для приложений WPF.
• Подключаемые модули экспорта стали появляться для широкого диапазона программ профессионального трехмерного моделирования, таких как Maya и LightWave. Список некоторых из них можно найти по адресу http:// blogs.msdn.com/mswanson/articles/WPFToolsAndControls.aspx.
Book_Pro_WPF-2.mdb 778 19.05.2008 18:11:27
Трехмерная графика 779
Все программы трехмерного моделирования включают базовые примитивы, такие как сферы, построенные из маленьких треугольников. Вы можете использовать эти примитивы для конструирования сцен. Эти программы также позволяют добавлять и позиционировать источники света и применять текстуры. Некоторые из них, например, ZAM 3D, также позволяют определять анимации, которые вы хотите выполнить с объектами вашей трехмерной сцены.
Коллекции Model3DGroup
При работе со сложными трехмерными сценами вам обычно придется размещать множество объектов. Как вы уже знаете, Viewport3D может содержать множество объектов Visual3D, каждый из которых использует свою сетку. Однако это не лучший способ построения трехмерной сцены. Вы получите намного лучшую производительность, создав как можно меньше сеток и комбинируя как можно больше содержимого в пределах каждой из них.
Очевидно, что есть еще одно соображение: гибкость. Если ваша сцена разбита на отдельные объекты, вы можете организовать проверку попадания курсора, трансформировать и анимировать их по отдельности. Однако вам не нужно создавать отдельные объекты Visual3D, чтобы получить упомянутую гибкость. Вместо этого вы можете посредством класса Model3DGroup разместить несколько сеток в пределах одного Visual3D.
Model3DGroup унаследован от Model3D (как и классы GeometryModel3D и Light). Однако он предназначен для группирования комбинаций пространственных сеток. Каждая сетка остается отдельным кусочком вашей сцены, которой вы можете манипулировать индивидуально.
Например, рассмотрим трехмерного персонажа, представленного на рис. 23.15.
Рис. 23.15. Трехмерный персонаж
Book_Pro_WPF-2.mdb 779 19.05.2008 18:11:28
780 Глава 23
Ниже приведена часть кода разметки, рисующего соответствующие сетки из словаря ресурсов.
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup x:Name="Scene" Transform="{DynamicResource БсепеТК20}П> <AшbientLight ... />
<DirectionalLight ... />
<DirectionalLight ... />
<Model3DGгoup x:Naшe="ChaгacteгOR22">
<Model3DGroup x:Name="PelvisOR24">
<Model3DGгoup x:Naшe="BeltOR26">
<GeoшetгyModel3D x:Name=1'BeltOR26GR271'
Geoшetгy="{DynaшicResouгce BeltOR26GR27}"
Mateгial="{DynaшicResouгce ER_Vectoг Flat_Orange DaгkMR10}"
BackMateгial=м{DynaшicResouгce ER_Vector Flat_Oгange DaгkMR10}м />
</Model3DGroup>
<Model3DGгoup x:Naшe="ToгsoOR29">
<Model3DGгoup x:Name="TubesOR31">
<GeoшetгyModel3D x:Naшe="TubesOR3lGR32" Geoшetгy="{DynaшicResouгce TubesOR31GR32}"
Material="{DynamicResource ER Default_MateгialMR1}"
BackMateгial="{DynaшicResouгce ER Default_MateгialMR1}"/>
</Model3DGгoup>
</ModelVisual3D.Content>
</ModelVisual3D>
Вся сцена определена как единый объект ModelVisual3D, содержащий Model3DGгoup. Этот Model3DGroup содержит другие вложенные объекты Model3DGroup. Например, Model3DGгoup верхнего уровня содержит источники света и персонажа, в то время как Model3DGroup персонажа содержит другой Model3DGroup, включающий туловище, а также такие детали, как руки, имеющие ладони, которые, в свою очередь, содержат пальцы, и т.д. — в конце концов, эта иерархия заканчивается объектами GeometryModel3D, которые в действительности определяют объекты и их материал. В результате такого тщательно сегментированного иерархического дизайна (который получается при создании объектов инструментом вроде ZAM 3D) вы можете анимировать части тела индивидуально, заставляя персонажа ходить, жестикулировать и т.п. (Чуть позже, в разделе “Интерактивность и анимация” мы еще вернемся к анимации трехмерных сцен.)
На заметку! Помните, что для обеспечения минимального уровня накладных расходов нужно использовать минимальное количество сеток и минимальное число объектов ModelVisual3D. Объект Model3DGroup позволяет сократить количество используемых объектов ModelVisual3D (вообще нет причины заводить их больше одного), сохраняя гибкость для манипулирования частями вашей сцены по отдельности.
Снова о материалах
До сих пор мы использовали только один из типов материалов, поддерживаемых WPF для конструирования трехмерных объектов. Несомненно, DiffuseMaterial — наиболее часто используемый тип материала; он рассеивает свет во всех направлениях, подобно объекту реального мира.
Предыдущая << 1 .. 393 394 395 396 397 398 < 399 > 400 401 402 403 404 405 .. 473 >> Следующая