我最近专注于在 HTML 5.0 画布中绘制一些很酷的形状。我想编写一个可以在 JavaScript 中使用的 3D 图形引擎。我已经完成了一个旋转立方体。我想完成像这个例子这样的形状: http://gyu.que.jp/jscloth/touch.html.

谁曾经在这个领域尝试过?

有帮助吗?

解决方案

编辑:这个问题很多年前就被问过。从那时起,除了 IE 之外的所有浏览器(目前?) 添加了对 webgl 的支持。您可以在这里看到许多示例: http://www.chromeexperiments.com/webgl/

我真的不想让你灰心,但是为了写一篇 3D 要使用 JavaScript 编写引擎,您必须非常精通并熟悉 3D 渲染背后的数学/逻辑。

既然你没有说明你目前的专业知识,我假设你不......在这种情况下,我强烈建议您从其他地方开始。例如, XNA游戏工作室. 。您用 C# 编写代码,并且已经有很多编写良好的 API 抽象了大多数(但绝对不是全部)困难部分。但这是学习 3D 渲染背后的许多概念和数学的好方法。

然而,如果您铁了心要从 JavaScript 开始,互联网上已经有很多关于这方面的资源。例如这个:-)
http://dev.opera.com/articles/view/3d-games-with-canvas-and-raycasting-part/

祝你好运!

其他提示

我写了一个Javascript 3D引擎大约一年前,围绕谷歌发布了自己的Chrome浏览器与超快的V8 Javascript引擎的时间。不幸的是,因为没有浏览器暴露了一个3D图形API(如OpenGL或Direct3D的),该发动机扭曲的位图图像上的网页,以实现仿射纹理映射三角形(其是次于透视正确纹理映射三角形),它是相当缓慢的。

我用我的Javascript 3D引擎打造 3D模型库。 (提示:不认为第一种模式 - 这是最大的和最慢的观看!)。性能是每秒约10帧用于与围绕1000三角形谷歌浏览器我的电脑上的3D模型。

我认为开放的源代码,以采购这台发动机,但我从来没有抽时间去这样做。如果有足够的兴趣,我把源代码到谷歌代码。

我的当前宠物项目是一个 Silverlight的3D引擎和模型查看器时,它是一个软件3D引擎(即,我的C#代码具有超过每个像素的颜色控制)。 Silverlight 3的比的Javascript快得多,但是非标准的,一个浏览器的插件,并且仍然不支持3D硬件加速图形(没有大量的开销)。

更新:在自我最初写这个主题的时间,我更新上述使用Silverlight 5 Silverlight的模型查看器和硬件加速3D

怎么样预先存在的3D库结合的JavaScript?像的OpenGL。

V8-GL 暴露的OpenGL API的80%为JavaScript:

“替代文字”

我不知道写一篇会怎样。但这里有一些存在的。

为了写一个你需要首先决定是否将支持Excanvas,所以IE可以使用它,或不

如果您支持IE,将设置你可以做一些限制。

您最好的选择是只是创造一些初级形状开始,很有可能你会希望有任何事都可以从建立在一定的基元,这样,你可能想看看OpenGL或DirectX,在他们的原语。

一旦你的,你可以在三维空间中移动它们,那么你将要开始寻找增加摄像头,但相比第1步,这将是比较容易的。

不幸的是,这一切是在数学很重,因此如果您创建具有频繁移动多个3D对象将承担着巨大的性能损失。

我觉得最好的办法就是等待,因为,在2007年年底出现了对Firefox和Opera的博客有在画布上的3D支持:的 http://starkravingfinkle.org/blog/2007/11/animating-with-canvas/

原因是,它是否会被内置到浏览器中,然后最繁重的工作将完成,尤其如果它支持OpenGL的一番风味。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top