Какие библиотеки предоставляют кроссплатформенную поддержку 3D и P2P? - PullRequest
0 голосов
/ 05 марта 2011

Я пытаюсь найти совокупность библиотек, которые в совокупности отвечают следующим требованиям:

  • Плавное масштабирование, вращение, панорамирование (в двух измерениях). У меня будет большое растровое изображение (или SVG, в некоторых случаях), возможно, до 10000x10000 пикселей, которое служит картой с небольшим количеством небольших растровых изображений (или, опять же, возможно, SVG), которые можно перетаскивать по нему. Мне нужно иметь возможность масштабировать, вращать и панорамировать эту сцену; однако, представление всегда будет нормальным (то есть, глядя в лоб) на большое растровое изображение, поэтому я на самом деле не использую измерение глубины.

  • Peer-to-Peer. Я бы хотел, чтобы несколько пользователей имели возможность подключиться, чтобы поделиться одной из упомянутых выше сцен, предпочтительно одноранговой, без особых Конфигурация пользователем. Я собираюсь запустить сервер для случаев, когда пользователи не могут подключиться к P2P; Я хотел бы, чтобы аварийное переключение происходило автоматически, или, возможно, был бы какой-то способ продвижения клиентов, которые способны сами быть серверами. Ни в одном конкретном случае (одной сцене) не может быть более 10 пользователей одновременно; Мне не нужна надежность, чтобы справиться, скажем, с тысячами.

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

  • Кросс (ish) -платформа. Мне нужно иметь возможность работать в Linux, Windows и Mac OS. Было бы неплохо также иметь возможность работать на планшетах. Наличие в основном одинакового кода для всех платформ является плюсом, но не является абсолютно необходимым.

  • (L) GPL-совместимый. Я планирую выпустить под LGPL или GPL, желательно последний, поэтому мне нужны библиотеки с совместимыми лицензиями.

Я не настроен на какой-либо конкретный язык, я бы хотел использовать библиотеку или библиотеки, которые облегчают работу, хотя я предпочитаю работать не более чем на двух языках для проекта. (Модель может быть на одном языке, а представление - на другом, поэтому они могут общаться друг с другом по некоторому протоколу, который я определю, если это поможет мне лучше выбрать библиотеки для использования.) Может кто-нибудь предложить предложения по использованию?

Ответы [ 2 ]

1 голос
/ 05 марта 2011

OpenGL всегда является отличным выбором для аппаратного ускорения кросс-платформенного рендеринга 3D / 2D. Учитывая пользовательский характер вашей программы, вам, возможно, придется реализовать все самостоятельно, но как только вы поймете суть, это довольно легко. Попробуйте http://nehe.gamedev.net/ это в основном учебники по 3D рендерингу, но их легко применить к 2D.

Возможно, вам придется разбить большее растровое изображение и сохранить его в меньших тайлах, которые я бы порекомендовал вам передавать по мере необходимости. Возможно, вы также захотите загрузить несколько окружающих плиток в любое время, чтобы при масштабировании / панорамировании / вращении не возникало никаких артефактов или загрузки, поскольку изображение обрабатывается в 2D / 3D-пространстве.

Дайте мне знать, если у вас есть какие-либо вопросы.

0 голосов
/ 05 марта 2011

Для одноранговой связи вы можете обратиться к нашему MsgConnect . Это кодовая база C ++ для Linux, и MacOS X в настоящее время доступна под лицензией GPL, и мы рассматриваем возможность открытия других баз кода под какой-либо открытой лицензией.

...