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的还行