Cesium 与 Babylon.js 可视化 联合两个mesh

本文介绍了如何直接从Babylonjs基础跳转到整合Cesium与Babylonjs进行3D可视化的步骤,包括初始化类库、创建和设置材质、定义纹理坐标,以及将不同形状的Mesh添加到地图上。示例中创建了一个带有屋顶和地面的立方体房屋模型,并展示了如何合并Mesh。
摘要由CSDN通过智能技术生成

我决定不从Babylonjs 基础来讲了 直接整合cesium与babylonjs可视化来讲

我整合一个类库 后续不断更新中

npm i @haibalai/cesium-babylonjs
初始化cesium-babylonjs 类库, viewer 是 Cesium 的 viewer对象

  import { BabylonMapManager } from "@haibalai/cesium-babylonjs";
  BabylonMapManager.init(viewer);

添加正方体

 import { BabylonMapManager } from "@haibalai/cesium-babylonjs";


  let scene = BabylonMapManager.getScene(viewer);
  const material = new BABYLON.StandardMaterial("material", scene);
  material.diffuseColor = new BABYLON.Color3(0, 1, 0);
  material.backFaceCulling = false;

  //texture
  const roofMat = new BABYLON.StandardMaterial("roofMat", scene);
  roofMat.diffuseTexture = new BABYLON.Texture("https://assets.babylonjs.com/environments/roof.jpg");
  const boxMat = new BABYLON.StandardMaterial("boxMat");
  boxMat.diffuseTexture = new BABYLON.Texture("https://assets.babylonjs.com/environments/cubehouse.png")

  const faceUV = [];
  faceUV[0] = new BABYLON.Vector4(0.5, 0.0, 0.75, 1.0); //rear face
  faceUV[1] = new BABYLON.Vector4(0.0, 0.0, 0.25, 1.0); //front face
  faceUV[2] = new BABYLON.Vector4(0.25, 0, 0.5, 1.0); //right side
  faceUV[3] = new BABYLON.Vector4(0.75, 0, 1.0, 1.0); //left side

  const box = BABYLON.MeshBuilder.CreateBox("box", {
    faceUV: faceUV, wrap: true, sideOrientation:2,
    size: 100
  }, scene);
  box.material = boxMat;
  BabylonMapManager.addToMap(box,[113.87629508972168, 22.544824222364753, 100]);

  const roof = BABYLON.MeshBuilder.CreateCylinder("roof", {
      sideOrientation:2,
      diameter: 130, height: 120, tessellation: 3
    },
    scene);
  roof.material = roofMat;
  // roof.scaling.x = 0.75;

  // roof.position.y = 1.22;

  BabylonMapManager.addToMap(roof,[113.87629508972168, 22.544824222364753, 190]);
  roof.rotation.z = Math.PI / 2;
  const ground = BABYLON.MeshBuilder.CreateGround("ground", {width:2048, height:2048}, scene);
  ground.material = material;

  BabylonMapManager.addToMap(ground,[113.87629508972168, 22.544824222364753, 10]);
  const house = BABYLON.Mesh.MergeMeshes([box, roof]);

Cesium 与 Babylon.js 可视化 联合两个mesh - 小专栏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值