学习babylon.js --- [1] 初次体验和安装

2024-03-01 04:30

本文主要是介绍学习babylon.js --- [1] 初次体验和安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

babylon.js是微软推出的Web3D库,本文写作时版本是6.x,官方介绍如下,
在这里插入图片描述
看这意思是6.x系列的版本大大提高了性能,并提供了很多新特性。其Github地址是https://github.com/BabylonJS/Babylon.js

本篇文章讲述使用babylon.js的初次体验和安装操作,为后续学习打下基础。


一 简单例子

首先实现一个简单例子来体验一下babylonjs。新建一个文本文件,名字改成index.html,然后把以下内容拷贝进去,

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>Babylon Template</title><style>html, body {overflow: hidden;width: 100%;height: 100%;margin: 0;padding: 0;}#renderCanvas {width: 100%;height: 100%;touch-action: none;}</style><script src="https://cdn.babylonjs.com/babylon.js"></script></head><body><canvas id="renderCanvas"></canvas><script>const canvas = document.getElementById("renderCanvas"); // Get the canvas elementconst engine = new BABYLON.Engine(canvas, true); // Generate the BABYLON 3D engineconst createScene = function () {// Creates a basic Babylon Scene objectconst scene = new BABYLON.Scene(engine);// Creates and positions a free cameraconst camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);// Targets the camera to scene origincamera.setTarget(BABYLON.Vector3.Zero());// This attaches the camera to the canvascamera.attachControl(canvas, true);// Creates a light, aiming 0,1,0 - to the skyconst light = new BABYLON.HemisphericLight("light", new BABYLON.Vector3(0, 1, 0), scene);// Dim the light a small amount - 0 to 1light.intensity = 0.7;// Built-in 'sphere' shape.const sphere = BABYLON.MeshBuilder.CreateSphere("sphere", {diameter: 2, segments: 32}, scene);// Move the sphere upward 1/2 its heightsphere.position.y = 1;// Built-in 'ground' shape.const ground = BABYLON.MeshBuilder.CreateGround("ground", {width: 6, height: 6}, scene);return scene;};const scene = createScene(); //Call the createScene function// Register a render loop to repeatedly render the sceneengine.runRenderLoop(function () {scene.render();});// Watch for browser/canvas resize eventswindow.addEventListener("resize", function () {engine.resize();});</script></body></html>

然后用浏览器打开这个index.html文件,显示效果如下,
在这里插入图片描述
鼠标左键按着不放,然后左右移动,可以看到视角转变的效果。
在这里插入图片描述
这个例子里是使用了babylon的CDN,这样不用本地去安装babylonjs,但是对于正规项目来说,需要本地去安装这个库,最后打包。。。


二 本地安装babylonjs

首先需要安装Nodejs,安装过程不再赘述,就是去nodejs的官网下载node然后安装。babylonjs支持TypeScript,如果用TypeScript开发就需要安装它,

npm install -g typescript

接着是安装babylonjs,注意,这里只是看下如何安装,不用真正安装,等后面搭建项目工程的时候再安装。

babylonjs提供了2种style:UMD或者ES6,用户选择其中一种就行了,它们的区别可以网上搜下,

1. UMD/NPM方式

UMD是Universal Module Definition的缩写,其github地址是https://github.com/umdjs/umd,介绍如下,

在这里插入图片描述

babylon提供的NPM package有以下几个,
在这里插入图片描述
Babylon’s core是必须要安装的,命令如下,

npm install --save babylonjs

安装好之后,在typescript或javascript文件里包含babylonjs可以使用如下语句,

import * as BABYLON from 'babylonjs';

上面这条语句是把core里提供的所有功能都包含了,如果只想引入指定功能,那么可以使用以下语句,

import { Engine, Scene } from 'babylonjs';

其它package可以根据需要进行安装,安装时使用的package名字就是上面介绍的,例如安装materials包就使用如下命令,

npm install --save babylonjs-materials

安装gui包则用如下命令,

npm install --save babylonjs-gui

2. ES6/NPM方式

babylonjs同时也提供npm es6 packages,如下,
在这里插入图片描述
es6 package可以让用户使用“摇树”功能(tree shake)来减少程序大小。

同理,Babylon’s core是必须要安装的,命令如下,

npm install @babylonjs/core

安装好之后,在文件里引入babylonjs可以使用以下语句,

import * as BABYLON from "@babylonjs/core"

上面这条语句是把core里提供的所有功能都包含了,如果只想引入指定功能,那么可以使用以下语句,

import { Engine, Scene } from "@babylonjs/core";

其它package可以根据需要进行安装,安装时使用的package名字就是上面介绍的,例如安装materials包就使用如下命令,

npm install --save @babylonjs/materials

三 总结

本文讲述了如何体验babylonjs以及如何安装babylonjs,这样为后续学习做好准备。

这篇关于学习babylon.js --- [1] 初次体验和安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761213

相关文章

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas