Three.js: 会有基于WebGPU的渲染器吗?

创建于 2019-03-09  ·  20评论  ·  资料来源: mrdoob/three.js

我很好奇Three.js计划支持WebGPU。 可能吗?

Question

最有用的评论

我可以向您保证,我们不会忘记它......

所有20条评论

从理论上讲,在不久的将来,但正如您可能知道的那样,WebGPU小组仍在积极地讨论/协调形成最初的建议/规范/草案。 我们将需要完整的规范和有效的标准化实施,这将需要数年的时间。

这就是说,我会建议介入/在WebGPU发展这里以下: https://github.com/gpuweb/gpuweb/wikihttps://www.w3.org/community/gpu/

如果事实证明WebGPU像我们所有人希望的那样强大,则可能必须从头开始重写Three.js这样的库,才能充分利用它。

@TimvanScherpenzeel
是的我同意。 我将是遥远的未来。
如果不从头开始重写内核,是否不可能在three.js中添加WebGPU渲染器? 我们是否应该从头开始用threejs重写整个引擎(API)? 我认为即使WebGPU出现了,也很可能会并存一段时间(WebGL / WebGPU)。 我认为WebGPU不会杀死所有WebGL生态系统。
但是,我认为如果WebGPU本地和直接支持,它将非常强大,这与WebGL是图形驱动程序的间接API不同;而且,Google和其他大型企业都希望它能在浏览器中提供更好的DeepLearning性能和高性能图形体验

ThreeJS已经具有许多不同的渲染器– WebGLRenderer,WebGL2Renderer,CSS3DRenderer,SVGRenderer ...当API准备就绪时,可以类似地处理WebGPU。 随着时间的推移,对库的更深更改也是可能的。

尽管我很高兴也可以使用这些下一代API,但现在解决此问题。 :)

@donmccurdy
确实。Three.js非常灵活,将来甚至可以实现WebGPU,对吧?

根据WebGPU的建议,他们提到将Three.js开发者作为其主要目标受众之一。

https://gpuweb.github.io/admin/cg-charter.html

正在构建GPU库的JavaScript框架开发人员打算将其用于Web内容,但提供了更高级别的API,并向用户隐藏了许多低级图形和计算细节。 例如three.js。

我的问题是,他们使用另一种称为WHLSL的着色器语言。
https://github.com/gpuweb/WHLSL

我的问题是,他们使用另一种称为WHLSL的着色器语言。

“到达桥梁时,我们将跨越那座桥梁。”

已宣布@ Google I / O在Chrome Canary中为OSX提供了实验性支持:
https://www.youtube.com/watch?v=K2JzIUIHIhc

Babylon.js已经宣布对它的全面支持。 在这里查看:
https://forum.babylonjs.com/t/webgpu-is-coming-to-babylon-js/3122

希望ThreeJS团队能效仿。

不确定为什么要关闭它,因为提到了潜在的支持。 从逻辑上讲,我们保留了一些问题来“跟踪”它。 如果您将其关闭,则只会忘记...,除非还有其他问题需要跟踪。

我可以向您保证,我们不会忘记它......

但是我不是维护者。 就个人而言,我将遵循采用webgpu的第一个框架。 关键不是我。 是你们给关闭这个消息。 就像“很酷的东西,确定的东西,但我不在乎。它可以保持在边缘状态”。

PS。 我读错了,我以为是“我可以保证你不会忘记它”

@MichelDiz已打开此问题,询问我们是否计划支持WebGPU。 该问题已得到解答:我们绝对计划支持WebGPU。 现在对此进行研究可能为时过早,但是当我们准备讨论此问题时,将会打开新的问题。

@TimvanScherpenzeel从用户那里抽象出来的某些部分将不得不重写,但是暗示整个事情必须“从头开始重写”是一个

大家好,
非常感谢您对此的更新!
我只是想分享我对此类功能的看法。 就我们而言,我们并不总是将WebGL用于消费者应用程序。 我们确实具有WebGL的经验,可以可视化非常大的数据集,其中资产约为1GB,并在固定硬件上本地提供,我们可以控制浏览器及其标志来启用WebGPU。 因此,即使处于实验模式,我们也绝对希望对此提供支持。 我了解我们是少数派,但我只是想在对话中添加此观点。

@sinokgr WebGPU如何帮助显示1GB资产? 据我了解,几何数据的数据结构与WebGL相同。

感谢您的回复@mrdoob 。 老实说,我不会声称我对差异有足够的了解,而且网上发现的信息非常模糊(无论如何,根据我的研究)。 我得到的主要感觉是来自阅读的内容,例如您喜欢的@DVLP的最后一条消息,

将带来巨大的性能提升,并释放以高fps渲染大型场景的潜力。

这使我认为我们至少会看到一些改进。 这可能是,例如,这些素材资源加载的速度有多快,fps可能更高? 我不确定。

到常规内存的初始加载将保持不变,但是整个GPU API将更快,因此从涉及GPU的那一刻起,它应该更快。 这是我看到性能提升来自何处的方法:

  1. 将模型文件加载到浏览器-速度相同
  2. 将模型解析并将几何加载到数组缓冲区-速度相同
  3. 加载GPU程序-更快
  4. 加载纹理-最初的速度相同,但移交给GPU时速度更快
  5. 将几何图形传输到GPU-更快
  6. 进行一系列绘制调用以更快地渲染框架

非常感谢@DVLP的解释。 第5点和第6点对我来说听起来很有趣,因为我们有成千上万个具有很多材质的对象。

WebGPU被广泛采用可能要花费很长时间。 在此之前,您可以使用网格实例化来加速整个过程
https://threejs.org/docs/#api/zh/objects/InstancedMesh

恐怕我们不能使用实例化,所有对象都是唯一的@DVLP

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

boyravikumar picture boyravikumar  ·  3评论

akshaysrin picture akshaysrin  ·  3评论

Horray picture Horray  ·  3评论

scrubs picture scrubs  ·  3评论

donmccurdy picture donmccurdy  ·  3评论