Babylon vs three 几句话就讲明白

2023-03-17  本文已影响0人  七个隆咚锵

Babylon.js和three,js 都web 3d js库,他们实现的略有不同,底层都是基于webGL,babylon是用typescript实现,three用es5。babylon是把所的api 都给你,而three是按需加载。用法相同只是API不一样

//渲染器
   //Three.js
    const renderer = new THREE.WebGLRenderer();
    
    //Babylon.js
    const engine=new BABYLON.Engine(canvas)

//场景
//Three.js
const scene=new THREE.Scene()

//Babylon.js 必须传入场景对应的渲染引擎
const scene=new BABYLON.Scene(engine)

//相机
//Three.js
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

//Babylon.js 旋转相机为例,可以想象为是围绕地球的卫星

// Parameters: name, alpha(横向旋转), beta(纵向旋转), radius(观察半径), target position(目标点), scene
const camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 10, new BABYLON.Vector3(0, 0, 0), scene);
// 绑定交互
camera.attachControl(canvas, true);

最终还要看官方吐槽

Babylon吐槽three
Three吐槽Babylon

精简一下他们彼此的内容:

babylon:three的源码是ES5写的,没有ts强类型约束,想学习源码不方便,而且他们还是一群野生程序员写的,我们是公司级别,有钱。
three: babylon源码高耦合,所有的东西都在一起。好比一个猩猩想要一个香蕉,你却给了它整个包含香蕉的森林。

结论:

项目小用threeJS,大项目用babylon。目前国内现实中都是web3D这种小项目,大型的web3D项目比较少见

上一篇下一篇

猜你喜欢

热点阅读