Backbone.js和three.js - 带有画布的MVC

add*_*onj 7 javascript backbone.js three.js

我正处于开发一个小型网络应用程序的计划阶段,该应用程序在3D空间中进行一些交互式数据可视化.

为了获得最广泛的浏览器兼容性,three.js看起来是最佳选择,因为我可以使用WebGL,画布或SVG渲染相同的场景.

理想情况下,我想使用backbone.js提供一个漂亮的MVC层并避免编写ajax的一些乏味,但在我开始使用它之前,我想知道是否有人在尝试时有任何经验/提示/建议的话使这项工作.

假设画布或WebGL,看起来像backbone.view可以非常容易抽象,以支持three.js模型.渲染函数意味着被覆盖.我可以在画布上附加一个简单的监听器,然后我们使用一些三个技巧来拉出用于触发事件的特定模型(这似乎是最困难的任务).Backbone模型和集合可以很好地使用我的API(我认为).控制器可能会有点困难,但甚至可以通过保存相机的位置或类似的东西来使用.

使用SVG渲染时,显然简化了所有元素都在DOM中,但我怀疑当场景中有超过1,000个对象时,SVG是否是一个不错的选择.任何人都有SVG大型场景图的经验吗?

是否有其他库,无论是渲染还是类似骨干,都是更好的选择?我对此事持开放态度.

Jes*_*obs 2

您对如何使用 Backbone 的估计非常正确,我认为甚至还有额外的好处。你提到了一些关于使用“ Three.js 诡计来提取触发事件的特定模型(这似乎是最困难的任务)” - 不确定我是否只是对模型的使用感到困惑,但是当触发视图渲染,它绑定到的集合/模型被传递给该渲染方法 - 不需要查找。通过 Underscore 的 _.bindAll(),您可以将渲染方法(或者视图上的任何方法,实际上)绑定到由执行 _.bindAll() 的集合生成的任何事件。并且您可以触发所述模型/集合的所有自定义事件。因此,可能性是无限的。是的,渲染方法可以是任何东西,因此在该空间中与 Three.js 的交互应该是完美的。这里面有很多“和”!

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