Производительность 2D-рисования (GDI+ и SlimDX)

Я являюсь частью команды, которая создала инструмент для просмотра и взаимодействия с очень большими и сильно взаимосвязанными графами на языке C #/WPF. Просмотр и взаимодействие с графиком осуществляется с помощью пользовательского элемента управления, который принимает набор DrawingVisuals и отображает их на холсте. Узлы на графике могут иметь индивидуальную форму, созданную с помощью нашего редактора. Текущий элемент управления работает очень хорошо и хорошо сочетается с нашей программой, но есть обоснованные опасения по поводу производительности при рассмотрении гораздо больших графов (20 000+ узлов и большого количества соединений ).

После небольшого исследования выяснилось, что есть два подхода::

  • Маршрут GDI+, при котором графика рисуется в WriteableBitmap или InteropBitmap.
  • Вариант SlimDX или DirectX (, размещенный в D3DImage)


Принимая во внимание эти два совершенно разных подхода, какой маршрут лучше выбрать, учитывая:

  • Взаимодействие с графом должно быть быстрым даже при просмотре всего графа.
  • Обновление визуальных элементов должно быть быстрым (изменение цвета или размера)
  • Проверка попадания должна быть быстрой (точка и прямоугольник ).
  • Разработка должна быть завершена своевременно.

Какой метод вы бы использовали и почему?

РЕДАКТИРОВАТЬ:
Похоже, аналогичный вопрос был задан, но на него не ответили.

8
задан Community 23 May 2017 в 12:08
поделиться