Какую функциональность DirectX предлагает WPF из коробки? - PullRequest
1 голос
/ 13 октября 2019

Я попытаюсь сделать этот вопрос как можно более широким. Последние несколько лет я занимался созданием игрового движка на C # и OpenTK. Я написал свой собственный способ загрузки моделей, текстур, отбраковки Frustum и т. Д. Я многому научился в своем путешествии. Несколько лет назад я обновил свой редактор игрового движка, чтобы использовать WPF, который я абсолютно обожаю. В настоящий момент я использую WinformsHost и GLControl (OpenTK) для рисования сцен в редакторе. Я только что понял, что должен погрузиться и полностью перенести свой двигатель в WPF. Это означало бы, что я намерен полностью исключить OpenTK и OpenGL и строго использовать функциональность DirectX WPF. Редактор будет не только полностью использовать DirectX и WPF, но и игровой клиент (как люди играют в мою игру) также будет переписан для использования WPF и DirectX.

Надеюсь, мой вопрос довольно прост. Я просто хочу узнать, сколько WPF предлагает из коробки с точки зрения поддержки 3D. Я вижу, что WPF предлагает свой собственный класс камеры и класс 3D-модели, а также освещение. Большую часть этого я уже написал на OpenGL, кроме освещения. Мои намерения не состоять в том, чтобы отбросить годы программирования только для освещения или чего-то в этом роде. По правде говоря, я вижу довольно интенсивную работу по созданию графического интерфейса для моей игры с WPF. Похоже, что это полностью стоит потери того, что я уже сделал.

Сколько из следующего уже реализовано из коробки?

  1. Управление камерой. Будет ли внедрение камеры от первого лица с использованием встроенных функций тривиальным?
  2. Загрузка моделей. Я понимаю, что должен предоставить вершины, текс-координаты и UV для WPF таким образом, чтобы он их принимал. Модели .obj не принимаются напрямую;но написание конвертера, который делает это, не должно быть проблемой, но какая поддержка уже предлагается для рендеринга 3D-моделей?
  3. Отбор Frustum. Насколько функциональность отбраковки Frustum поставляется с классом камеры WPF по умолчанию? Поддерживает ли он BoundingBoxes? Есть ли уже ограничивающий прямоугольник AABB, реализованный в платформе WPF для DirectX?
  4. Что я должен знать о переходе на WPF и Direct3D? Есть ли какие-то другие негативные аспекты в выполнении этого движения, о которых я должен знать?

И я уверен, что это будет упомянуто, так что да, я полностью осознаю, что я должен потерятьделая это. Если это будет означать улучшение моей игры, я с радостью буду двигаться вперед.

...