Web 3D的部分技术选型和Babylon

  • PixiJS 3D / PIXI.projection:虽然PixiJS主要是一个2D渲染引擎,但它也通过扩展模块如PIXI.projection支持基本的3D投影效果。
  • React-three-fiber:这是一个与React结合使用的包装器,将Three.js集成到React应用中,使开发者能够利用React组件的方式来构建3D场景。
  • Potree:Potree主要用于点云数据的三维可视化,对于处理大量点云数据的3D建模及显示有独特的优势。

以上列举的仅是部分热门的JavaScript 3D插件和技术栈,每种库都有其独特的应用场景和优势.其中Babylon.js是一个3D渲染引擎,加载渲染gltf数据的代码示例如下:

// 引入 Babylon.js 库
import * as BABYLON from 'babylonjs';
import 'babylonjs-loaders';

// 初始化场景
const canvas = document.getElementById('renderCanvas');
const engine = new BABYLON.Engine(canvas, true);

// 加载 glTF 模型
const scene = new BABYLON.Scene(engine);
BABYLON.SceneLoader.ImportMesh("", "path/to/your/model/", "model.gltf", scene, (meshes) => {
  // 获取加载的网格
  const mesh = meshes[0];

  // 设置网格位置和旋转
  mesh.position = new BABYLON.Vector3(0, 0, 0);
  mesh.rotation = new BABYLON.Vector3(0, 0, 0);

  // 添加网格到场景中
  scene.addMesh(mesh);
});

// 渲染循环
engine.runRenderLoop(() => {
  scene.render();
});

// 适配窗口大小变化
window.addEventListener('resize', () => {
  engine.resize();
});

在上面的示例中,首先通过 BABYLON.SceneLoader.ImportMesh 方法加载了 glTF 模型,然后将加载的网格添加到场景中,并设置了其位置和旋转。最后,通过 engine.runRenderLoop 方法启动了渲染循环,并通过 window.addEventListener 监听窗口大小变化来适配不同的屏幕尺寸。这只是一个基本示例,实际应用中可能需要处理更多的细节,例如加载纹理、处理动画、添加光源等。

加载和操作gltf数据的代码示例如下:

// 引入 Babylon.js 库
import * as BABYLON from 'babylonjs';
import 'babylonjs-loaders';

// 初始化场景
const canvas = document.getElementById('renderCanvas');
const engine = new BABYLON.Engine(canvas, true);

// 加载 glTF 模型
const scene = new BABYLON.Scene(engine);
BABYLON.SceneLoader.ImportMesh("", "path/to/your/model/", "model.gltf", scene, (meshes) => {
  // 获取加载的网格
  const mesh = meshes[0];

  // 设置网格位置和旋转
  mesh.position = new BABYLON.Vector3(0, 0, 0);
  mesh.rotation = new BABYLON.Vector3(0, 0, 0);

  // 添加网格到场景中
  scene.addMesh(mesh);

  // 操作网格
  // 例如,设置网格材质
  mesh.material = new BABYLON.StandardMaterial("material", scene);
  mesh.material.diffuseColor = new BABYLON.Color3(1, 0, 0);

  // 例如,设置网格可见性
### 最后

好了,这就是整理的前端从入门到放弃的学习笔记,还有很多没有整理到,我也算是边学边去整理,后续还会慢慢完善,这些相信够你学一阵子了。

做程序员,做前端工程师,真的是一个学习就会有回报的职业,不看出身高低,不看学历强弱,只要你的技术达到应有的水准,就能够得到对应的回报。



学习从来没有一蹴而就,都是持之以恒的,正所谓活到老学到老,真正懂得学习的人,才不会被这个时代的洪流所淘汰。



  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值