我要创建一个基于Web的应用程序,其中包括以下任务
该应用程序最初的目的是在Qt / OpenGL上使用基于PC的应用程序,但我们正在研究将其作为基于Web的应用程序实现是否可行。
我对基于Web的开发的了解仍然有限。
为此提出解决方案的推荐方法/技术是什么?
谢谢!
更新:平台独立解决方案首选。该应用程序需要在Mac和Windows机器上运行。
答案 0 :(得分:4)
如果是webapp,您应该查看Papervision3D(http://papervision3d.org/)以获取基于Flash的方法(如果您希望它与平台无关,那就是这种方法。)
答案 1 :(得分:4)
Java applet也可能做你想做的事。
查看java 3d
答案 2 :(得分:3)
Google也是优秀但新的O3D:http://code.google.com/apis/o3d/
答案 3 :(得分:2)
webgl也是一个有趣的选择。没有插件,只需在浏览器中使用opengl(包括着色器)。
答案 4 :(得分:1)
嗯,你当然不能用HTML完成所有这些,所以选择你的插件技术就是一个问题。
我看到它的方式,你最好的选择是Flash,因为这是一个成熟的平台,有很多第三方扩展(例如http://www.flashsandy.org/)可以让你进行3D建模。
另一种选择是Silverlight,它将为您提供.NET / C#(而不是脚本)的强大功能。
两者都是跨平台和跨浏览器。
答案 5 :(得分:1)
Canvas和JavaScript可能会渲染它,具体取决于3D模型的复杂程度。见Canvas 3D example
还有Firefox Canvas 3D Addon和Canvas 3d JS Library用于编写使用它的3D应用程序。
答案 6 :(得分:0)
有很多方法可以解决这个问题。我想到了一些:
问题可能是可移植性。这里有两个注意事项:您的代码需要在任何地方运行,并且需要3D加速。这是一个问题,因为您无法确定它是否具有3D(当然,您可以查询您的上下文)。
因此,您可能还想考虑在CPU上进行栅格化和渲染(即使用MESA3D)。如果您不需要允许自由变换并想要设置动画,比如30帧并使用Mesa,您可能在典型硬件上的典型模型上渲染5fps,您需要6秒钟来计算整个场景。那就足够了。
答案 7 :(得分:0)
另一个Java选项,与JVM集成较少但基于OpenGl - lwjgl(我最喜欢的) 和 jogl
检查Jake2 webstart:http://bytonic.de/html/jake2_webstart.html
答案 8 :(得分:0)
Adobe Shockwave具有强大的3D建模功能。不幸的是,它目前支持不足,但Flash没有3D功能(papervision3d项目试图纠正它,YMMV)。
答案 9 :(得分:0)
我同意其他人认为Flash可能是你最好的选择。如果担心将来在苹果移动设备上运行,并且成本不是问题,请考虑使用Unity开发一些东西。它是一个插件(如Flash),但没有引起史蒂夫乔布斯的愤怒。