Как улучшить производительность рендеринга 3D сцены с помощью HelixViewport

Я работаю над 3D-проектом в C# и WPF. Я использую Helix-Toolkit для показа различных 3D-объектов. Я часто использую сферы, и у меня есть 3D-текст на сцене. Проблема заключается в производительности, например, я при каждом перемещении мыши вычисляю позиции каждого текста в сцене, но с увеличением количества текста производительность снижается. У меня также есть элемент управления Slider для изменения радиуса сферы для каждого значения ползунка, когда пользователь перемещает ползунок, это также является проблемой производительности. Я не знаю, что делать, есть ли способ визуализации сцены, когда все визуальные объекты меняют свои значения, потому что теперь я думаю, что проблема в том, что для каждой измененной позиции текста 3D-сцена автоматически отображает свой контент.

1 ответ

Во-первых, Helixtoolkit.Wpf использует внутренний 3D-движок WPF, все рекламные щиты / точки / линии нарисованы с использованием CPU. Если у вас много рекламных щитов, вы очень быстро столкнетесь с производительностью. Попробуйте использовать Helixtoolkit.Wpf.SharpDX, если это возможно.

Перемещение мыши имеет частоту 100 Гц в WPF, вы можете попытаться рассчитать положение только для каждого события 2 перемещения или события 3 перемещения, чтобы уменьшить частоту обновления.

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

Другие вопросы по тегам