【问题标题】:What libraries provide cross-platform 3D and P2P support?哪些库提供跨平台 3D 和 P2P 支持?
【发布时间】:2011-03-06 00:07:38
【问题描述】:

我正在尝试找到一组库,它们合起来满足以下要求:

  • 平滑缩放、旋转、平移(二维)。我将有一个大位图(或 SVG,在某些情况下),可能高达 10000x10000 像素,用作地图,带有一些中等数量的小位图(或者,可能是 SVG),可以在其上拖动。我需要能够缩放、旋转和平移这个场景;但是,视图总是与大位图正常(即正面看),所以我并没有真正使用深度维度。

  • 点对点。我希望多个用户能够连接以共享上述场景之一,最好是点对点,无需用户配置很多。我打算在用户无法连接 P2P 的情况下运行服务器;我希望故障转移自动发生,或者可能有某种方式来提升能够自己成为服务器的客户端。没有给定实例(一个场景)可能同时拥有超过 10 个用户;我真的不需要鲁棒性来处理,比如说,数千个。

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

  • 跨(ish)平台。我需要能够在 Linux、Windows 和 Mac OS 上运行。如果能够在平板电脑上运行,那就太好了。为所有平台提供几乎相同的代码是一个优势,但不是绝对必要的。

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

    李>

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

【问题讨论】:

    标签: 3d network-programming cross-platform p2p


    【解决方案1】:

    OpenGL 始终是硬件加速跨平台 3D/2D 渲染的绝佳选择。鉴于您的程序的自定义性质,您可能必须自己实现所有内容 - 但是一旦您掌握了它的要点,它就很容易了。试试http://nehe.gamedev.net/ 其主要是 3D 渲染教程,但可以轻松应用于 2D。

    您可能必须分解较大的位图并将其存储在较小的图块中,我建议您在必要时进行流式传输。您可能还想随时加载几个周围的图块,因此缩放/平移/旋转不会导致任何伪影或加载,因为图像是在 2D/3D 空间中操作的。

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

    【讨论】:

    • 我已经有一个使用 OpenGL 进行 3D 部分的演示。由于我不需要任何高级的渲染,这应该可以。
    【解决方案2】:

    对于点对点通信,您可能需要查看我们的MsgConnect。它是用于 linux 和 MacOS X 的 C++ 代码库,目前在 GPL 下可用,我们也在考虑在一些开放许可下开放其他代码库。

    【讨论】:

    • 开始编写代码对我来说风险太大,希望 MsgConnect 将在 Windows 上开源。
    • @uckelman 已经决定将其开源,我们现在正在审查特定的许可选项。我不喜欢 GPL,因为如果他们使用 GPL 库,它会通过强制他们在 GPL 下发布他们的产品来限制用户。
    • @EugeneMayevski'EldoSCorp 这里有什么更新吗?我建议使用多个许可证,例如 Mozilla 正在使用的 GPL/LGPL/MPL 三重许可证。
    • @PhilippKewisch 目前我们正在开发 MsgConnect 的新版本,然后我们将重新考虑许可。
    猜你喜欢
    • 2011-06-28
    • 2018-12-25
    • 2013-11-27
    • 2011-09-07
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多