Babylon.js - 起步

相关网站

Babylon.js 官方网站
Babylon.js 中文网
Babylon.js Github地址

CDN

可以在https://cdn.babylonjs.com/xxx上找到其他参考,其中xxx是可以在/dist文件夹中找到的文件夹结构,如下所示:

对于预览版本,可以使用以下URL链接:

其他参考资料可在https://preview.babylonjs.com/xxx上找到,其中xxx是可以在/dist/预览版文件夹(如https://preview.babylonjs.com/gui/babylon.gui.min.js)中找到的文件夹结构

<!--- 使用cdn提供的url链接 --->
<!--- Link to the last version of BabylonJS --->
<script src="https://cdn.babylonjs.com/babylon.js"></script>

npm

使用npm来为项目安装BabylonJS:

npm install babylonjs --save

使用以下命令导入BabylonJS:

import * as BABYLON from 'babylonjs';

或加载特定的类:

import { Scene, Engine } from 'babylonjs';

在这里插入图片描述

Start

/第一步从HTML文档中获取canvas元素的引用:

var canvas = document.getElementById('renderCanvas');

然后,加载 Babylon 3D 引擎:

var engine = new BABYLON.Engine(canvas, true);

创建名为 createScene 的 function,并返回 scene

var createScene = function(){
	// Create a basic BJS Scene object.
	var scene = new BABYLON.Scene(engine);
	
	var camera = new BABYLON.FreeCamera('camera', new BABYLON.Vector3(0, 5, -10), scene);

    // Target the camera to scene origin.
    camera.setTarget(BABYLON.Vector3.Zero());

    // Attach the camera to the canvas.
    camera.attachControl(canvas, false);
    
	...
	
	// Return the created scene.
	return scene;
} 

注意: 其中的 camera 是必须的。

接下来渲染场景:

// 调用createScene
var scene = createScene();

// 注册一个渲染循环来重复渲染画布上的场景:
engine.runRenderLoop(function () {
    scene.render();
});

以上便创建了一个最基本的BabylonJS场景,不过场景中还未添加任何物体,之后的文章中再来介绍如何添加物体。

在这里插入图片描述

完整代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Babylon - Getting Started</title>

    <style>
		html, body {
		    overflow: hidden;
		    width: 100%;
		    height: 100%;
		    margin: 0;
		    padding: 0;
		}
		
		#renderCanvas {
		    width: 100%;
		    height: 100%;
		    touch-action: none;
		}
	</style>
		
    <!--- Link to the last version of BabylonJS --->
    <script src="https://cdn.babylonjs.com/babylon.js"></script>

</head>

<body>

    <canvas id="renderCanvas"></canvas>

    <script>

        window.addEventListener('DOMContentLoaded', function () {

		    var canvas = document.getElementById('renderCanvas');
		
		    var engine = new BABYLON.Engine(canvas, true);
		    
		    var createScene = function () {
		
		        // Create a basic BJS Scene object.
		        var scene = new BABYLON.Scene(engine);
		
		        // Create a FreeCamera, and set its position to (x:0, y:5, z:-10).
		        var camera = new BABYLON.FreeCamera('camera', new BABYLON.Vector3(0, 5, -10), scene);
		
		        // Target the camera to scene origin.
		        camera.setTarget(BABYLON.Vector3.Zero());
		
		        // Attach the camera to the canvas.
		        camera.attachControl(canvas, false);
		
		        // Return the created scene.
		        return scene;
		
		    }
		
		    // 调用createScene
		    var scene = createScene();
		
		    // 注册一个渲染循环来重复渲染画布上的场景:
		    engine.runRenderLoop(function () {
		        scene.render();
		    });
		
		    // 最后,您应该实现一个canvas/window resize 事件处理程序,如下所示:
		    window.addEventListener('resize', function () {
		        engine.resize();
		    });
		
		});

    </script>
</body>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值