Backbone.js and three.js - MVC with canvas
Backbone.js and three.js - MVC with canvas
我正在计划开发一个小的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的一个很好的应用。
- timeago.js with datatable and PHP
- using require.js with FB SDK
- Require JS with Knockout组件正在查找路径不正确的JS文件
- JS with SVG:围绕其中心旋转SVG元素
- Node JS with C++ integration
- leafleat-editable.js with mapbox.js
- Ember.js with EmberFire Object - 如何使用数组属性
- Using moment.twitter.js with requirejs
- 使用 Enquire.js with Vue.js 查询浏览器的大小
- Polymer JS with Embedded CSS
- Node.js with Geddy:geddy.string.uuid(x) 是否确保字符串是唯一的
- Ember.js with Cloudkit JS
- Using typeahead.js with jquery ajax call
- Angular.js with Jade 和 Express - 数据绑定不起作用
- Node.js with Webstorm -
- BrainTree.js with AngularJS and customVariables
- Backgrid.js with Backbone
- Backbone.js with MVC 3 and ViewModels
- Zombie.js with Behat and Mink
- 从Blender导出到Three js with Textures