BabylonJS娱乐场---基于WebGL的H5 3D游戏引擎

2024-02-05 21:50

本文主要是介绍BabylonJS娱乐场---基于WebGL的H5 3D游戏引擎,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BabylonJS娱乐场!


一个用于保存”定制的”BabylonJS场景的网站: http://babylonjs-playground.azurewebsites.net/#QKQHS

它是什么?

该BabylonJS 娱乐场是一个在线的白板式,可试验的应用程序. 用于辅助创建基于Javascript的网页图形库框架BabylonJS的场景.  为了试验该娱乐场你的浏览器必须支持WebGL-而且激活Javascript.    大多数的现在浏览器都支持.

简单的说, 你可以在BabylonJS游乐场的左边编辑器输入或修改基于Javascript的场景代码, 按下运行按钮, 然后娱乐场将尝试在页面的右边区域里使用最新的BabylonJS框架版本渲染WebGL场景.

顶部菜单

娱乐场的顶部菜单当前包含8个按钮:

运行 - 运行按钮很容易理解. 在你往编辑器里粘贴代码后, 或在你修改编辑器里的代码后, 按下运行.  这个命令娱乐场渲染你的场景.

保存 - 保存按钮将使你的场景永久的保存到娱乐场的数据库里, 然后产生一个唯一的网址, 我们下面会更多的谈论它.  别担心意外覆盖娱乐场里任何预装的场景.  那个不会发生的. 通常, 保存按钮用在你要和其他人分享你的场景时, 或者用在你要将场景作为书签保存到浏览器里时, 这样你可以回来继续工作.

获取.zip压缩包 - 获取.zip压缩包按钮是娱乐场提供的一个方便特征. 如果你想把你的场景带回家, 或发布到某个网站服务器上, 或者发送给其他人, 这个按钮就是为你提供的.  获取.zip压缩包 尝试将你编辑器里的代码放入一个单一的index.html文件, 然后把之打包进一个叫做sample.zip的压缩文件里.  最后把这个sample.zip文件提供给你下载.  一旦你下载并解压, 你就会看到名为index.html的文件.  你能用一个支持WebGL的浏览器打开该文件, 你会发现场景被浏览器渲染得妥妥的在那.  当确定index.html文件工作正常后, 你也许想将之发布到某个网页服务器上, 然后同全世界分享你漂亮的娱乐场场景.  没有必要安装诸如babylon.js和hand.js的框架文件到index.html文件的附近目录, 因为index.html文件里引用了和在线娱乐场框架使用的一样版本.  index.html文件已经可以运行并且完全可移植.  (我们爱死它了!)

新建 - 新建按钮是个独特且方便的特征. 如果你仔细查看过上面图片里编辑器中的代码, 或者如果你在娱乐场场景的下拉选择器里选过某个预装的场景, 你应该会注意到’包裹’在一个叫做’createScene()’函数里的部分.  该createScene()函数是个在许多BabylonJS场景里都会被使用的非常普通的函数.  BabylonJS框架用户经常复制和粘贴createScene()的内容.  通过按下这个按钮, 你将清空编辑器里的内容, 然后一个已经编写好基础内容的createScene()函数会出现在编辑器里.  已提供一个默认的相机, 但是你也许想加些光源和网格, 以便新的场景可以被渲染.

清除 - 清除Clear按钮也很容易理解. 这个按钮简单的清空娱乐场编辑器里的所有代码.  它经常用在已经准备好代码而要直接往里粘贴createScene()函数代码时, 或者用在当你准备做些试验的代码尝试时.  BabylonJS娱乐场是使用BabylonJS框架来创建试验代码的非常棒的地方.  它是个美妙的学习方法.

字体大小 - 字体大小按钮几乎不需要解释. 该按钮和它提供的下拉选择器允许你修改娱乐场编辑器里代码的字体大小.

场景选择器 - 这个下拉选择器按钮 (上图里显示为’定制’)…是用来从预装的娱乐场演示场景里自由选择场景的.  ‘定制’并不是任何一个演示场景的名称.  它被称为’定制’是因为那个图片中编辑器里的场景是一个’定制’的场景.  它是个修改了些基础场景的演示(为上图而创建的).  通常, 当你第一次打开娱乐场站点时, 那个按钮会被标为’基础场景’.  无论那个按钮上标注的是什么, 它都被叫做场景选择器 按钮.

全屏 - 全屏按钮也只需非常少的解释. 这个按钮会使右边的渲染画布进入全屏模式.  在进入全屏模式时, 你的浏览器会提供指令来退出全屏模式或返回到娱乐场的默认分屏模式.

编辑器

娱乐场左边的代码编辑器是个基于Ace 编辑器的一个’智能’编辑器.  娱乐场编辑器有许多奇妙的特征.  它具有输入预判的特征, 比如自动补全匹配的引号, 小括号, 大括号, 和方括号… 这对编程编辑器是非常方便的.  它尝试标出编程错误点, 而且当它发现潜在的语法问题时会在编辑器左边放置小图标.  如果你把鼠标指针指向那些小图标,编辑器会弹出一个小窗口告诉你它发现了什么问题.  编辑器也有语法加亮,代码折叠,文本拖拽,自动缩进及扩充等功能, 而且有4百万行的容量. 讲述编辑器的大量特征超越了本教程的范围.  通过访问Ace编辑器的网站你能够学习到更多的Ace编辑器知识,而且通过花更多时间在使用娱乐场编辑器上也可以.

弄糟了咋办 - 任何编辑器的重要特征之一是 撤销和重做, 我们的娱乐场编辑器完全支持这两个特征.  我并不熟悉所有操作系统里的撤销和重做操作键,, 但知道Windows系统里撤销键是Conntrol-z 而且重做键是 Shift-Control-z.  你也可以多次地执行撤销和重做。这个非常方便,我们再次爱死它了。

渲染画布

对于BabylonJS的网页图形库渲染画布你怎么评价, 没有比这个说法更牛逼了:”它是这个星球上最酷的事情!”.  娱乐场的右边部分是BabylonJS网页图形库框架用来渲染场景的区域,而且你可以通过左边的编辑器实时控制场景.  渲染出来的画布还是空白么?  你点击了运行按钮么?  你有创建相机么?  相机的目标设置正确么?  你网格的材质设置好了光源或散射颜色么?

如果你的代码已经包含在createScene()函数里, 那在该函数的顶部有这行代码么var scene = new BABYLON.Scene(engine),?  函数尾部的大括号里最后一行是否有return scene;呢?  你是否有创建一个网格对象,诸如:盒子, 圆柱体, 地面, 球体, 平面, 圆环体, 圆环节等?

你是在自由模式下运行而且没把你的代码放到createScene() 函数中么?  那样当然也是允许的,只是你仍然需要一个相机,一个光源和一个网格造型。.  缺乏这些会导致你的场景渲染失败.  好好研究下娱乐场场景选择器里下拉演示场景, 你很快会成为一名BabylonJS娱乐场专家的。

编译错误

这是张娱乐场弹出的编译错误检测面板的图片。  编译错误是当你点击运行按钮后BabylonJS框架检测出来的错误.  它不是编辑器检测到的语法错误, 但是编辑器也可能检测到它并使用红色X图标在其左侧将问题标示出来。编辑错误里并不总能包含错误的关键点,但它仍然很方便.  它告知你BabylonJS框架已经对你场景代码有些不爽拉。  你调整代码后在点击运行按钮前也许希望关闭弹出的编译错误提示(通过它边上的X按钮).

娱乐场网址的格式

当你首次访问BabylonJS娱乐场网站时, 你浏览器地址栏里的网址看起来会像这样:

http://www.babylonjs.com/playground/

如果你从下拉的场景选择器里选一个场景后, 娱乐场的网址会变成这样:

http://www.babylonjs.com/playground/#

(可以自行编辑演示场景的代码然后点击运行或保存. 你不可能毁坏预装的演示程序的)

当你想同人分享网址或为以后的工作记住场景而将一个场景保存到娱乐场数据库里时,那么网址看起来会像这样的:

http://www.babylonjs.com/playground/#QKQHS

(记得用浏览器的书签保存好)

如果你再次保存场景… (也许是在对场景做了更多工作之后), 那个网址将增长, 看着像这样子的:

http://www.babylonjs.com/playground/#QKQHS#1

如果再次保存… 网址还增长, 看起来像这样:

http://www.babylonjs.com/playground/#QKQHS#2

(再一次提醒, 务必用书签保存这个网址,以便之后你能很容易的把它找回来)

而且最后, 如果你想加载一个特殊的预装演示场景, 比如第12个演示场景, 你可以这样访问网址:

http://www.babylonjs.com/playground/?12

保持焦点

有时候你运行一个场景,然后在渲染画布里使用光标键和鼠标, 最后想将焦点返回到编辑器里以便做更多的代码修改.  有时候, 你要在编辑器里其它区域点击鼠标以便重新设定编辑器焦点.  一旦编辑器有了新焦点, 你的编辑器光标键就会再次移动.  这个常在场景里有激活的自由相机时发生。.

最后… 甩个包袱

嘿,谢谢阅读本教程,一并谢谢探究了BabylonJS娱乐场.  我们为之自豪, 也认为你会喜欢它.  这个教程还非常的新,而且将会经常的改变.  记得回来检查更新,学习新特征哦.

BabylonJS娱乐场位于……

请在我们的论坛上自由讨论BabylonJS娱乐场或者BabylonJS框架的其它话题, 论坛位于…… 

原文地址:http://doc.babylonjs.com/generals/The_Playground_Tutorial
github上译文地址:https://github.com/h53d/babylonjs-doc-cn/blob/master/target/generals/Essentials/The_Playground_Tutorial.md

这篇关于BabylonJS娱乐场---基于WebGL的H5 3D游戏引擎的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室