Perf: просмотр тысяч изображений в Silverlight 3 на 3D-стене - PullRequest
0 голосов
/ 10 мая 2010

В настоящее время я работаю над очень классным приложением Silverlight, которое отображает фотографии в трехмерном пространстве стены, например демонстрацию Wall3D, добавленную в Blend 3.

Проблема, с которой я сейчас сталкиваюсь - это производительность. Приложение работает так:

  • Когда вы прокручиваете вправо или влево, вращается фоторамка
  • Когда выполняется каждое движение, следующий столбец фотографий загружается, декодируется в BitmapImage и добавляется в трехмерный настенный узел.
  • Как вы можете себе представить, пользователи (если вы позволите им) захотят пролистывать фотографии очень быстро, но у меня проблема в том, что я не могу отобразить фотографии достаточно быстро.

В большинстве случаев это красивое приложение, которое действительно хорошо работает, но когда альбом содержит более 300 фотографий, вы можете себе представить, какой объем памяти занимают все классы BitmapImage, и как при перемещении ползунка можно переходить с фотографии 20 на фотографию 120 в секунду.

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

Это может быть случай, когда нам нужно отбросить трехмерную стену 'great for show' и перейти к плоской стене, похожей на DeepZoom, как в архиве Playboy, которую сделал Vertigo.

Все еще не уверен, дайте мне знать ваши мысли.

P.S. Мы используем Kit3D для всей трехмерной работы, он использует PerspectiveCamera, Model3DGroup, ModelVisual3D, RotateTransform3D & TranslateTransform3D.

Ура, Боб.

1 Ответ

0 голосов
/ 10 мая 2010

Я предлагаю использовать проекционные преобразования с Deep Zoom (MultiScaleImage)

...