如何将Android OpenGL ES客户端和服务器放在不同的机器上

时间:2013-01-24 02:15:07

标签: android opengl-es libgdx

OpenGL ES的所有介绍文本都重复了这一点,因为它基于OpenGL,它是围绕客户端/服务器模型设计的,尽管这两件事情往往是在同一台机器上。

好吧,我想把它们放在不同的机器上(在同一个本地网络上)。这在Android中可行吗?怎么做到呢?如果你能弄清楚如何将其用于libgdx场景(这是我使用的游戏库),那将是额外的荣誉。

(冗长且可能不必要的进一步信息:我的用例是为手机安卓游戏提供更快速的原型设计。手指点击和加速度计数据以及不通过网络将数据发送到PC是非常简单的。如果我可以让PC向手机发送gl电话,那么我可以从PC上有效地运行整个游戏,但似乎是在手机上运行。这让我可以测试并看看游戏/游戏的想法是否会起作用手机/手机-gpu,从优势ram / cpu /编译时/热插拔代码的优势,只是看看什么在手机上工作,然后担心一切进入公羊和CPU的足迹和物流一个手机设备。我知道我可以通过解构渲染帧,将byte []数组发送到设备,并使用libgdx Pixmap或android BitmapFactory来获取图像并渲染它来做到这一点;但如果简单地转换gl调用,我我宁愿这样做,特别是因为这是对手机gpu撕裂的更现实的测试能力)

1 个答案:

答案 0 :(得分:1)

支持远程操作的协议与执行远程操作的服务器或客户端的实现之间存在差异。我认为现有的Android实现不支持这样的东西。我怀疑任何“远程桌面”应用程序只是转发2D图像,并且不对OpenGL做任何事情。

也就是说,没有任何特别阻止您实现新的libGDX后端,该后端将“远程”OpenGL调用到在手机上运行的服务器并将这些操作转发到本地OpenGL后端。 (我只能自信地说这个,因为我没有看过任何细节......)

然而,鉴于OpenGL性能中较大的瓶颈之一(通常)是客户端与GPU之间的带宽(例如,上传纹理,顶点数据,着色器等),添加网络只会加剧问题并且很难说出手机上的实际表现。

最好在桌面上运行并使用性能分析来确保只使用“合理”的CPU和GPU资源。