我很好奇Three.js计划支持WebGPU。 可能吗?
从理论上讲,在不久的将来,但正如您可能知道的那样,WebGPU小组仍在积极地讨论/协调形成最初的建议/规范/草案。 我们将需要完整的规范和有效的标准化实施,这将需要数年的时间。
这就是说,我会建议介入/在WebGPU发展这里以下: https://github.com/gpuweb/gpuweb/wiki和https://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的那一刻起,它应该更快。 这是我看到性能提升来自何处的方法:
非常感谢@DVLP的解释。 第5点和第6点对我来说听起来很有趣,因为我们有成千上万个具有很多材质的对象。
WebGPU被广泛采用可能要花费很长时间。 在此之前,您可以使用网格实例化来加速整个过程
https://threejs.org/docs/#api/zh/objects/InstancedMesh
恐怕我们不能使用实例化,所有对象都是唯一的@DVLP
最有用的评论
我可以向您保证,我们不会忘记它......