Backbone.js and three.js - MVC with canvas

Backbone.js and three.js - MVC with canvas

本文关键字:js with canvas MVC three and Backbone      更新时间:2023-09-26

我正在计划开发一个小的web应用程序,它可以在3D空间中进行一些交互式数据可视化。

对于最广泛的浏览器兼容性,three.js看起来是最好的选择,因为我可以使用WebGL, canvas或SVG渲染相同的场景。

理想情况下,我想使用backbone.js来提供一个很好的MVC层,避免编写ajax的一些繁琐,但在我得到它之前,我想知道是否有人有任何经验/提示/建议的话,试图使这项工作。

假设画布或WebGL,它似乎是骨干。视图可以很容易地抽象以支持three.js模型。渲染函数应该被重写。我可以在画布上附加一个简单的监听器,然后使用一些3 .js技巧来提取特定的模型来触发事件(这似乎是最困难的任务)。骨干模型和集合可以很好地配合我的API(我认为)。控制器可能会有点困难,但甚至可以通过保存摄像机的位置或类似的东西来使用。

使用SVG渲染,这显然简化了DOM中的所有元素,但我怀疑当场景中有1000多个对象时,SVG是否会是一个好选择。有人在SVG中使用大型场景图形的经验吗?

是否有其他的库,无论是渲染或类似骨干,这将是一个更好的路线?我愿意听取对这件事的建议。

您对如何使用Backbone的估计非常正确,我认为甚至还有一个额外的好处。您提到了使用"three.js技巧提取特定模型以触发事件(这似乎是最困难的任务)"的事情。-不确定如果我只是对模型的使用感到困惑,但是当视图渲染被触发时,它绑定到的集合/模型被传递给渲染方法-不需要查找。通过Underscore的_.bindAll(),您可以将呈现方法(或视图上的任何方法)绑定到由执行_.bindAll()的集合生成的任何事件。你可以触发所有你自己的自定义事件的模型/集合。因此,可能性是无限的。是的,渲染方法可以是任何东西,所以在那个空间中与three.js的交互应该是完美的。有很多"and"!

你想做的绝对是可能的,听起来真的很有趣,而且绝对是Backbone的一个很好的应用。