2014-02-15 26 views
2

我目前正在开发基于Three.js的WebGL项目,需要时我需要快速获取给定模型的截图。如何在服务器端运行WebGL和JavaScript?

我已经实现了一些JavaScript代码,将呈现3D模型,然后返回它的图片。但问题在于JavaScript代码在客户端运行,但我需要它将其作为服务器端,因此我可以通过URL获取图片(如example.com/get-screenshot.php?id=2)并将其提供给我的用户。

我想知道是否有一种机制,会自动触发作业,并返回我所需要的。除了托管我的网站(即Azure网站)的服务器外,我还可以访问安装了Windows Server或Ubuntu Server的Azure虚拟机;我不知道它是否有帮助。

在此先感谢。

+0

如何使用'canvas.toDataURL'在用户机器上截取屏幕截图并上传到服务器? – gman

+0

@gman是的,这正是我现在正在做的。 –

+1

这听起来像很多工作,但...如果你从源代码构建[铬](http://chromium.org),你也可以构建软件版本的台面。它被检查到铬的来源,并用于在没有GPU的服务器上进行测试。然后,您可以在没有GPU的情况下运行Chromium并使用所有GPU功能。你需要传入'--use-gl = osmesa',你可能也必须传入'--ignore-gpu-blacklist'。那么,您可能能够在您的服务器中使用铬进行外壳?您可能也能够将DirectX强制进入软件模式,因为您在Windows上时无需重新编译Chrome。询问* angleproject *家伙。 – gman

回答

2

您的WebGL代码需要运行GPU;亚马逊最近向EC2推出了GPU实例,但Azure目前没有这种选择。

Verold平台的下一个版本为您提供了一个完整的Three.js编辑器,可以为您的Web 3D桌面和移动应用程序提供托管选项。你将能够在我们的平台上实现这个用例。有关详细信息,请发送电子邮件至[email protected]

罗斯

-1

您可以尝试使用phantomjsgruntnode到genarate这些图像。

phantomjs可以模拟一个完整的堆栈浏览器环境,并且可以在服务器端运行。

+4

但是,如果没有GPU,它无法模拟GPU。 –