哪些库提供跨平台3D和P2P支持?

哪些库提供跨平台3D和P2P支持?,3d,network-programming,cross-platform,p2p,3d,Network Programming,Cross Platform,P2p,我试图找到一组库,这些库合在一起满足以下要求: 平滑缩放、旋转、平移(二维)。我将有一个大位图(或SVG,在某些情况下),可能高达10000x1000像素,用作贴图,还有一些中等数量的小位图(或SVG),可以在上面拖动。我需要能够缩放、旋转和平移这个场景;但是,视图将始终与大位图垂直(即正面查看),因此我并不真正使用深度维度 点对点。我希望多个用户能够连接,以共享上述场景之一,最好是点对点,而无需用户进行太多配置。我打算让一台服务器在用户无法连接P2P的情况下运行;我希望故障切换能够自动进行,

我试图找到一组库,这些库合在一起满足以下要求:

  • 平滑缩放、旋转、平移(二维)。我将有一个大位图(或SVG,在某些情况下),可能高达10000x1000像素,用作贴图,还有一些中等数量的小位图(或SVG),可以在上面拖动。我需要能够缩放、旋转和平移这个场景;但是,视图将始终与大位图垂直(即正面查看),因此我并不真正使用深度维度

  • 点对点。我希望多个用户能够连接,以共享上述场景之一,最好是点对点,而无需用户进行太多配置。我打算让一台服务器在用户无法连接P2P的情况下运行;我希望故障切换能够自动进行,或者可能有某种方式来提升能够成为服务器的客户机。任何给定实例(一个场景)都不可能同时拥有超过10个用户;我真的不需要健壮性来处理,比如说,数千个

  • 同步。一旦用户开始拖动其中一个小位图(一个片段),在拖动停止之前,其他用户都不能拖动该片段。我还没有想到具体如何做到这一点——可能有一个简单的解决方案,或者这种同步可能是库提供的

  • 跨(ish)-平台。我需要能够在Linux、Windows和Mac操作系统上运行。也能在平板电脑上运行会很好。所有平台的代码基本相同是一个优势,但并非绝对必要

  • (L)GPL兼容。我计划在LGPL或GPL下发布,最好是后者,因此我需要具有兼容许可证的库


我没有设置任何特定的语言,我想使用一个或多个使工作更简单的库,尽管我的首选是在项目中最多使用两种语言。(模型可能使用一种语言,视图可能使用另一种语言,因此他们可以通过我定义的某个协议相互交谈,如果这能让我更好地选择要使用的库的话。)有谁能为使用什么提供建议吗?

对于点对点通信,您可能想看看我们的。这是Linux和Mac OS X的C++代码库,目前在GPL下可用,我们也在考虑在一些开放的许可下打开其他代码库。p> OpenGL始终是硬件加速跨平台3D/2D渲染的最佳选择。考虑到程序的定制性质,您可能需要自己实现所有功能,但一旦掌握了要点,就相当容易了。尝试它的大部分3D渲染教程,但可以轻松应用于2D

您可能需要分解较大的位图并将其存储在较小的分幅中,我建议您在必要时进行流式处理。您可能还希望随时加载多个周围的平铺,以便在2D/3D空间中操作图像时,缩放/平移/旋转不会导致任何瑕疵或加载


如果您有任何问题,请告诉我。

如果我希望MsgConnect将对Windows开放源代码,那么就开始编写代码太冒险了。@uckelman将其开放源代码的决定已经做出,我们现在正在审查特定的许可选项。我不喜欢GPL,因为如果用户使用GPLed库,它会强制用户在GPL下发布产品,从而限制用户。@EugeneMayevski'EldoSCorp这里有更新吗?我建议使用多个许可证,比如Mozilla使用的GPL/LGPL/MPL三许可证。@PhilippKewisch目前正在开发MsgConnect的新版本,然后我们将重新考虑许可证。我已经有一个使用OpenGL的3D部分演示。因为我不需要任何高级的渲染,这应该是有用的。