В настоящее время я работаю над очень классным приложением Silverlight, которое отображает фотографии в трехмерном пространстве стены, например демонстрацию Wall3D, добавленную в Blend 3.
Проблема, с которой я сейчас сталкиваюсь - это производительность. Приложение работает так:
- Когда вы прокручиваете вправо или влево, вращается фоторамка
- Когда выполняется каждое движение, следующий столбец фотографий загружается, декодируется в BitmapImage и добавляется в трехмерный настенный узел.
- Как вы можете себе представить, пользователи (если вы позволите им) захотят пролистывать фотографии очень быстро, но у меня проблема в том, что я не могу отобразить фотографии достаточно быстро.
В большинстве случаев это красивое приложение, которое действительно хорошо работает, но когда альбом содержит более 300 фотографий, вы можете себе представить, какой объем памяти занимают все классы BitmapImage, и как при перемещении ползунка можно переходить с фотографии 20 на фотографию 120 в секунду.
Конечно, у нас есть алгоритмы, позволяющие не загружать каждую фотографию между ними, но я все еще не могу найти быстрый способ отображения фотографий.
Это может быть случай, когда нам нужно отбросить трехмерную стену 'great for show' и перейти к плоской стене, похожей на DeepZoom, как в архиве Playboy, которую сделал Vertigo.
Все еще не уверен, дайте мне знать ваши мысли.
P.S. Мы используем Kit3D для всей трехмерной работы, он использует PerspectiveCamera, Model3DGroup, ModelVisual3D, RotateTransform3D & TranslateTransform3D.
Ура,
Боб.