用于高级Web GUI的Pixi.js和ThreeJS

时间:2015-04-24 03:26:28

标签: javascript canvas three.js webgl pixi.js

想法

嗨! 我和一组开发人员正在为交互式图形编辑创建一个开源图形界面。

我希望此界面能够处理大量连接的节点,允许用户移动它们,重新连接,放大/缩小等。每个节点都可以在其上放置文本,按钮,滑块和其他控件。另外我们想要创建一个非常先进的,可插拔的图形界面 - 每个面板都是一个插件 - 你可以把它想象成基于web的eclipse。面板可以是图形编辑器,时间轴或3D视口。

问题

我想问你,哪个图书馆会给我们带来更多好处 - Pixi.jsThreeJS或其他图书馆?也许我们应该混合它们 - 在Pixi.js中创建界面以及ThreeJS中需要3D支持的一些插件(我个人不喜欢这个想法,因为较低的“一致性”)。

要求

我们希望所有内容都在WebGL中运行。原因是,我们希望尽可能顺利地运行图形编辑器,并考虑到图形编辑器需要显示与GUI其他部分相同的控件这一事实,合理地在一种技术中进行操作。

我正在寻找一个图书馆,这将为我提供创建这样一个大项目的最佳性能和灵活性,特别是考虑到:

  • 创建自定义HUD元素(滑块,按钮,图形等)的能力
  • 处理大量元素的能力 - 缓存/重绘只需要的部分很重要
  • 画布后备很重要,但并不重要

1 个答案:

答案 0 :(得分:2)

  

但是如果你想创建一个具有放大/缩小的高性能节点图和一些可以处理数千个节点的奇特效果,我认为使用canvas / webgl可以获得更好的性能,对吧?

不,我不同意。

HTML在节点操作和渲染方面非常出色。但是,它的弱点在于你所说的那些奇特的效果。

另一方面,webgl非常适合花哨效果,但节点操作非常差。让我们说第一次尝试你创建每个节点作为一个绘图调用,300绘制调用,你可能会完成。 You will have to think and cheat and think and cheat to get rid of draw calls (webgl calls).

示例我已经看过,所以可以谈论。 Cocos2d-js可能比Pixi.jsThreeJS更合适。这是非常好的2d免费引擎,免费工作室和强大的帆布后备。你可能还想要一个基本的花式效果,九片。但即使是这个简单的九片事也可以进行9次平局调用,你可以看到你的表现快速下降。我也用cocos2d进行了性能测试,我可以说400个最简单的精灵彼此相邻只运行30fps。

性能如此之低的原因是引擎(无论什么引擎)都没有关于你想要实现什么的信息。大多数引擎只会为您提供一种或两种渲染方式。如果我选择我希望每张图片都是一个精灵(一个节点),那么引擎就无法简化它。

如果我是你,我不会使用任何引擎,只会使用webgl。但这意味着你必须了​​解webgl并且你没有画布后备。任务似乎非常困难,并再次进行一些演示。 ThreeJS和playcanvas引擎都在浏览器中有自由编辑器。 Playcanvas仅在2天前发布了新版本的编辑器。编辑gui都是HTML,两者都是。我们谈论的是喜欢HTML gui的webgl引擎。许多游戏设计师也喜欢HTML。

所以HTML根本不是一个坏选项,但如果你真的需要使用webgl,你应该做好准备。引擎可能无法完成您的任务。