vue + babylonjs 测试

  1. 新建 vue 项目
vue create babylonjs-vue-app
  1. 安装 babylon.js
yarn add @babylonjs/core
  1. 在根组件 App.vue 测试,测试用例来源 迈出第一步-让babylon运行起来
    注意:所有代码写在 mounted() 内,vue 示例挂载后,dom 元素渲染后才能获取
<template>
  <canvas id="renderCanvas"></canvas>
</template>

<script>
import * as BABYLON from "@babylonjs/core/Legacy/legacy";
export default {
  data() {
    return {};
  },
  mounted() {
    var canvas = document.getElementById("renderCanvas"); // 得到canvas对象的引用
    var engine = new BABYLON.Engine(canvas, true); // 初始化 BABYLON 3D engine

    /******* Add the create scene function ******/
    var createScene = function () {
      // 创建一个场景scene
      var scene = new BABYLON.Scene(engine);

      // 添加一个相机,并绑定鼠标事件
      var camera = new BABYLON.ArcRotateCamera(
        "Camera",
        Math.PI / 2,
        Math.PI / 2,
        2,
        new BABYLON.Vector3(0, 0, 5),
        scene
      );
      camera.attachControl(canvas, true);

      // 添加一组灯光到场景
      // eslint-disable-next-line no-unused-vars
      var light1 = new BABYLON.HemisphericLight(
        "light1",
        new BABYLON.Vector3(1, 1, 0),
        scene
      );
      // eslint-disable-next-line no-unused-vars
      var light2 = new BABYLON.PointLight(
        "light2",
        new BABYLON.Vector3(0, 1, -1),
        scene
      );

      // 添加一个球体到场景中
      // eslint-disable-next-line no-unused-vars
      var sphere = BABYLON.MeshBuilder.CreateSphere(
        "sphere",
        { diameter: 2 },
        scene
      );

      return scene;
    };
    /******* End of the create scene function ******/

    var scene = createScene(); //Call the createScene function

    // 最后一步调用engine的runRenderLoop方案,执行scene.render(),让我们的3d场景渲染起来
    engine.runRenderLoop(function () {
      scene.render();
    });

    // 监听浏览器改变大小的事件,通过调用engine.resize()来自适应窗口大小
    window.addEventListener("resize", function () {
      engine.resize();
    });
  },
};
</script>

<style>
html,body,#app {
  overflow: hidden;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
#renderCanvas {
  width: 100%;
  height: 100%;
  touch-action: none;
}
</style>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值