Three.js VS. Unity VS. Unreal Engine

库、框架、引擎

Three.js是一个渲染库

Unity和Unreal是游戏引擎

Vue、React、Flutter是UI框架

对于Web的支持

UE从4.24开始,官方就不支持WebGL了,甚至UE5连插件都没了,原因感觉是UE追求的方向是高端渲染效果,而WebGL很多效果压根就做不到,因此UE就直接放弃WebGL了。

Unity还可以发布WebGL(通过WASM实现,需要下载的内容很大),但是我自己亲自用坦克游戏测试,发现WebGL渲染时,效果会差不少,锯齿很严重。另外看网上的评论,有很多重要特性在WebGL下是无法工作的。

UE似乎可以通过Pixel Streaming来实现Web端的应用。

简而言之,就是WebGL的能力,尚不足以支撑商业游戏。

网上,比如YouTube上,找到的Three.js的内容,也大多都是一些低渲染质量的Demo,感觉Three.js确实商业应用前景堪忧啊。这个库本身是很牛逼的,但是受限于硬件问题,难以发挥大用。

WebGPU发展起来后,Three.js能赶上Unity和UE么?

应该不行,很大的一个制约因素仍然没有解决:加载的资源大小。

比如我做一个页面,结果你让我加载50M的资源,这听起来就不合理。

而视觉效果都是和资源强相关的,资源小,自然效果差,这样就导致WebGL的渲染瓶颈短期内是无解的。

三大工具的定位

  • Three.js:写简单的Demo、官网、运营,对于视觉效果没啥要求的需求,一般用LowPoly风格,物体由程序通过几何体生成,避免加载太大的网络资源

  • Unity:移动端游戏、不追求渲染效果的2D网页游戏

  • Unreal Engine:3A、影视等追求高质量渲染的PC端应用

参考资料

HTML5 export - #7 by darthviper107 - Character & Animation - Unreal Engine Forums

itch.io上基于UE做的Web游戏:

Top HTML5 games made with Unreal Engine - itch.io

这些视觉渲染效果真的很粗糙……

2D的还行