Web 绘制大量半透明三角形的最快引擎是什么?

Web 绘制大量半透明三角形的最快引擎是什么?,web,graphics,3d,gpu,Web,Graphics,3d,Gpu,我喜欢电脑绘图 我想知道什么是具有以下功能的最快引擎: 使用4个颜色通道rgba绘制三角形,并允许绘制点光源和平行光 纹理将是一个很酷的附加功能,但我再次寻找最快的引擎,而不是最实用的。相机动画和对象动画将是必不可少的 最后,这个问题有两个答案,一个用于一般开发,一个用于web,但如果您只能与其中一个交谈,您的贡献将受到感谢 你最好的选择可能是。对于web,您可以使用,对于本机桌面或移动开发,您可以直接使用OpenGL。有很多引擎可以完成这项工作。其中最著名的一个是Unity,在Unity中,您

我喜欢电脑绘图

我想知道什么是具有以下功能的最快引擎:

使用4个颜色通道rgba绘制三角形,并允许绘制点光源和平行光

纹理将是一个很酷的附加功能,但我再次寻找最快的引擎,而不是最实用的。相机动画和对象动画将是必不可少的


最后,这个问题有两个答案,一个用于一般开发,一个用于web,但如果您只能与其中一个交谈,您的贡献将受到感谢

你最好的选择可能是。对于web,您可以使用,对于本机桌面或移动开发,您可以直接使用OpenGL。

有很多引擎可以完成这项工作。其中最著名的一个是Unity,在Unity中,您还拥有大量其他性能良好的功能

但我认为你不是在寻找一个引擎,而是一个API。例如OpenGL或DirectX(已经提到)。OpenGL甚至有一个特定的web内容(WebGL)

还有一个问题:三角形应该是半透明的。另一个答案缺少的是三角形是否已经排序的问题。以OpenGL为例,它可以很好地渲染与查看器最近的三角形无关的对象。它会动态地“搜索”这个三角形,只显示可见的三角形。但是对于半透明三角形,可以看到不同的三角形相互重叠,因此不仅需要知道哪个三角形在前面,而且还需要知道哪个三角形在后面,依此类推。OpenGL为此功能提供了混合功能,但在渲染之前必须手动对半透明三角形进行排序。这就是所谓的画家算法。虽然对象排序是一个复杂的问题,特别是对于大量对象,但这可能需要相当长的时间


为此,还有另一种解决方案,称为“深度剥离”。其思想是使用OpenGL多次渲染所有三角形。当你第一次看到前面所有的三角形时。现在再次渲染所有三角形,但前面没有三角形。这将生成距离查看器最近的第二个三角形。之后,将再次渲染所有三角形,但不渲染前两个“剥离”,这将生成第三个最近的三角形,依此类推。这是非常昂贵的,因为所有内容都必须多次渲染,但在有大量三角形的情况下,这比排序更快(由于三角形重叠,因此更精确)。在大多数情况下,四次剥皮就足以获得良好的效果。为了进一步阅读,我建议阅读Everitt的以下文章:

Aight,因此我有一些使用3js的webgl的经验。不幸的是,关于它的一些内容只在chrome中有效。。。就OpenGL和WebGL而言,它们之间的关系和区别是什么?关系在于它们基于相同的API。不同之处在于OpenGL用于桌面,WebGL用于浏览器。WebGL的一个问题是,它不受任何地方的支持,用户可能必须在浏览器中显式地打开它。对于web,我什么都不知道。对于桌面,还有其他选择,如DirectX、Vulkan和Metal。我相信Vulkan和Metal也可以在一些移动设备上使用。我不确定DirectX。是的,windows手机使用DirectX图形基础设施(DXGI)API OpenGL只支持特定顺序的半透明三角形。如果三角形没有排序,那么它会变得非常混乱,请向上投票选择引用。在90年代,我写了很多代码来制作3D图形时,我经常使用这种技术。不知道它有个名字——“深度剥皮”。这是个好名字。