Как небольшой побочный проект, я подумал о том, чтобы взглянуть на создание простого 3D-приложения. Мне довольно удобно создавать приложения WPF, поэтому Visual Studio ‘DirectX 11 и XAML App (UWP)’ попался на глаза. Следует отметить, что я медленно прорабатываю каноническую книгу D3D11 «Программирование 3D-игр с помощью DirectX 11» Фрэнка Луны.
Таким образом, моя зона комфорта с D3D11 довольно узкая, но я чувствовал себя достаточно уверенно, чтобы справиться с простой задачей. Я упал на первое препятствие. То, что я пытался сделать, это взять шаблон Visual Studio, добавить простой пользовательский интерфейс из нескольких текстовых полей для просмотра и редактирования преобразования модели.
Я пришел к выводу, как связать мою ViewModel для пользовательского интерфейса с моим объектом C ++ / CX, который содержит 3d-модель и, следовательно, преобразование модели. Мой класс, который определяет свойство 3d-модели, является стандартным классом C ++. Кажется, я не могу понять, как жениться на двоих.
Все учебники, с которыми я сталкивался, исключают наиболее важную часть интеграции XAML / D3D11, а именно привязку данных к самим объектам игры / сцены.
Итак, вопрос: как мне решить задачу преодоления пропасти между моими игровыми объектами C ++ / CX ViewModel и C ++?
Просто типично, что после публикации вопроса я нахожу направление к ответу.
Microsoft в своих универсальных образцах Windows имеет образец Simple3DGameXaml. Он использует Xaml, но не использует элементы управления и привязывает их к игровым объектам.
https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Simple3DGameXaml
Тем не менее, он показывает альтернативный макет приложения, который полностью устраняет путаницу, с которой я столкнулся при подключении двух, казалось бы, разных частей приложения.
Благодарю.
Других решений пока нет …