Web 3D 框架简介

:MNongSciFans 2024-09-13 17:33:01 阅读 99

前言

3D游戏引擎的历史可以追溯到20世纪80年代末和90年代初。当时,计算机技术迅速发展,人们开始对图形和游戏感兴趣。以下是3D游戏引擎的历史故事:

早期引擎的诞生(1980-1990年代)

在这个时期,一些早期的3D游戏引擎开始出现。其中一个著名的例子是id Software开发的Doom引擎,该引擎是第一个在主流市场上取得成功的3D游戏引擎。它采用了一种被称为"重建"的技术,可以在限制的硬件资源下实现3D效果。

商业化时代的到来(1990-2000年代)

随着3D游戏的普及,商业化的3D游戏引擎开始涌现。其中最著名的是id Software开发的Quake引擎,它是第一个具有实时3D渲染和支持网络游戏的引擎。Quake引擎的成功推动了更多的公司开始开发自己的3D游戏引擎,如Epic Games的Unreal Engine和Crytek的CryEngine。

开源引擎的崛起(2000年代后期)

在2000年代后期,一些开源的3D游戏引擎开始崛起。其中最著名的是Unity引擎,它提供了一个友好的界面和工具,使得游戏开发者可以轻松地创建和发布游戏。此外,还有一些其他开源引擎,如Ogre3D和Godot等,它们也受到了广泛的关注和采用。

HTML5和WebGL的兴起(2010年代)

随着HTML5和WebGL技术的发展,3D游戏引擎开始向Web领域扩展。这使得开发者可以在浏览器中创建和运行高质量的3D游戏,而无需额外的插件。一些主要的Web 3D游戏引擎,如Three.js和Babylon.js,开始出现,并得到了广泛的使用。

Web 3D 框架

Unity 3D ,团结引擎,基于 Unity 2022LTS。是 Unity 中国研发团队推出的 Unity 中国版引擎,专为中国开发者定制的实时3D引擎,它以 Unity 2022 LTS 为研发基础,推出了微信小游戏解决方案、团结引擎车机版,赋予小游戏和智能汽车领域的开发者,以更强劲的创作动能,是 Unity 中国加速本土化进程的里程碑。

f692f8ec80dc44ab8c1aeb7b80e829f7.png

Three.js,基于WebGL,提供了一些简单易用的API,使用户能够轻松地创建和显示3D对象、场景、光照和相机。支持多种渲染效果,如纹理映射、阴影、反射等,可以在网页中实现逼真的3D效果。它还提供了一些辅助功能,例如加载模型和动画、进行交互和控制等。应用于游戏开发、虚拟现实、数据可视化等领域。具有强大的灵活性和可扩展性,用户可以通过自定义着色器和材质来实现更高级的效果,还可以通过添加插件和扩展来增加功能。它的文档齐全且有很多示例和教程可供参考,对于初学者和有经验的开发者来说都是一个很好的选择。

4ca075ba0faa434fa54bb8c21fe7dabf.png

PlayCanvas,基于Web的实时图形引擎,提供了一整套工具和功能,可视化场景设计器 workflow,能够直观地创建和编辑游戏内容。这个编辑器支持实时预览和调试功能,基于WebGL和WebVR,以实现高质量的实时渲染效果。开发者可以利用引擎内置的渲染器和材质系统来创建逼真的光照和阴影效果。集成了物理引擎,可以模拟真实世界中的物理效果,如重力、碰撞和刚体运动。

b8cfe26ce65940e89f920e86e494fed9.png

babylon.js ,巴比伦 js,由微软开发和维护的基于WebGL技术 Web3D 的开源游戏引擎,用于创建高性能、交互式的3D图形应用程序。它提供了一个简单易用的API,可以实现各种效果,如渲染、动画、物理模拟、碰撞检测等。可以创建出丰富、互动性强的3D图形应用程序,如游戏、虚拟现实体验、可视化效果等。

209b507ebc7e440781e62236196f5de0.png

9fb8387fc3574384a84005970348e53e.png

CopperCube ,可视化编辑器类型,使用户可以轻松地创建三维场景。它提供了多种内置工具和特性,包括场景编辑器、物理模拟、碰撞检测、动画编辑器等,使开发人员可以在不编写任何代码的情况下创建复杂的三维应用程序。可以使用JavaScript语言来自定义应用程序的行为和交互。它还支持导入和使用3D模型、贴图和音频文件,以及创建动画效果和粒子效果。

c30491e3e85c4195aac6b9e4fc6d2994.png

a5bf9e5617004086a3cc41c099dc4875.png

​​​​​​A-frame ,用于构建虚拟现实(VR)和增强现实(AR)体验的Web开发框架。使用简单的HTML标签来创建三维图形和交互元素。它提供了一组易于使用的组件和实体,包括摄像机、光源、几何体、材质等,用于构建虚拟世界中的对象和场景。简单易用的API和强大的可扩展性。开发者可以使用JavaScript编写自定义组件,实现更复杂的交互行为和特效。同时,A-Frame也与其他Web技术无缝集成,可以与CSS、HTML、JavaScript和Web API进行交互。

d0216147934c4c6cb6c342425d885d2b.png

使用Babylon.js小试牛刀

Babylon.js inspector 检查器是一个可视化调试工具,旨在帮助您确定场景中可能存在的问题。

提供多种工具,如:

场景的层次视图

使用多个特性栅格可以动态更改对象特性

特定的辅助对象,如骨架查看器等

 

<code><!DOCTYPE html>

<html lang="en">code>

<head>

<meta charset="UTF-8">code>

<meta name="viewport" content="width=device-width, initial-scale=1.0">code>

<meta http-equiv="X-UA-Compatible" content="ie=edge">code>

<title>Babylon.js 基础</title>

<style>

html,

body {

overflow: hidden;

width: 100%;

height: 100%;

margin: 0;

padding: 0;

}

#renderCanvas {

width: 100%;

height: 100%;

touch-action: none;

}

</style>

<!--https://doc.cnbabylon.com/3-0-how-to-get-babylon-js/-->

<!--基础Babylonjs包-->

<script src="https://cdn.cnbabylon.com/babylon.js"></script>code>

<!--用于生成材质-->

<script src="https://cdn.cnbabylon.com/materialsLibrary/babylonjs.materials.min.js"></script>code>

<!--用于加载素材-->

<script src="https://cdn.cnbabylon.com/loaders/babylonjs.loaders.min.js"></script>code>

<script src="https://cdn.cnbabylon.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>code>

<script src="https://cdn.cnbabylon.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>code>

<script src="https://cdn.cnbabylon.com/serializers/babylonjs.serializers.min.js"></script>code>

<!--GUI 用户交互页面-->

<script src="https://cdn.cnbabylon.com/gui/babylon.gui.min.js"></script>code>

<script src="https://cdn.babylonjs.com/Oimo.js"></script>code>

</head>

<body>

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

<script>

let sphere = null;

let box = null;

let ground = null;

const Assets = {

materials: {

checkerboard_basecolor: {

path: "https://assets.babylonjs.com/materials/checkerboard/checkerboard_basecolor.png",

rootUrl: "https://assets.babylonjs.com/materials/checkerboard/",

filename: "checkerboard_basecolor.png"

},

checkerboard_metallicRoughness: {

path: "https://assets.babylonjs.com/materials/checkerboard/checkerboard_metallicRoughness.png",

rootUrl: "https://assets.babylonjs.com/materials/checkerboard/",

filename: "checkerboard_metallicRoughness.png"

},

checkerboard_normal: {

path: "https://assets.babylonjs.com/materials/checkerboard/checkerboard_normal.png",

rootUrl: "https://assets.babylonjs.com/materials/checkerboard/",

filename: "checkerboard_normal.png"

}

},

meshes: {

aerobatic_plane: {

path: "https://assets.babylonjs.com/meshes/aerobatic_plane.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "aerobatic_plane.glb"

},

alien: {

path: "https://assets.babylonjs.com/meshes/alien.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "alien.glb"

},

Alien: {

path: "https://assets.babylonjs.com/meshes/Alien/Alien.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Alien/",

filename: "Alien.gltf"

},

AlphaBlendModeTest: {

path: "https://assets.babylonjs.com/meshes/AlphaBlendModeTest.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "AlphaBlendModeTest.glb"

},

AttenuationTest: {

path: "https://assets.babylonjs.com/meshes/AttenuationTest/AttenuationTest.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/AttenuationTest/",

filename: "AttenuationTest.gltf"

},

babylonBuoy: {

path: "https://assets.babylonjs.com/meshes/babylonBuoy.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "babylonBuoy.glb"

},

babylonJS_logo_v3: {

path: "https://assets.babylonjs.com/meshes/BabylonJS-logo/v3/babylonJS_logo_v3.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/BabylonJS-logo/v3/",

filename: "babylonJS_logo_v3.babylon"

},

Babylogo: {

path: "https://assets.babylonjs.com/meshes/BabylonJS-logo/v1-2/Babylogo.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/BabylonJS-logo/v1-2/",

filename: "Babylogo.babylon"

},

babylonJS_logo_solid_v3: {

path: "https://assets.babylonjs.com/meshes/BabylonJS-logo/v3/babylonJS_logo_solid_v3.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/BabylonJS-logo/v3/",

filename: "babylonJS_logo_solid_v3.babylon"

},

ballMesh: {

path: "https://assets.babylonjs.com/meshes/ballMesh.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "ballMesh.glb"

},

blackPearl: {

path: "https://assets.babylonjs.com/meshes/blackPearl.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "blackPearl.glb"

},

boombox: {

path: "https://assets.babylonjs.com/meshes/boombox.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "boombox.glb"

},

BoomBox: {

path: "https://assets.babylonjs.com/meshes/BoomBox/BoomBox.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/BoomBox/",

filename: "BoomBox.gltf"

},

UnlitBoomBox: {

path: "https://assets.babylonjs.com/meshes/BoomBox/UnlitBoomBox.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/BoomBox/",

filename: "UnlitBoomBox.gltf"

},

both_houses_scene: {

path: "https://assets.babylonjs.com/meshes/both_houses_scene.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "both_houses_scene.glb"

},

box: {

path: "https://assets.babylonjs.com/meshes/box.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "box.glb"

},

Box_extras: {

path: "https://assets.babylonjs.com/meshes/Box/Box_extras.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Box/",

filename: "Box_extras.gltf"

},

Box: {

path: "https://assets.babylonjs.com/meshes/Box/Box.obj",

rootUrl: "https://assets.babylonjs.com/meshes/Box/",

filename: "Box.obj"

},

BrainStem: {

path: "https://assets.babylonjs.com/meshes/BrainStem/BrainStem.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/BrainStem/",

filename: "BrainStem.gltf"

},

Buggy: {

path: "https://assets.babylonjs.com/meshes/Buggy/glTF/Buggy.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Buggy/glTF/",

filename: "Buggy.gltf"

},

candle: {

path: "https://assets.babylonjs.com/meshes/candle.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "candle.babylon"

},

car: {

path: "https://assets.babylonjs.com/meshes/car.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "car.glb"

},

CarbonFiberWheel: {

path: "https://assets.babylonjs.com/meshes/CarbonFiberWheel.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "CarbonFiberWheel.glb"

},

Chair: {

path: "https://assets.babylonjs.com/meshes/Chair/Chair.obj",

rootUrl: "https://assets.babylonjs.com/meshes/Chair/",

filename: "Chair.obj"

},

Channel9: {

path: "https://assets.babylonjs.com/meshes/Channel9/Channel9.stl",

rootUrl: "https://assets.babylonjs.com/meshes/Channel9/",

filename: "Channel9.stl"

},

substanceShaderBall: {

path: "https://assets.babylonjs.com/meshes/ClearCoatShaderBall/substanceShaderBall.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/ClearCoatShaderBall/",

filename: "substanceShaderBall.gltf"

},

ClearCoatTest: {

path: "https://assets.babylonjs.com/meshes/ClearCoatTest/ClearCoatTest.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/ClearCoatTest/",

filename: "ClearCoatTest.gltf"

},

cloth_meshV1: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV1.glb"

},

cloth_meshV2: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV2.glb"

},

cloth_meshV3: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV3.glb"

},

cloth_meshV4: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV4.glb"

},

cloth_meshV5: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV5.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV5.glb"

},

cloth_meshV6: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV6.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV6.glb"

},

cloth_meshV7: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV7.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV7.glb"

},

cloth_meshV8: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV8.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV8.glb"

},

cloth_meshV9: {

path: "https://assets.babylonjs.com/meshes/cloth/cloth_meshV9.glb",

rootUrl: "https://assets.babylonjs.com/meshes/cloth/",

filename: "cloth_meshV9.glb"

},

clothFolds: {

path: "https://assets.babylonjs.com/meshes/clothFolds.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "clothFolds.glb"

},

generic: {

path: "https://assets.babylonjs.com/meshes/controllers/generic/generic.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/controllers/generic/",

filename: "generic.babylon"

},

left: {

path: "https://assets.babylonjs.com/meshes/controllers/oculusQuest/left.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/controllers/oculusQuest/",

filename: "left.babylon"

},

right: {

path: "https://assets.babylonjs.com/meshes/controllers/oculusQuest/right.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/controllers/oculusQuest/",

filename: "right.babylon"

},

wand: {

path: "https://assets.babylonjs.com/meshes/controllers/vive/wand.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/controllers/vive/",

filename: "wand.babylon"

},

cornellBox: {

path: "https://assets.babylonjs.com/meshes/CornellBox/cornellBox.glb",

rootUrl: "https://assets.babylonjs.com/meshes/CornellBox/",

filename: "cornellBox.glb"

},

D20_Animation: {

path: "https://assets.babylonjs.com/meshes/D20_Animation.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "D20_Animation.glb"

},

anisotropyMesh: {

path: "https://assets.babylonjs.com/meshes/Demos/anisotropy/anisotropyMesh.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/anisotropy/",

filename: "anisotropyMesh.glb"

},

morphLoader: {

path: "https://assets.babylonjs.com/meshes/Demos/mograph/morphLoader.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/mograph/",

filename: "morphLoader.glb"

},

lightFixture: {

path: "https://assets.babylonjs.com/meshes/Demos/nmeGlow/lightFixture.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/nmeGlow/",

filename: "lightFixture.glb"

},

riggedMesh: {

path: "https://assets.babylonjs.com/meshes/Demos/retargeting/riggedMesh.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/retargeting/",

filename: "riggedMesh.glb"

},

lightPaddle: {

path: "https://assets.babylonjs.com/meshes/Demos/saber/lightPaddle.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/saber/",

filename: "lightPaddle.glb"

},

BabylonShaderBall_Simple: {

path: "https://assets.babylonjs.com/meshes/shaderBall/BabylonShaderBall_Simple.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/shaderBall/",

filename: "BabylonShaderBall_Simple.gltf"

},

sign: {

path: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/sign.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/",

filename: "sign.glb"

},

snowBall: {

path: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/snowBall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/",

filename: "snowBall.glb"

},

snowField: {

path: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/snowField.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/",

filename: "snowField.glb"

},

snowMan: {

path: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/snowMan.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/Snow_Man_Scene/",

filename: "snowMan.glb"

},

marineGround: {

path: "https://assets.babylonjs.com/meshes/Demos/underWaterReflections/marineGround.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/underWaterReflections/",

filename: "marineGround.glb"

},

runeSword: {

path: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/runeSword.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/",

filename: "runeSword.glb"

},

greySnapper_vertColor: {

path: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/fish/greySnapper_vertColor.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/fish/",

filename: "greySnapper_vertColor.glb"

},

underwaterGround: {

path: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/ground/underwaterGround.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/ground/",

filename: "underwaterGround.glb"

},

underwaterSceneNavMesh: {

path: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/navMesh/underwaterSceneNavMesh.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/navMesh/",

filename: "underwaterSceneNavMesh.glb"

},

underwaterSceneShadowCatcher: {

path: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/shadows/underwaterSceneShadowCatcher.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/shadows/",

filename: "underwaterSceneShadowCatcher.glb"

},

underwaterScene: {

path: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/underwaterScene.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/",

filename: "underwaterScene.glb"

},

underwaterSceneRocksBarnaclesMussels: {

path: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/underwaterSceneRocksBarnaclesMussels.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/UnderWaterScene/",

filename: "underwaterSceneRocksBarnaclesMussels.glb"

},

frostAxe_noMorph: {

path: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/frostAxe_noMorph.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/",

filename: "frostAxe_noMorph.glb"

},

frostAxe: {

path: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/frostAxe.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/",

filename: "frostAxe.glb"

},

gemOnly: {

path: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/gemOnly.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/",

filename: "gemOnly.glb"

},

moltenDagger: {

path: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/moltenDagger.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/",

filename: "moltenDagger.glb"

},

sword_noMat: {

path: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/sword_noMat.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/weaponsDemo/meshes/",

filename: "sword_noMat.glb"

},

dude: {

path: "https://assets.babylonjs.com/meshes/Dude/dude.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/Dude/",

filename: "dude.babylon"

},

dummy2: {

path: "https://assets.babylonjs.com/meshes/dummy2.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "dummy2.babylon"

},

dummy3: {

path: "https://assets.babylonjs.com/meshes/dummy3.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "dummy3.babylon"

},

Elf_allAnimations: {

path: "https://assets.babylonjs.com/meshes/Elf/Elf_allAnimations.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Elf/",

filename: "Elf_allAnimations.gltf"

},

Elf_die: {

path: "https://assets.babylonjs.com/meshes/Elf/Elf_die.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Elf/",

filename: "Elf_die.gltf"

},

Elf_run: {

path: "https://assets.babylonjs.com/meshes/Elf/Elf_run.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Elf/",

filename: "Elf_run.gltf"

},

Elf: {

path: "https://assets.babylonjs.com/meshes/Elf/Elf.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Elf/",

filename: "Elf.gltf"

},

emoji_heart: {

path: "https://assets.babylonjs.com/meshes/emoji_heart.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "emoji_heart.glb"

},

ExplodingBarrel: {

path: "https://assets.babylonjs.com/meshes/ExplodingBarrel.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "ExplodingBarrel.glb"

},

fish: {

path: "https://assets.babylonjs.com/meshes/fish.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "fish.glb"

},

flightHelmet: {

path: "https://assets.babylonjs.com/meshes/flightHelmet.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "flightHelmet.glb"

},

FlightHelmet: {

path: "https://assets.babylonjs.com/meshes/FlightHelmetKTX/FlightHelmet.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/FlightHelmetKTX/",

filename: "FlightHelmet.gltf"

},

dragon: {

path: "https://assets.babylonjs.com/meshes/Georgia-Tech-Dragon/dragon.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Georgia-Tech-Dragon/",

filename: "dragon.glb"

},

dragonUV: {

path: "https://assets.babylonjs.com/meshes/Georgia-Tech-Dragon/dragonUV.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Georgia-Tech-Dragon/",

filename: "dragonUV.glb"

},

GoldbergScene: {

path: "https://assets.babylonjs.com/meshes/GoldbergScene.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "GoldbergScene.babylon"

},

goldbergTest: {

path: "https://assets.babylonjs.com/meshes/goldbergTest.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "goldbergTest.babylon"

},

l_hand_lhs: {

path: "https://assets.babylonjs.com/meshes/HandMeshes/l_hand_lhs.glb",

rootUrl: "https://assets.babylonjs.com/meshes/HandMeshes/",

filename: "l_hand_lhs.glb"

},

l_hand_rhs: {

path: "https://assets.babylonjs.com/meshes/HandMeshes/l_hand_rhs.glb",

rootUrl: "https://assets.babylonjs.com/meshes/HandMeshes/",

filename: "l_hand_rhs.glb"

},

r_hand_lhs: {

path: "https://assets.babylonjs.com/meshes/HandMeshes/r_hand_lhs.glb",

rootUrl: "https://assets.babylonjs.com/meshes/HandMeshes/",

filename: "r_hand_lhs.glb"

},

r_hand_rhs: {

path: "https://assets.babylonjs.com/meshes/HandMeshes/r_hand_rhs.glb",

rootUrl: "https://assets.babylonjs.com/meshes/HandMeshes/",

filename: "r_hand_rhs.glb"

},

haunted_house: {

path: "https://assets.babylonjs.com/meshes/haunted_house.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "haunted_house.glb"

},

studio: {

path: "https://assets.babylonjs.com/meshes/hdri/studioLighting/blender/blenderStudio/studio.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/hdri/studioLighting/blender/blenderStudio/",

filename: "studio.gltf"

},

hexTile: {

path: "https://assets.babylonjs.com/meshes/hexTile.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "hexTile.glb"

},

holiday2021: {

path: "https://assets.babylonjs.com/meshes/holiday2021.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "holiday2021.glb"

},

house_scene: {

path: "https://assets.babylonjs.com/meshes/house_scene.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "house_scene.glb"

},

HVGirl: {

path: "https://assets.babylonjs.com/meshes/HVGirl.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "HVGirl.glb"

},

KHR_materials_volume_testing: {

path: "https://assets.babylonjs.com/meshes/KHR_materials_volume_testing.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "KHR_materials_volume_testing.glb"

},

lamp: {

path: "https://assets.babylonjs.com/meshes/lamp.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "lamp.babylon"

},

head: {

path: "https://assets.babylonjs.com/meshes/Lee-Perry-Smith-Head/head.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Lee-Perry-Smith-Head/",

filename: "head.glb"

},

LevelOfDetail: {

path: "https://assets.babylonjs.com/meshes/Tests/LevelOfDetail/LevelOfDetail.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/LevelOfDetail/",

filename: "LevelOfDetail.gltf"

},

marble: {

path: "https://assets.babylonjs.com/meshes/Marble/marble/marble.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Marble/marble/",

filename: "marble.gltf"

},

marbleTower: {

path: "https://assets.babylonjs.com/meshes/Marble/marbleTower/marbleTower.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Marble/marbleTower/",

filename: "marbleTower.gltf"

},

miniBar2: {

path: "https://assets.babylonjs.com/meshes/miniBar2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "miniBar2.glb"

},

morphTargetBars: {

path: "https://assets.babylonjs.com/meshes/morphTargetBars.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "morphTargetBars.glb"

},

bars: {

path: "https://assets.babylonjs.com/meshes/morphTargetDemo/bars.glb",

rootUrl: "https://assets.babylonjs.com/meshes/morphTargetDemo/",

filename: "bars.glb"

},

"mrtk-fluent-backplate": {

path: "https://assets.babylonjs.com/meshes/MRTK/mrtk-fluent-backplate.glb",

rootUrl: "https://assets.babylonjs.com/meshes/MRTK/",

filename: "mrtk-fluent-backplate.glb"

},

"mrtk-fluent-button": {

path: "https://assets.babylonjs.com/meshes/MRTK/mrtk-fluent-button.glb",

rootUrl: "https://assets.babylonjs.com/meshes/MRTK/",

filename: "mrtk-fluent-button.glb"

},

octopus_customRig: {

path: "https://assets.babylonjs.com/meshes/octopus_customRig.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "octopus_customRig.glb"

},

PBR_Spheres: {

path: "https://assets.babylonjs.com/meshes/PBR_Spheres.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "PBR_Spheres.glb"

},

pill: {

path: "https://assets.babylonjs.com/meshes/pill.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "pill.glb"

},

cannon: {

path: "https://assets.babylonjs.com/meshes/pirateFort/cannon.glb",

rootUrl: "https://assets.babylonjs.com/meshes/pirateFort/",

filename: "cannon.glb"

},

pirateFort: {

path: "https://assets.babylonjs.com/meshes/pirateFort/pirateFort.glb",

rootUrl: "https://assets.babylonjs.com/meshes/pirateFort/",

filename: "pirateFort.glb"

},

powerplant: {

path: "https://assets.babylonjs.com/meshes/PowerPlant/powerplant.obj",

rootUrl: "https://assets.babylonjs.com/meshes/PowerPlant/",

filename: "powerplant.obj"

},

pumpkinBucketCarved: {

path: "https://assets.babylonjs.com/meshes/pumpkinBucketCarved.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "pumpkinBucketCarved.glb"

},

Rabbit: {

path: "https://assets.babylonjs.com/meshes/Rabbit.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "Rabbit.babylon"

},

roundedCube: {

path: "https://assets.babylonjs.com/meshes/roundedCube.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "roundedCube.glb"

},

roundedCylinder: {

path: "https://assets.babylonjs.com/meshes/roundedCylinder.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "roundedCylinder.glb"

},

seagulf: {

path: "https://assets.babylonjs.com/meshes/seagulf.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "seagulf.glb"

},

shaderBall: {

path: "https://assets.babylonjs.com/meshes/shaderBall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "shaderBall.glb"

},

shark: {

path: "https://assets.babylonjs.com/meshes/shark.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "shark.glb"

},

Cloth: {

path: "https://assets.babylonjs.com/meshes/Sheen/Cloth.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Sheen/",

filename: "Cloth.gltf"

},

SheenChair: {

path: "https://assets.babylonjs.com/meshes/SheenChair.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "SheenChair.glb"

},

SheenCloth: {

path: "https://assets.babylonjs.com/meshes/SheenCloth/SheenCloth.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/SheenCloth/",

filename: "SheenCloth.gltf"

},

shoe_variants: {

path: "https://assets.babylonjs.com/meshes/shoe_variants.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "shoe_variants.glb"

},

skull: {

path: "https://assets.babylonjs.com/meshes/Skull/skull.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/Skull/",

filename: "skull.babylon"

},

solar_system: {

path: "https://assets.babylonjs.com/meshes/solar_system.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "solar_system.glb"

},

SpecularTest: {

path: "https://assets.babylonjs.com/meshes/SpecularTest/SpecularTest.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/SpecularTest/",

filename: "SpecularTest.gltf"

},

SSAOcat: {

path: "https://assets.babylonjs.com/meshes/SSAOcat.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "SSAOcat.babylon"

},

StanfordBunny: {

path: "https://assets.babylonjs.com/meshes/StanfordBunny.obj",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "StanfordBunny.obj"

},

stud: {

path: "https://assets.babylonjs.com/meshes/stud.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "stud.glb"

},

target: {

path: "https://assets.babylonjs.com/meshes/target.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "target.glb"

},

TeapotsGalore: {

path: "https://assets.babylonjs.com/meshes/TeapotsGalore/TeapotsGalore.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/TeapotsGalore/",

filename: "TeapotsGalore.gltf"

},

Animation_Node_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/Animation_Node_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/",

filename: "Animation_Node_00.gltf"

},

Animation_Node_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/Animation_Node_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/",

filename: "Animation_Node_01.gltf"

},

Animation_Node_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/Animation_Node_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/",

filename: "Animation_Node_02.gltf"

},

Animation_Node_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/Animation_Node_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/",

filename: "Animation_Node_03.gltf"

},

Animation_Node_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/Animation_Node_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/",

filename: "Animation_Node_04.gltf"

},

Animation_Node_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/Animation_Node_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Node/",

filename: "Animation_Node_05.gltf"

},

Animation_NodeMisc_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_00.gltf"

},

Animation_NodeMisc_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_01.gltf"

},

Animation_NodeMisc_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_02.gltf"

},

Animation_NodeMisc_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_03.gltf"

},

Animation_NodeMisc_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_04.gltf"

},

Animation_NodeMisc_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_05.gltf"

},

Animation_NodeMisc_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_06.gltf"

},

Animation_NodeMisc_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/Animation_NodeMisc_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_NodeMisc/",

filename: "Animation_NodeMisc_07.gltf"

},

Animation_Skin_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_00.gltf"

},

Animation_Skin_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_01.gltf"

},

Animation_Skin_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_02.gltf"

},

Animation_Skin_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_03.gltf"

},

Animation_Skin_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_04.gltf"

},

Animation_Skin_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_05.gltf"

},

Animation_Skin_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_06.gltf"

},

Animation_Skin_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_07.gltf"

},

Animation_Skin_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_08.gltf"

},

Animation_Skin_09: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_09.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_09.gltf"

},

Animation_Skin_10: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_10.gltf"

},

Animation_Skin_11: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/Animation_Skin_11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_Skin/",

filename: "Animation_Skin_11.gltf"

},

Animation_SkinType_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/Animation_SkinType_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/",

filename: "Animation_SkinType_00.gltf"

},

Animation_SkinType_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/Animation_SkinType_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/",

filename: "Animation_SkinType_01.gltf"

},

Animation_SkinType_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/Animation_SkinType_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/",

filename: "Animation_SkinType_02.gltf"

},

Animation_SkinType_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/Animation_SkinType_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Animation_SkinType/",

filename: "Animation_SkinType_03.gltf"

},

Buffer_Interleaved_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/Buffer_Interleaved_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/",

filename: "Buffer_Interleaved_00.gltf"

},

Buffer_Interleaved_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/Buffer_Interleaved_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/",

filename: "Buffer_Interleaved_01.gltf"

},

Buffer_Interleaved_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/Buffer_Interleaved_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/",

filename: "Buffer_Interleaved_02.gltf"

},

Buffer_Interleaved_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/Buffer_Interleaved_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/",

filename: "Buffer_Interleaved_03.gltf"

},

Buffer_Interleaved_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/Buffer_Interleaved_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Buffer_Interleaved/",

filename: "Buffer_Interleaved_04.gltf"

},

Compatibility_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/Compatibility_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/",

filename: "Compatibility_00.gltf"

},

Compatibility_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/Compatibility_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/",

filename: "Compatibility_01.gltf"

},

Compatibility_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/Compatibility_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/",

filename: "Compatibility_02.gltf"

},

Compatibility_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/Compatibility_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/",

filename: "Compatibility_03.gltf"

},

Compatibility_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/Compatibility_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/",

filename: "Compatibility_04.gltf"

},

Compatibility_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/Compatibility_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Compatibility/",

filename: "Compatibility_05.gltf"

},

Material_AlphaBlend_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_00.gltf"

},

Material_AlphaBlend_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_01.gltf"

},

Material_AlphaBlend_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_02.gltf"

},

Material_AlphaBlend_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_03.gltf"

},

Material_AlphaBlend_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_04.gltf"

},

Material_AlphaBlend_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_05.gltf"

},

Material_AlphaBlend_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/Material_AlphaBlend_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaBlend/",

filename: "Material_AlphaBlend_06.gltf"

},

Material_AlphaMask_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_00.gltf"

},

Material_AlphaMask_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_01.gltf"

},

Material_AlphaMask_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_02.gltf"

},

Material_AlphaMask_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_03.gltf"

},

Material_AlphaMask_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_04.gltf"

},

Material_AlphaMask_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_05.gltf"

},

Material_AlphaMask_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/Material_AlphaMask_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_AlphaMask/",

filename: "Material_AlphaMask_06.gltf"

},

Material_DoubleSided_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/Material_DoubleSided_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/",

filename: "Material_DoubleSided_00.gltf"

},

Material_DoubleSided_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/Material_DoubleSided_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/",

filename: "Material_DoubleSided_01.gltf"

},

Material_DoubleSided_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/Material_DoubleSided_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/",

filename: "Material_DoubleSided_02.gltf"

},

Material_DoubleSided_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/Material_DoubleSided_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_DoubleSided/",

filename: "Material_DoubleSided_03.gltf"

},

Material_MetallicRoughness_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_00.gltf"

},

Material_MetallicRoughness_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_01.gltf"

},

Material_MetallicRoughness_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_02.gltf"

},

Material_MetallicRoughness_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_03.gltf"

},

Material_MetallicRoughness_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_04.gltf"

},

Material_MetallicRoughness_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_05.gltf"

},

Material_MetallicRoughness_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_06.gltf"

},

Material_MetallicRoughness_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_07.gltf"

},

Material_MetallicRoughness_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_08.gltf"

},

Material_MetallicRoughness_09: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_09.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_09.gltf"

},

Material_MetallicRoughness_10: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_10.gltf"

},

Material_MetallicRoughness_11: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/Material_MetallicRoughness_11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_MetallicRoughness/",

filename: "Material_MetallicRoughness_11.gltf"

},

Material_Mixed_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_Mixed/Material_Mixed_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_Mixed/",

filename: "Material_Mixed_00.gltf"

},

Material_Mixed_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_Mixed/Material_Mixed_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_Mixed/",

filename: "Material_Mixed_01.gltf"

},

Material_Mixed_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_Mixed/Material_Mixed_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_Mixed/",

filename: "Material_Mixed_02.gltf"

},

Material_SpecularGlossiness_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_00.gltf"

},

Material_SpecularGlossiness_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_01.gltf"

},

Material_SpecularGlossiness_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_02.gltf"

},

Material_SpecularGlossiness_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_03.gltf"

},

Material_SpecularGlossiness_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_04.gltf"

},

Material_SpecularGlossiness_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_05.gltf"

},

Material_SpecularGlossiness_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_06.gltf"

},

Material_SpecularGlossiness_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_07.gltf"

},

Material_SpecularGlossiness_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_08.gltf"

},

Material_SpecularGlossiness_09: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_09.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_09.gltf"

},

Material_SpecularGlossiness_10: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_10.gltf"

},

Material_SpecularGlossiness_11: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_11.gltf"

},

Material_SpecularGlossiness_12: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_12.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_12.gltf"

},

Material_SpecularGlossiness_13: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/Material_SpecularGlossiness_13.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material_SpecularGlossiness/",

filename: "Material_SpecularGlossiness_13.gltf"

},

Material_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_00.gltf"

},

Material_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_01.gltf"

},

Material_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_02.gltf"

},

Material_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_03.gltf"

},

Material_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_04.gltf"

},

Material_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_05.gltf"

},

Material_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_06.gltf"

},

Material_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/Material_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Material/",

filename: "Material_07.gltf"

},

Mesh_PrimitiveAttribute_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_00.gltf"

},

Mesh_PrimitiveAttribute_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_01.gltf"

},

Mesh_PrimitiveAttribute_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_02.gltf"

},

Mesh_PrimitiveAttribute_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_03.gltf"

},

Mesh_PrimitiveAttribute_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_04.gltf"

},

Mesh_PrimitiveAttribute_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_05.gltf"

},

Mesh_PrimitiveAttribute_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/Mesh_PrimitiveAttribute_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveAttribute/",

filename: "Mesh_PrimitiveAttribute_06.gltf"

},

Mesh_PrimitiveMode_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_00.gltf"

},

Mesh_PrimitiveMode_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_01.gltf"

},

Mesh_PrimitiveMode_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_02.gltf"

},

Mesh_PrimitiveMode_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_03.gltf"

},

Mesh_PrimitiveMode_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_04.gltf"

},

Mesh_PrimitiveMode_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_05.gltf"

},

Mesh_PrimitiveMode_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_06.gltf"

},

Mesh_PrimitiveMode_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_07.gltf"

},

Mesh_PrimitiveMode_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_08.gltf"

},

Mesh_PrimitiveMode_09: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_09.gltf"

},

Mesh_PrimitiveMode_10: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_10.gltf"

},

Mesh_PrimitiveMode_11: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_11.gltf"

},

Mesh_PrimitiveMode_12: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_12.gltf"

},

Mesh_PrimitiveMode_13: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_13.gltf"

},

Mesh_PrimitiveMode_14: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_14.gltf"

},

Mesh_PrimitiveMode_15: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveMode/",

filename: "Mesh_PrimitiveMode_15.gltf"

},

Mesh_Primitives_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_Primitives/Mesh_Primitives_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_Primitives/",

filename: "Mesh_Primitives_00.gltf"

},

Mesh_PrimitivesUV_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_00.gltf"

},

Mesh_PrimitivesUV_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_01.gltf"

},

Mesh_PrimitivesUV_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_02.gltf"

},

Mesh_PrimitivesUV_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_03.gltf"

},

Mesh_PrimitivesUV_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_04.gltf"

},

Mesh_PrimitivesUV_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_05.gltf"

},

Mesh_PrimitivesUV_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_06.gltf"

},

Mesh_PrimitivesUV_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_07.gltf"

},

Mesh_PrimitivesUV_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/Mesh_PrimitivesUV_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitivesUV/",

filename: "Mesh_PrimitivesUV_08.gltf"

},

Mesh_PrimitiveVertexColor_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/Mesh_PrimitiveVertexColor_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/",

filename: "Mesh_PrimitiveVertexColor_00.gltf"

},

Mesh_PrimitiveVertexColor_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/Mesh_PrimitiveVertexColor_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/",

filename: "Mesh_PrimitiveVertexColor_01.gltf"

},

Mesh_PrimitiveVertexColor_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/Mesh_PrimitiveVertexColor_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/",

filename: "Mesh_PrimitiveVertexColor_02.gltf"

},

Mesh_PrimitiveVertexColor_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/Mesh_PrimitiveVertexColor_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/",

filename: "Mesh_PrimitiveVertexColor_03.gltf"

},

Mesh_PrimitiveVertexColor_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/Mesh_PrimitiveVertexColor_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/",

filename: "Mesh_PrimitiveVertexColor_04.gltf"

},

Mesh_PrimitiveVertexColor_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/Mesh_PrimitiveVertexColor_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Mesh_PrimitiveVertexColor/",

filename: "Mesh_PrimitiveVertexColor_05.gltf"

},

Node_Attribute_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_00.gltf"

},

Node_Attribute_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_01.gltf"

},

Node_Attribute_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_02.gltf"

},

Node_Attribute_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_03.gltf"

},

Node_Attribute_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_04.gltf"

},

Node_Attribute_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_05.gltf"

},

Node_Attribute_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_06.gltf"

},

Node_Attribute_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_07.gltf"

},

Node_Attribute_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/Node_Attribute_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_Attribute/",

filename: "Node_Attribute_08.gltf"

},

Node_NegativeScale_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_00.gltf"

},

Node_NegativeScale_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_01.gltf"

},

Node_NegativeScale_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_02.gltf"

},

Node_NegativeScale_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_03.gltf"

},

Node_NegativeScale_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_04.gltf"

},

Node_NegativeScale_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_05.gltf"

},

Node_NegativeScale_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_06.gltf"

},

Node_NegativeScale_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_07.gltf"

},

Node_NegativeScale_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_08.gltf"

},

Node_NegativeScale_09: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_09.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_09.gltf"

},

Node_NegativeScale_10: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_10.gltf"

},

Node_NegativeScale_11: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_11.gltf"

},

Node_NegativeScale_12: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/Node_NegativeScale_12.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Node_NegativeScale/",

filename: "Node_NegativeScale_12.gltf"

},

Texture_Sampler_00: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_00.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_00.gltf"

},

Texture_Sampler_01: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_01.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_01.gltf"

},

Texture_Sampler_02: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_02.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_02.gltf"

},

Texture_Sampler_03: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_03.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_03.gltf"

},

Texture_Sampler_04: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_04.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_04.gltf"

},

Texture_Sampler_05: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_05.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_05.gltf"

},

Texture_Sampler_06: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_06.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_06.gltf"

},

Texture_Sampler_07: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_07.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_07.gltf"

},

Texture_Sampler_08: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_08.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_08.gltf"

},

Texture_Sampler_09: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_09.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_09.gltf"

},

Texture_Sampler_10: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_10.gltf"

},

Texture_Sampler_11: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_11.gltf"

},

Texture_Sampler_12: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_12.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_12.gltf"

},

Texture_Sampler_13: {

path: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/Texture_Sampler_13.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/AssetGenerator/0.6/Texture_Sampler/",

filename: "Texture_Sampler_13.gltf"

},

Test: {

path: "https://assets.babylonjs.com/meshes/Tests/CompileMaterials/Test.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/CompileMaterials/",

filename: "Test.gltf"

},

LevelOfDetailNoTextures: {

path: "https://assets.babylonjs.com/meshes/Tests/LevelOfDetail/LevelOfDetailNoTextures.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/LevelOfDetail/",

filename: "LevelOfDetailNoTextures.gltf"

},

MultiPrimitive: {

path: "https://assets.babylonjs.com/meshes/Tests/MultiPrimitive/MultiPrimitive.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/MultiPrimitive/",

filename: "MultiPrimitive.gltf"

},

TextureTransformTest: {

path: "https://assets.babylonjs.com/meshes/Tests/TextureTransform/TextureTransformTest.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/TextureTransform/",

filename: "TextureTransformTest.gltf"

},

TwoQuads: {

path: "https://assets.babylonjs.com/meshes/Tests/TwoQuads/TwoQuads.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/TwoQuads/",

filename: "TwoQuads.gltf"

},

TextureLinearInterpolationTest: {

path: "https://assets.babylonjs.com/meshes/TextureLinearInterpolationTest/TextureLinearInterpolationTest.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/TextureLinearInterpolationTest/",

filename: "TextureLinearInterpolationTest.gltf"

},

toast_acrobatics: {

path: "https://assets.babylonjs.com/meshes/toast_acrobatics.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "toast_acrobatics.glb"

},

greenEnergyBall: {

path: "https://assets.babylonjs.com/meshes/TrailMeshSpell/greenEnergyBall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/TrailMeshSpell/",

filename: "greenEnergyBall.glb"

},

pinkEnergyBall: {

path: "https://assets.babylonjs.com/meshes/TrailMeshSpell/pinkEnergyBall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/TrailMeshSpell/",

filename: "pinkEnergyBall.glb"

},

spellDisk: {

path: "https://assets.babylonjs.com/meshes/TrailMeshSpell/spellDisk.glb",

rootUrl: "https://assets.babylonjs.com/meshes/TrailMeshSpell/",

filename: "spellDisk.glb"

},

yellowEnergyBall: {

path: "https://assets.babylonjs.com/meshes/TrailMeshSpell/yellowEnergyBall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/TrailMeshSpell/",

filename: "yellowEnergyBall.glb"

},

rawtrees: {

path: "https://assets.babylonjs.com/meshes/Trees/rawtrees.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/Trees/",

filename: "rawtrees.babylon"

},

ufo: {

path: "https://assets.babylonjs.com/meshes/ufo.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "ufo.glb"

},

valleyvillage: {

path: "https://assets.babylonjs.com/meshes/valleyvillage.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "valleyvillage.glb"

},

village: {

path: "https://assets.babylonjs.com/meshes/village.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "village.glb"

},

vintageFan_animated: {

path: "https://assets.babylonjs.com/meshes/vintageDeskFan/vintageFan_animated.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/vintageDeskFan/",

filename: "vintageFan_animated.gltf"

},

WaterBottle: {

path: "https://assets.babylonjs.com/meshes/waterBottle/WaterBottle.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/waterBottle/",

filename: "WaterBottle.gltf"

},

webp: {

path: "https://assets.babylonjs.com/meshes/webp/webp.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/webp/",

filename: "webp.gltf"

},

Xbot: {

path: "https://assets.babylonjs.com/meshes/Xbot.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "Xbot.glb"

},

Yeti: {

path: "https://assets.babylonjs.com/meshes/Yeti/MayaExport/glTF/Yeti.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Yeti/MayaExport/glTF/",

filename: "Yeti.gltf"

},

YetiUnity: {

path: "https://assets.babylonjs.com/meshes/Yeti/Unity/YetiUnity.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/Yeti/Unity/",

filename: "YetiUnity.gltf"

},

IridescentSphere: {

path: "https://assets.babylonjs.com/meshes/iridescentSphere.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "iridescentSphere.glb"

},

module_600_glb: {

path: "https://assets.babylonjs.com/meshes/module_600.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "module_600.glb"

},

solid_glb: {

path: "https://assets.babylonjs.com/meshes/solid.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "solid.glb"

},

coffin_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/coffin/coffin.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/coffin/",

filename: "coffin.glb"

},

coffin_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/coffin/gltf/coffin.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/coffin/gltf/",

filename: "coffin.gltf"

},

coffinOpen_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/coffinOpen/coffinOpen.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/coffinOpen/",

filename: "coffinOpen.glb"

},

coffinOpen_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/coffinOpen/gltf/coffinOpen.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/coffinOpen/gltf/",

filename: "coffinOpen.gltf"

},

fenceACorner1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner1/fenceACorner1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner1/",

filename: "fenceACorner1.glb"

},

fenceACorner1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner1/gltf/fenceACorner1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner1/gltf/",

filename: "fenceACorner1.gltf"

},

fenceACorner2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner2/fenceACorner2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner2/",

filename: "fenceACorner2.glb"

},

fenceACorner2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner2/gltf/fenceACorner2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner2/gltf/",

filename: "fenceACorner2.gltf"

},

fenceACorner3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner3/fenceACorner3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner3/",

filename: "fenceACorner3.glb"

},

fenceACorner3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner3/gltf/fenceACorner3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner3/gltf/",

filename: "fenceACorner3.gltf"

},

fenceACorner4_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner4/fenceACorner4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner4/",

filename: "fenceACorner4.glb"

},

fenceACorner4_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner4/gltf/fenceACorner4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceACorner4/gltf/",

filename: "fenceACorner4.gltf"

},

fenceAGate_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAGate/fenceAGate.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAGate/",

filename: "fenceAGate.glb"

},

fenceAGate_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAGate/gltf/fenceAGate.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAGate/gltf/",

filename: "fenceAGate.gltf"

},

fenceAPillar1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar1/fenceAPillar1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar1/",

filename: "fenceAPillar1.glb"

},

fenceAPillar1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar1/gltf/fenceAPillar1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar1/gltf/",

filename: "fenceAPillar1.gltf"

},

fenceAPillar2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar2/fenceAPillar2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar2/",

filename: "fenceAPillar2.glb"

},

fenceAPillar2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar2/gltf/fenceAPillar2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar2/gltf/",

filename: "fenceAPillar2.gltf"

},

fenceAPillar3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar3/fenceAPillar3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar3/",

filename: "fenceAPillar3.glb"

},

fenceAPillar3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar3/gltf/fenceAPillar3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar3/gltf/",

filename: "fenceAPillar3.gltf"

},

fenceAPillar4_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar4/fenceAPillar4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar4/",

filename: "fenceAPillar4.glb"

},

fenceAPillar4_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar4/gltf/fenceAPillar4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar4/gltf/",

filename: "fenceAPillar4.gltf"

},

fenceAPillar5_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar5/fenceAPillar5.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar5/",

filename: "fenceAPillar5.glb"

},

fenceAPillar5_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar5/gltf/fenceAPillar5.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar5/gltf/",

filename: "fenceAPillar5.gltf"

},

fenceAPillar6_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar6/fenceAPillar6.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar6/",

filename: "fenceAPillar6.glb"

},

fenceAPillar6_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar6/gltf/fenceAPillar6.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar6/gltf/",

filename: "fenceAPillar6.gltf"

},

fenceAPillar7_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar7/fenceAPillar7.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar7/",

filename: "fenceAPillar7.glb"

},

fenceAPillar7_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar7/gltf/fenceAPillar7.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar7/gltf/",

filename: "fenceAPillar7.gltf"

},

fenceAPillar8_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar8/fenceAPillar8.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar8/",

filename: "fenceAPillar8.glb"

},

fenceAPillar8_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar8/gltf/fenceAPillar8.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceAPillar8/gltf/",

filename: "fenceAPillar8.gltf"

},

fenceASection1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection1/fenceASection1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection1/",

filename: "fenceASection1.glb"

},

fenceASection1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection1/gltf/fenceASection1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection1/gltf/",

filename: "fenceASection1.gltf"

},

fenceASection2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection2/fenceASection2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection2/",

filename: "fenceASection2.glb"

},

fenceASection2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection2/gltf/fenceASection2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection2/gltf/",

filename: "fenceASection2.gltf"

},

fenceASection3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection3/fenceASection3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection3/",

filename: "fenceASection3.glb"

},

fenceASection3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection3/gltf/fenceASection3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection3/gltf/",

filename: "fenceASection3.gltf"

},

fenceASection4_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection4/fenceASection4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection4/",

filename: "fenceASection4.glb"

},

fenceASection4_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection4/gltf/fenceASection4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection4/gltf/",

filename: "fenceASection4.gltf"

},

fenceASection5_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection5/fenceASection5.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection5/",

filename: "fenceASection5.glb"

},

fenceASection5_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection5/gltf/fenceASection5.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceASection5/gltf/",

filename: "fenceASection5.gltf"

},

fenceBCorner1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner1/fenceBCorner1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner1/",

filename: "fenceBCorner1.glb"

},

fenceBCorner1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner1/gltf/fenceBCorner1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner1/gltf/",

filename: "fenceBCorner1.gltf"

},

fenceBCorner2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner2/fenceBCorner2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner2/",

filename: "fenceBCorner2.glb"

},

fenceBCorner2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner2/gltf/fenceBCorner2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner2/gltf/",

filename: "fenceBCorner2.gltf"

},

fenceBCorner3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner3/fenceBCorner3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner3/",

filename: "fenceBCorner3.glb"

},

fenceBCorner3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner3/gltf/fenceBCorner3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBCorner3/gltf/",

filename: "fenceBCorner3.gltf"

},

fenceBPillar1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar1/fenceBPillar1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar1/",

filename: "fenceBPillar1.glb"

},

fenceBPillar1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar1/gltf/fenceBPillar1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar1/gltf/",

filename: "fenceBPillar1.gltf"

},

fenceBPillar2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar2/fenceBPillar2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar2/",

filename: "fenceBPillar2.glb"

},

fenceBPillar2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar2/gltf/fenceBPillar2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar2/gltf/",

filename: "fenceBPillar2.gltf"

},

fenceBPillar3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar3/fenceBPillar3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar3/",

filename: "fenceBPillar3.glb"

},

fenceBPillar3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar3/gltf/fenceBPillar3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar3/gltf/",

filename: "fenceBPillar3.gltf"

},

fenceBPillar4_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar4/fenceBPillar4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar4/",

filename: "fenceBPillar4.glb"

},

fenceBPillar4_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar4/gltf/fenceBPillar4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBPillar4/gltf/",

filename: "fenceBPillar4.gltf"

},

fenceBSection1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection1/fenceBSection1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection1/",

filename: "fenceBSection1.glb"

},

fenceBSection1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection1/gltf/fenceBSection1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection1/gltf/",

filename: "fenceBSection1.gltf"

},

fenceBSection2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection2/fenceBSection2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection2/",

filename: "fenceBSection2.glb"

},

fenceBSection2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection2/gltf/fenceBSection2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection2/gltf/",

filename: "fenceBSection2.gltf"

},

fenceBSection3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection3/fenceBSection3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection3/",

filename: "fenceBSection3.glb"

},

fenceBSection3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection3/gltf/fenceBSection3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection3/gltf/",

filename: "fenceBSection3.gltf"

},

fenceBSection4_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection4/fenceBSection4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection4/",

filename: "fenceBSection4.glb"

},

fenceBSection4_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection4/gltf/fenceBSection4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceBSection4/gltf/",

filename: "fenceBSection4.gltf"

},

fenceC1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1/fenceC1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1/",

filename: "fenceC1.glb"

},

fenceC1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1/gltf/fenceC1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1/gltf/",

filename: "fenceC1.gltf"

},

fenceC1Skewed_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1Skewed/fenceC1Skewed.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1Skewed/",

filename: "fenceC1Skewed.glb"

},

fenceC1Skewed_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1Skewed/gltf/fenceC1Skewed.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC1Skewed/gltf/",

filename: "fenceC1Skewed.gltf"

},

fenceC2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC2/fenceC2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC2/",

filename: "fenceC2.glb"

},

fenceC2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC2/gltf/fenceC2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC2/gltf/",

filename: "fenceC2.gltf"

},

fenceC3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC3/fenceC3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC3/",

filename: "fenceC3.glb"

},

fenceC3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC3/gltf/fenceC3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/fenceC3/gltf/",

filename: "fenceC3.gltf"

},

graveyardScene_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/graveyardScene/gltf/graveyardScene.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/graveyardScene/gltf/",

filename: "graveyardScene.gltf"

},

graveyardScene_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/graveyardScene/graveyardScene.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/graveyardScene/",

filename: "graveyardScene.glb"

},

mausoleumLarge_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLarge/gltf/mausoleumLarge.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLarge/gltf/",

filename: "mausoleumLarge.gltf"

},

mausoleumLarge_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLarge/mausoleumLarge.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLarge/",

filename: "mausoleumLarge.glb"

},

mausoleumLargeSkewed_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLargeSkewed/gltf/mausoleumLargeSkewed.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLargeSkewed/gltf/",

filename: "mausoleumLargeSkewed.gltf"

},

mausoleumLargeSkewed_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLargeSkewed/mausoleumLargeSkewed.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumLargeSkewed/",

filename: "mausoleumLargeSkewed.glb"

},

mausoleumSmall_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmall/gltf/mausoleumSmall.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmall/gltf/",

filename: "mausoleumSmall.gltf"

},

mausoleumSmall_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmall/mausoleumSmall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmall/",

filename: "mausoleumSmall.glb"

},

mausoleumSmallSkewed_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmallSkewed/gltf/mausoleumSmallSkewed.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmallSkewed/gltf/",

filename: "mausoleumSmallSkewed.gltf"

},

mausoleumSmallSkewed_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmallSkewed/mausoleumSmallSkewed.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/mausoleumSmallSkewed/",

filename: "mausoleumSmallSkewed.glb"

},

obelisk1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk1/gltf/obelisk1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk1/gltf/",

filename: "obelisk1.gltf"

},

obelisk1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk1/obelisk1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk1/",

filename: "obelisk1.glb"

},

obelisk2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk2/gltf/obelisk2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk2/gltf/",

filename: "obelisk2.gltf"

},

obelisk2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk2/obelisk2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/obelisk2/",

filename: "obelisk2.glb"

},

sarcophagus_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagus/gltf/sarcophagus.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagus/gltf/",

filename: "sarcophagus.gltf"

},

sarcophagus_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagus/sarcophagus.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagus/",

filename: "sarcophagus.glb"

},

sarcophagusOpen_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagusOpen/gltf/sarcophagusOpen.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagusOpen/gltf/",

filename: "sarcophagusOpen.gltf"

},

sarcophagusOpen_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagusOpen/sarcophagusOpen.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/sarcophagusOpen/",

filename: "sarcophagusOpen.glb"

},

signboard1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/signboard1/gltf/signboard1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/signboard1/gltf/",

filename: "signboard1.gltf"

},

signboard1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/signboard1/signboard1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/signboard1/",

filename: "signboard1.glb"

},

signboard2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/signboard2/gltf/signboard2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/signboard2/gltf/",

filename: "signboard2.gltf"

},

signboard2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/signboard2/signboard2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/signboard2/",

filename: "signboard2.glb"

},

stump1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/stump1/gltf/stump1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/stump1/gltf/",

filename: "stump1.gltf"

},

stump1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/stump1/stump1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/stump1/",

filename: "stump1.glb"

},

stump2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/stump2/gltf/stump2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/stump2/gltf/",

filename: "stump2.gltf"

},

stump2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/stump2/stump2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/stump2/",

filename: "stump2.glb"

},

tombstone1_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1/gltf/tombstone1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1/gltf/",

filename: "tombstone1.gltf"

},

tombstone1_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1/tombstone1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1/",

filename: "tombstone1.glb"

},

tombstone10_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone10/gltf/tombstone10.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone10/gltf/",

filename: "tombstone10.gltf"

},

tombstone10_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone10/tombstone10.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone10/",

filename: "tombstone10.glb"

},

tombstone11_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone11/gltf/tombstone11.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone11/gltf/",

filename: "tombstone11.gltf"

},

tombstone11_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone11/tombstone11.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone11/",

filename: "tombstone11.glb"

},

tombstone1Weathered_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1Weathered/gltf/tombstone1Weathered.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1Weathered/gltf/",

filename: "tombstone1Weathered.gltf"

},

tombstone1Weathered_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1Weathered/tombstone1Weathered.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone1Weathered/",

filename: "tombstone1Weathered.glb"

},

tombstone2_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2/gltf/tombstone2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2/gltf/",

filename: "tombstone2.gltf"

},

tombstone2_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2/tombstone2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2/",

filename: "tombstone2.glb"

},

tombstone2Weathered_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2Weathered/gltf/tombstone2Weathered.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2Weathered/gltf/",

filename: "tombstone2Weathered.gltf"

},

tombstone2Weathered_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2Weathered/tombstone2Weathered.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone2Weathered/",

filename: "tombstone2Weathered.glb"

},

tombstone3_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone3/gltf/tombstone3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone3/gltf/",

filename: "tombstone3.gltf"

},

tombstone3_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone3/tombstone3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone3/",

filename: "tombstone3.glb"

},

tombstone4_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone4/gltf/tombstone4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone4/gltf/",

filename: "tombstone4.gltf"

},

tombstone4_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone4/tombstone4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone4/",

filename: "tombstone4.glb"

},

tombstone5_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5/gltf/tombstone5.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5/gltf/",

filename: "tombstone5.gltf"

},

tombstone5_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5/tombstone5.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5/",

filename: "tombstone5.glb"

},

tombstone5Weathered_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5Weathered/gltf/tombstone5Weathered.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5Weathered/gltf/",

filename: "tombstone5Weathered.gltf"

},

tombstone5Weathered_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5Weathered/tombstone5Weathered.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone5Weathered/",

filename: "tombstone5Weathered.glb"

},

tombstone6_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone6/gltf/tombstone6.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone6/gltf/",

filename: "tombstone6.gltf"

},

tombstone6_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone6/tombstone6.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone6/",

filename: "tombstone6.glb"

},

tombstone7_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone7/gltf/tombstone7.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone7/gltf/",

filename: "tombstone7.gltf"

},

tombstone7_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone7/tombstone7.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone7/",

filename: "tombstone7.glb"

},

tombstone8_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone8/gltf/tombstone8.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone8/gltf/",

filename: "tombstone8.gltf"

},

tombstone8_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone8/tombstone8.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone8/",

filename: "tombstone8.glb"

},

tombstone9_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone9/gltf/tombstone9.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone9/gltf/",

filename: "tombstone9.gltf"

},

tombstone9_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone9/tombstone9.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tombstone9/",

filename: "tombstone9.glb"

},

tree1_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree1/gltf/tree1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree1/gltf/",

filename: "tree1.gltf"

},

tree1_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree1/tree1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree1/",

filename: "tree1.glb"

},

tree2_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree2/gltf/tree2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree2/gltf/",

filename: "tree2.gltf"

},

tree2_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree2/tree2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree2/",

filename: "tree2.glb"

},

tree3_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree3/gltf/tree3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree3/gltf/",

filename: "tree3.gltf"

},

tree3_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree3/tree3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree3/",

filename: "tree3.glb"

},

tree4_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree4/gltf/tree4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree4/gltf/",

filename: "tree4.gltf"

},

tree4_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/tree4/tree4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/tree4/",

filename: "tree4.glb"

},

tree5_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree5/gltf/tree5.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree5/gltf/",

filename: "tree5.gltf"

},

tree5_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree5/tree5.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree5/",

filename: "tree5.glb"

},

tree6_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree6/gltf/tree6.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree6/gltf/",

filename: "tree6.gltf"

},

tree6_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree6/tree6.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree6/",

filename: "tree6.glb"

},

tree7_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree7/gltf/tree7.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree7/gltf/",

filename: "tree7.gltf"

},

tree7_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree7/tree7.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree7/",

filename: "tree7.glb"

},

tree8_gltf: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree8/gltf/tree8.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree8/gltf/",

filename: "tree8.gltf"

},

tree8_glb: {

path: "https://assets.babylonjs.com/meshes/graveYardPack/tree8/tree8.glb",

rootUrl: "https://assets.babylonjs.com/meshes/graveYardPack/tree8/",

filename: "tree8.glb"

},

barrel_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/barrel/barrel.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/barrel/",

filename: "barrel.glb"

},

barrel_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/barrel/gltf/barrel.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/barrel/gltf/",

filename: "barrel.gltf"

},

bush1_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush1/bush1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush1/",

filename: "bush1.glb"

},

bush1_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush1/gltf/bush1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush1/gltf/",

filename: "bush1.gltf"

},

bush2_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush2/bush2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush2/",

filename: "bush2.glb"

},

bush2_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush2/gltf/bush2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush2/gltf/",

filename: "bush2.gltf"

},

bush3_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush3/bush3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush3/",

filename: "bush3.glb"

},

bush3_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush3/gltf/bush3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush3/gltf/",

filename: "bush3.gltf"

},

bush4_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush4/bush4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush4/",

filename: "bush4.glb"

},

bush4_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush4/gltf/bush4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush4/gltf/",

filename: "bush4.gltf"

},

bush5_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush5/bush5.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush5/",

filename: "bush5.glb"

},

bush5_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/bush5/gltf/bush5.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/bush5/gltf/",

filename: "bush5.gltf"

},

cellarDoor_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/cellarDoor/cellarDoor.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/cellarDoor/",

filename: "cellarDoor.glb"

},

cellarDoor_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/cellarDoor/gltf/cellarDoor.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/cellarDoor/gltf/",

filename: "cellarDoor.gltf"

},

cottage_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/cottage/cottage.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/cottage/",

filename: "cottage.glb"

},

cottage_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/cottage/gltf/cottage.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/cottage/gltf/",

filename: "cottage.gltf"

},

crate1_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/crate1/crate1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/crate1/",

filename: "crate1.glb"

},

crate1_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/crate1/gltf/crate1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/crate1/gltf/",

filename: "crate1.gltf"

},

crate2_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/crate2/crate2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/crate2/",

filename: "crate2.glb"

},

crate2_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/crate2/gltf/crate2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/crate2/gltf/",

filename: "crate2.gltf"

},

crateStack_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/crateStack/crateStack.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/crateStack/",

filename: "crateStack.glb"

},

crateStack_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/crateStack/gltf/crateStack.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/crateStack/gltf/",

filename: "crateStack.gltf"

},

fence_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/fence/fence.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/fence/",

filename: "fence.glb"

},

fence_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/fence/gltf/fence.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/fence/gltf/",

filename: "fence.gltf"

},

hollowLog_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/hollowLog/gltf/hollowLog.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/hollowLog/gltf/",

filename: "hollowLog.gltf"

},

hollowLog_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/hollowLog/hollowLog.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/hollowLog/",

filename: "hollowLog.glb"

},

inn_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/inn/gltf/inn.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/inn/gltf/",

filename: "inn.gltf"

},

inn_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/inn/inn.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/inn/",

filename: "inn.glb"

},

lightPost1_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/lightPost1/gltf/lightPost1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/lightPost1/gltf/",

filename: "lightPost1.gltf"

},

lightPost1_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/lightPost1/lightPost1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/lightPost1/",

filename: "lightPost1.glb"

},

lightPost2_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/lightPost2/gltf/lightPost2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/lightPost2/gltf/",

filename: "lightPost2.gltf"

},

lightPost2_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/lightPost2/lightPost2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/lightPost2/",

filename: "lightPost2.glb"

},

lightPost3_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/lightPost3/gltf/lightPost3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/lightPost3/gltf/",

filename: "lightPost3.gltf"

},

lightPost3_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/lightPost3/lightPost3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/lightPost3/",

filename: "lightPost3.glb"

},

logSaw_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/logSaw/gltf/logSaw.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/logSaw/gltf/",

filename: "logSaw.gltf"

},

logSaw_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/logSaw/logSaw.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/logSaw/",

filename: "logSaw.glb"

},

rocks1_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks1/gltf/rocks1.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks1/gltf/",

filename: "rocks1.gltf"

},

rocks1_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks1/rocks1.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks1/",

filename: "rocks1.glb"

},

rocks2_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks2/gltf/rocks2.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks2/gltf/",

filename: "rocks2.gltf"

},

rocks2_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks2/rocks2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks2/",

filename: "rocks2.glb"

},

rocks3_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks3/gltf/rocks3.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks3/gltf/",

filename: "rocks3.gltf"

},

rocks3_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks3/rocks3.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks3/",

filename: "rocks3.glb"

},

rocks4_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks4/gltf/rocks4.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks4/gltf/",

filename: "rocks4.gltf"

},

rocks4_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/rocks4/rocks4.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/rocks4/",

filename: "rocks4.glb"

},

sawMill_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/sawMill/gltf/sawMill.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/sawMill/gltf/",

filename: "sawMill.gltf"

},

sawMill_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/sawMill/sawMill.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/sawMill/",

filename: "sawMill.glb"

},

stump_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/stump/gltf/stump.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/stump/gltf/",

filename: "stump.gltf"

},

stump_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/stump/stump.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/stump/",

filename: "stump.glb"

},

stumpAxe_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/stumpAxe/gltf/stumpAxe.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/stumpAxe/gltf/",

filename: "stumpAxe.gltf"

},

stumpAxe_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/stumpAxe/stumpAxe.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/stumpAxe/",

filename: "stumpAxe.glb"

},

wagon_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/wagon/gltf/wagon.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wagon/gltf/",

filename: "wagon.gltf"

},

wagon_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/wagon/wagon.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wagon/",

filename: "wagon.glb"

},

wall_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/wall/gltf/wall.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wall/gltf/",

filename: "wall.gltf"

},

wall_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/wall/wall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wall/",

filename: "wall.glb"

},

wallArch_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/wallArch/gltf/wallArch.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wallArch/gltf/",

filename: "wallArch.gltf"

},

wallArch_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/wallArch/wallArch.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wallArch/",

filename: "wallArch.glb"

},

wallCorner_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/wallCorner/gltf/wallCorner.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wallCorner/gltf/",

filename: "wallCorner.gltf"

},

wallCorner_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/wallCorner/wallCorner.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/wallCorner/",

filename: "wallCorner.glb"

},

waterwell_gltf: {

path: "https://assets.babylonjs.com/meshes/villagePack/waterwell/gltf/waterwell.gltf",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/waterwell/gltf/",

filename: "waterwell.gltf"

},

waterwell_glb: {

path: "https://assets.babylonjs.com/meshes/villagePack/waterwell/waterwell.glb",

rootUrl: "https://assets.babylonjs.com/meshes/villagePack/waterwell/",

filename: "waterwell.glb"

},

tree_babylon: {

path: "https://assets.babylonjs.com/meshes/Tree/tree.babylon",

rootUrl: "https://assets.babylonjs.com/meshes/Tree/",

filename: "tree.babylon"

},

highPolyPlane_glb: {

path: "https://assets.babylonjs.com/meshes/highPolyPlane.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "highPolyPlane.glb"

},

previewSphere_glb: {

path: "https://assets.babylonjs.com/meshes/previewSphere.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "previewSphere.glb"

},

"mrtk-fluent-frontplate_glb": {

path: "https://assets.babylonjs.com/meshes/MRTK/mrtk-fluent-frontplate.glb",

rootUrl: "https://assets.babylonjs.com/meshes/MRTK/",

filename: "mrtk-fluent-frontplate.glb"

},

SlateProximity_glb: {

path: "https://assets.babylonjs.com/meshes/MRTK/SlateProximity.glb",

rootUrl: "https://assets.babylonjs.com/meshes/MRTK/",

filename: "SlateProximity.glb"

},

bowlingBall_glb: {

path: "https://assets.babylonjs.com/meshes/bowlingBall.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "bowlingBall.glb"

},

bowlingPinpin_glb: {

path: "https://assets.babylonjs.com/meshes/bowlingPinpin.glb",

rootUrl: "https://assets.babylonjs.com/meshes/",

filename: "bowlingPinpin.glb"

},

"ceiling corner_glb": {

path: "https://assets.babylonjs.com/meshes/Buildings/ceiling corner.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "ceiling corner.glb"

},

"ceiling straight_glb": {

path: "https://assets.babylonjs.com/meshes/Buildings/ceiling straight.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "ceiling straight.glb"

},

ceiling_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/ceiling.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "ceiling.glb"

},

corner_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/corner.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "corner.glb"

},

corner2_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/corner2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "corner2.glb"

},

Gap_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/Gap.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "Gap.glb"

},

"Road corner_glb": {

path: "https://assets.babylonjs.com/meshes/Buildings/Road corner.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "Road corner.glb"

},

"road gap_glb": {

path: "https://assets.babylonjs.com/meshes/Buildings/road gap.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "road gap.glb"

},

straight_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/straight.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "straight.glb"

},

window_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/window.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "window.glb"

},

window2_glb: {

path: "https://assets.babylonjs.com/meshes/Buildings/window2.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Buildings/",

filename: "window2.glb"

},

shaderBall_rotation_glb: {

path: "https://assets.babylonjs.com/meshes/Demos/pbr_mr_specular/shaderBall_rotation.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Demos/pbr_mr_specular/",

filename: "shaderBall_rotation.glb"

},

"Box-draco_glb": {

path: "https://assets.babylonjs.com/meshes/Tests/BadDraco/Box-draco.glb",

rootUrl: "https://assets.babylonjs.com/meshes/Tests/BadDraco/",

filename: "Box-draco.glb"

}

},

nme: {

directionSlider: {

path: "https://assets.babylonjs.com/nme/customFrames/directionSlider.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "directionSlider.json"

},

normalBlend: {

path: "https://assets.babylonjs.com/nme/customFrames/normalBlend.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "normalBlend.json"

},

OOB: {

path: "https://assets.babylonjs.com/nme/customFrames/OOB.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "OOB.json"

},

screenPosition: {

path: "https://assets.babylonjs.com/nme/customFrames/screenPosition.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "screenPosition.json"

},

tileAndOffset: {

path: "https://assets.babylonjs.com/nme/customFrames/tileAndOffset.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "tileAndOffset.json"

},

uvTwirl: {

path: "https://assets.babylonjs.com/nme/customFrames/uvTwirl.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "uvTwirl.json"

},

zebraStripes: {

path: "https://assets.babylonjs.com/nme/customFrames/zebraStripes.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "zebraStripes.json"

},

Position_json: {

path: "https://assets.babylonjs.com/nme/customFrames/Position.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "Position.json"

},

Rotation3d_json: {

path: "https://assets.babylonjs.com/nme/customFrames/Rotation3d.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "Rotation3d.json"

},

Transform3d_json: {

path: "https://assets.babylonjs.com/nme/customFrames/Transform3d.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "Transform3d.json"

},

VectorScale_json: {

path: "https://assets.babylonjs.com/nme/customFrames/VectorScale.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "VectorScale.json"

},

"Vertex Output_json": {

path: "https://assets.babylonjs.com/nme/customFrames/Vertex Output.json",

rootUrl: "https://assets.babylonjs.com/nme/customFrames/",

filename: "Vertex Output.json"

},

nearInteractionTouchMaterial_json: {

path: "https://assets.babylonjs.com/nme/nearInteractionTouchMaterial.json",

rootUrl: "https://assets.babylonjs.com/nme/",

filename: "nearInteractionTouchMaterial.json"

}

},

particles: {

explosion: {

path: "https://assets.babylonjs.com/particles/systems/explosion.json",

rootUrl: "https://assets.babylonjs.com/particles/systems/",

filename: "explosion.json"

},

fire: {

path: "https://assets.babylonjs.com/particles/systems/fire.json",

rootUrl: "https://assets.babylonjs.com/particles/systems/",

filename: "fire.json"

},

rain: {

path: "https://assets.babylonjs.com/particles/systems/rain.json",

rootUrl: "https://assets.babylonjs.com/particles/systems/",

filename: "rain.json"

},

smoke: {

path: "https://assets.babylonjs.com/particles/systems/smoke.json",

rootUrl: "https://assets.babylonjs.com/particles/systems/",

filename: "smoke.json"

},

sun: {

path: "https://assets.babylonjs.com/particles/systems/sun.json",

rootUrl: "https://assets.babylonjs.com/particles/systems/",

filename: "sun.json"

}

},

sound: {

cannonBlast: {

path: "https://assets.babylonjs.com/sound/cannonBlast.mp3",

rootUrl: "https://assets.babylonjs.com/sound/",

filename: "cannonBlast.mp3"

},

a6: {

path: "https://assets.babylonjs.com/sound/holiday2021/a6.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "a6.mp3"

},

b6: {

path: "https://assets.babylonjs.com/sound/holiday2021/b6.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "b6.mp3"

},

c7: {

path: "https://assets.babylonjs.com/sound/holiday2021/c7.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "c7.mp3"

},

d6: {

path: "https://assets.babylonjs.com/sound/holiday2021/d6.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "d6.mp3"

},

e6: {

path: "https://assets.babylonjs.com/sound/holiday2021/e6.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "e6.mp3"

},

"f#6": {

path: "https://assets.babylonjs.com/sound/holiday2021/f#6.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "f#6.mp3"

},

g6: {

path: "https://assets.babylonjs.com/sound/holiday2021/g6.mp3",

rootUrl: "https://assets.babylonjs.com/sound/holiday2021/",

filename: "g6.mp3"

},

pirateFun: {

path: "https://assets.babylonjs.com/sound/pirateFun.mp3",

rootUrl: "https://assets.babylonjs.com/sound/",

filename: "pirateFun.mp3"

},

"This Is Christmas": {

path: "https://assets.babylonjs.com/sound/Snow_Man_Scene/This Is Christmas.mp3",

rootUrl: "https://assets.babylonjs.com/sound/Snow_Man_Scene/",

filename: "This Is Christmas.mp3"

},

winterWoods: {

path: "https://assets.babylonjs.com/sound/Snow_Man_Scene/winterWoods.mp3",

rootUrl: "https://assets.babylonjs.com/sound/Snow_Man_Scene/",

filename: "winterWoods.mp3"

},

mp3_mp3: {

path: "https://assets.babylonjs.com/sound/testing/mp3.mp3",

rootUrl: "https://assets.babylonjs.com/sound/testing/",

filename: "mp3.mp3"

},

ogg_ogg: {

path: "https://assets.babylonjs.com/sound/testing/ogg.ogg",

rootUrl: "https://assets.babylonjs.com/sound/testing/",

filename: "ogg.ogg"

},

ac3_ac3: {

path: "https://assets.babylonjs.com/sound/testing/ac3.ac3",

rootUrl: "https://assets.babylonjs.com/sound/testing/",

filename: "ac3.ac3"

}

},

luts: {

"colorGrade-highContrast_png": {

path: "https://assets.babylonjs.com/luts/colorGrade-highContrast.png",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "colorGrade-highContrast.png"

},

"colorGrade-inverted_png": {

path: "https://assets.babylonjs.com/luts/colorGrade-inverted.png",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "colorGrade-inverted.png"

},

"colorGrade-posterize_png": {

path: "https://assets.babylonjs.com/luts/colorGrade-posterize.png",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "colorGrade-posterize.png"

},

colorGrade_png: {

path: "https://assets.babylonjs.com/luts/colorGrade.png",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "colorGrade.png"

},

HorrorBlue_3dl: {

path: "https://assets.babylonjs.com/luts/HorrorBlue.3dl",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "HorrorBlue.3dl"

},

invert_3dl: {

path: "https://assets.babylonjs.com/luts/invert.3dl",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "invert.3dl"

},

LateSunset_3dl: {

path: "https://assets.babylonjs.com/luts/LateSunset.3dl",

rootUrl: "https://assets.babylonjs.com/luts/",

filename: "LateSunset.3dl"

}

},

photoDomes: {

equirectangular_jpg: {

path: "https://assets.babylonjs.com/photoDomes/equirectangular.jpg",

rootUrl: "https://assets.babylonjs.com/photoDomes/",

filename: "equirectangular.jpg"

},

GatonaParkWalkway1_Panorama_4Kx2K_jpg: {

path: "https://assets.babylonjs.com/photoDomes/GatonaParkWalkway1_Panorama_4Kx2K.jpg",

rootUrl: "https://assets.babylonjs.com/photoDomes/",

filename: "GatonaParkWalkway1_Panorama_4Kx2K.jpg"

}

},

skyboxes: {

skybox_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox/skybox_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox/",

filename: "skybox_nx.jpg"

},

skybox_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox/skybox_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox/",

filename: "skybox_ny.jpg"

},

skybox_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox/skybox_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox/",

filename: "skybox_nz.jpg"

},

skybox_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox/skybox_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox/",

filename: "skybox_px.jpg"

},

skybox_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox/skybox_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox/",

filename: "skybox_py.jpg"

},

skybox_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox/skybox_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox/",

filename: "skybox_pz.jpg"

},

skybox2_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox2/skybox2_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox2/",

filename: "skybox2_nx.jpg"

},

skybox2_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox2/skybox2_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox2/",

filename: "skybox2_ny.jpg"

},

skybox2_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox2/skybox2_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox2/",

filename: "skybox2_nz.jpg"

},

skybox2_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox2/skybox2_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox2/",

filename: "skybox2_px.jpg"

},

skybox2_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox2/skybox2_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox2/",

filename: "skybox2_py.jpg"

},

skybox2_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox2/skybox2_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox2/",

filename: "skybox2_pz.jpg"

},

skybox3_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox3/skybox3_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox3/",

filename: "skybox3_nx.jpg"

},

skybox3_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox3/skybox3_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox3/",

filename: "skybox3_ny.jpg"

},

skybox3_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox3/skybox3_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox3/",

filename: "skybox3_nz.jpg"

},

skybox3_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox3/skybox3_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox3/",

filename: "skybox3_px.jpg"

},

skybox3_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox3/skybox3_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox3/",

filename: "skybox3_py.jpg"

},

skybox3_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox3/skybox3_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox3/",

filename: "skybox3_pz.jpg"

},

skybox4_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox4/skybox4_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox4/",

filename: "skybox4_nx.jpg"

},

skybox4_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox4/skybox4_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox4/",

filename: "skybox4_ny.jpg"

},

skybox4_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox4/skybox4_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox4/",

filename: "skybox4_nz.jpg"

},

skybox4_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox4/skybox4_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox4/",

filename: "skybox4_px.jpg"

},

skybox4_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox4/skybox4_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox4/",

filename: "skybox4_py.jpg"

},

skybox4_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skybox4/skybox4_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skybox4/",

filename: "skybox4_pz.jpg"

},

skyboxBlack_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skyboxBlack/skyboxBlack_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skyboxBlack/",

filename: "skyboxBlack_nx.jpg"

},

skyboxBlack_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skyboxBlack/skyboxBlack_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skyboxBlack/",

filename: "skyboxBlack_ny.jpg"

},

skyboxBlack_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skyboxBlack/skyboxBlack_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skyboxBlack/",

filename: "skyboxBlack_nz.jpg"

},

skyboxBlack_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skyboxBlack/skyboxBlack_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skyboxBlack/",

filename: "skyboxBlack_px.jpg"

},

skyboxBlack_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skyboxBlack/skyboxBlack_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skyboxBlack/",

filename: "skyboxBlack_py.jpg"

},

skyboxBlack_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/skyboxBlack/skyboxBlack_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/skyboxBlack/",

filename: "skyboxBlack_pz.jpg"

},

winter_lake_01_1k_hdr: {

path: "https://assets.babylonjs.com/skyboxes/Snow_Man_Scene/winter_lake_01_1k.hdr",

rootUrl: "https://assets.babylonjs.com/skyboxes/Snow_Man_Scene/",

filename: "winter_lake_01_1k.hdr"

},

space_back_jpg: {

path: "https://assets.babylonjs.com/skyboxes/Space/space_back.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/Space/",

filename: "space_back.jpg"

},

space_down_jpg: {

path: "https://assets.babylonjs.com/skyboxes/Space/space_down.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/Space/",

filename: "space_down.jpg"

},

space_front_jpg: {

path: "https://assets.babylonjs.com/skyboxes/Space/space_front.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/Space/",

filename: "space_front.jpg"

},

space_left_jpg: {

path: "https://assets.babylonjs.com/skyboxes/Space/space_left.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/Space/",

filename: "space_left.jpg"

},

space_right_jpg: {

path: "https://assets.babylonjs.com/skyboxes/Space/space_right.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/Space/",

filename: "space_right.jpg"

},

space_up_jpg: {

path: "https://assets.babylonjs.com/skyboxes/Space/space_up.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/Space/",

filename: "space_up.jpg"

},

toySky_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/toySky/toySky_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/toySky/",

filename: "toySky_nx.jpg"

},

toySky_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/toySky/toySky_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/toySky/",

filename: "toySky_ny.jpg"

},

toySky_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/toySky/toySky_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/toySky/",

filename: "toySky_nz.jpg"

},

toySky_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/toySky/toySky_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/toySky/",

filename: "toySky_px.jpg"

},

toySky_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/toySky/toySky_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/toySky/",

filename: "toySky_py.jpg"

},

toySky_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/toySky/toySky_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/toySky/",

filename: "toySky_pz.jpg"

},

TropicalSunnyDay_nx_jpg: {

path: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/TropicalSunnyDay_nx.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/",

filename: "TropicalSunnyDay_nx.jpg"

},

TropicalSunnyDay_ny_jpg: {

path: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/TropicalSunnyDay_ny.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/",

filename: "TropicalSunnyDay_ny.jpg"

},

TropicalSunnyDay_nz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/TropicalSunnyDay_nz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/",

filename: "TropicalSunnyDay_nz.jpg"

},

TropicalSunnyDay_px_jpg: {

path: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/TropicalSunnyDay_px.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/",

filename: "TropicalSunnyDay_px.jpg"

},

TropicalSunnyDay_py_jpg: {

path: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/TropicalSunnyDay_py.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/",

filename: "TropicalSunnyDay_py.jpg"

},

TropicalSunnyDay_pz_jpg: {

path: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/TropicalSunnyDay_pz.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/TropicalSunnyDay/",

filename: "TropicalSunnyDay_pz.jpg"

},

matcap_jpg: {

path: "https://assets.babylonjs.com/skyboxes/matcap.jpg",

rootUrl: "https://assets.babylonjs.com/skyboxes/",

filename: "matcap.jpg"

}

},

sprites: {

Fire_SpriteSheet_8x8_png: {

path: "https://assets.babylonjs.com/sprites/Fire_SpriteSheet_8x8.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Fire_SpriteSheet_8x8.png"

},

Fire_SpriteSheet1_8x8_png: {

path: "https://assets.babylonjs.com/sprites/Fire_SpriteSheet1_8x8.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Fire_SpriteSheet1_8x8.png"

},

Fire_SpriteSheet2_8x8_png: {

path: "https://assets.babylonjs.com/sprites/Fire_SpriteSheet2_8x8.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Fire_SpriteSheet2_8x8.png"

},

Fire_SpriteSheet3_8x8_png: {

path: "https://assets.babylonjs.com/sprites/Fire_SpriteSheet3_8x8.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Fire_SpriteSheet3_8x8.png"

},

FlameBlastSpriteSheet_png: {

path: "https://assets.babylonjs.com/sprites/FlameBlastSpriteSheet.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "FlameBlastSpriteSheet.png"

},

Legends_Level_A_png: {

path: "https://assets.babylonjs.com/sprites/Legends_Level_A.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Legends_Level_A.png"

},

palm_png: {

path: "https://assets.babylonjs.com/sprites/palm.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "palm.png"

},

player_png: {

path: "https://assets.babylonjs.com/sprites/player.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "player.png"

},

Rain_png: {

path: "https://assets.babylonjs.com/sprites/Rain.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Rain.png"

},

Smoke_SpriteSheet_8x8_png: {

path: "https://assets.babylonjs.com/sprites/Smoke_SpriteSheet_8x8.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "Smoke_SpriteSheet_8x8.png"

},

spriteAtlas_png: {

path: "https://assets.babylonjs.com/sprites/spriteAtlas.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "spriteAtlas.png"

},

ufo_png: {

path: "https://assets.babylonjs.com/sprites/ufo.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "ufo.png"

},

walk_png: {

path: "https://assets.babylonjs.com/sprites/walk.png",

rootUrl: "https://assets.babylonjs.com/sprites/",

filename: "walk.png"

}

},

textures: {

amiga_jpg: {

path: "https://assets.babylonjs.com/textures/amiga.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "amiga.jpg"

},

backgroundGround_png: {

path: "https://assets.babylonjs.com/textures/backgroundGround.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "backgroundGround.png"

},

bloc_jpg: {

path: "https://assets.babylonjs.com/textures/bloc.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "bloc.jpg"

},

bricktile_jpg: {

path: "https://assets.babylonjs.com/textures/bricktile.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "bricktile.jpg"

},

candleopacity_png: {

path: "https://assets.babylonjs.com/textures/candleopacity.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "candleopacity.png"

},

Checker_albedo_png: {

path: "https://assets.babylonjs.com/textures/Checker_albedo.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "Checker_albedo.png"

},

checkerboard_basecolor_png: {

path: "https://assets.babylonjs.com/textures/checkerboard_basecolor.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "checkerboard_basecolor.png"

},

checkerboard_metallicRoughness_png: {

path: "https://assets.babylonjs.com/textures/checkerboard_metallicRoughness.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "checkerboard_metallicRoughness.png"

},

checkerboard_normal_png: {

path: "https://assets.babylonjs.com/textures/checkerboard_normal.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "checkerboard_normal.png"

},

cloud_png: {

path: "https://assets.babylonjs.com/textures/lava/cloud.png",

rootUrl: "https://assets.babylonjs.com/textures/lava/",

filename: "cloud.png"

},

co_png: {

path: "https://assets.babylonjs.com/textures/co.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "co.png"

},

correlatedBRDF_dds: {

path: "https://assets.babylonjs.com/textures/correlatedBRDF.dds",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "correlatedBRDF.dds"

},

crate_png: {

path: "https://assets.babylonjs.com/textures/crate.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "crate.png"

},

cubehouse_png: {

path: "https://assets.babylonjs.com/textures/cubehouse.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "cubehouse.png"

},

dirt_jpg: {

path: "https://assets.babylonjs.com/textures/dirt.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "dirt.jpg"

},

distortion_png: {

path: "https://assets.babylonjs.com/textures/fire/distortion.png",

rootUrl: "https://assets.babylonjs.com/textures/fire/",

filename: "distortion.png"

},

Dot_png: {

path: "https://assets.babylonjs.com/textures/Dot.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "Dot.png"

},

down_png: {

path: "https://assets.babylonjs.com/textures/down.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "down.png"

},

earth_jpg: {

path: "https://assets.babylonjs.com/textures/earth.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "earth.jpg"

},

earthnormal_jpg: {

path: "https://assets.babylonjs.com/textures/earthnormal.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "earthnormal.jpg"

},

fan_png: {

path: "https://assets.babylonjs.com/textures/fan.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "fan.png"

},

fire_jpg: {

path: "https://assets.babylonjs.com/textures/fire.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "fire.jpg"

},

fire_png: {

path: "https://assets.babylonjs.com/textures/fire.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "fire.png"

},

diffuse_png: {

path: "https://assets.babylonjs.com/textures/fire/diffuse.png",

rootUrl: "https://assets.babylonjs.com/textures/fire/",

filename: "diffuse.png"

},

opacity_png: {

path: "https://assets.babylonjs.com/textures/opacity.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "opacity.png"

},

flare_png: {

path: "https://assets.babylonjs.com/textures/flare.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "flare.png"

},

Flare2_png: {

path: "https://assets.babylonjs.com/textures/Flare2.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "Flare2.png"

},

flare3_png: {

path: "https://assets.babylonjs.com/textures/flare3.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "flare3.png"

},

FlashParticle_png: {

path: "https://assets.babylonjs.com/textures/FlashParticle.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "FlashParticle.png"

},

floor_png: {

path: "https://assets.babylonjs.com/textures/floor.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "floor.png"

},

fur_jpg: {

path: "https://assets.babylonjs.com/textures/fur.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "fur.jpg"

},

grass_dds: {

path: "https://assets.babylonjs.com/textures/grass.dds",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "grass.dds"

},

grass_jpg: {

path: "https://assets.babylonjs.com/textures/grass.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "grass.jpg"

},

grass_png: {

path: "https://assets.babylonjs.com/textures/grass.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "grass.png"

},

grassn_png: {

path: "https://assets.babylonjs.com/textures/grassn.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "grassn.png"

},

ground_jpg: {

path: "https://assets.babylonjs.com/textures/ground.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "ground.jpg"

},

heightMap_png: {

path: "https://assets.babylonjs.com/textures/heightMap.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "heightMap.png"

},

heightMapTriPlanar_png: {

path: "https://assets.babylonjs.com/textures/heightMapTriPlanar.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "heightMapTriPlanar.png"

},

hollow_png: {

path: "https://assets.babylonjs.com/textures/hollow.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "hollow.png"

},

impact_png: {

path: "https://assets.babylonjs.com/textures/impact.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "impact.png"

},

invmask_png: {

path: "https://assets.babylonjs.com/textures/invmask.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "invmask.png"

},

lavatile_jpg: {

path: "https://assets.babylonjs.com/textures/lava/lavatile.jpg",

rootUrl: "https://assets.babylonjs.com/textures/lava/",

filename: "lavatile.jpg"

},

lensdirt_jpg: {

path: "https://assets.babylonjs.com/textures/lensdirt.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "lensdirt.jpg"

},

lensflaredirt_png: {

path: "https://assets.babylonjs.com/textures/lensflaredirt.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "lensflaredirt.png"

},

lensstar_png: {

path: "https://assets.babylonjs.com/textures/lensstar.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "lensstar.png"

},

mercator_jpg: {

path: "https://assets.babylonjs.com/textures/mercator.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "mercator.jpg"

},

mercator2_jpg: {

path: "https://assets.babylonjs.com/textures/mercator2.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "mercator2.jpg"

},

misc_jpg: {

path: "https://assets.babylonjs.com/textures/misc.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "misc.jpg"

},

mixMap_png: {

path: "https://assets.babylonjs.com/textures/mixMap.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "mixMap.png"

},

normal_png: {

path: "https://assets.babylonjs.com/textures/normal.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "normal.png"

},

normalMap_jpg: {

path: "https://assets.babylonjs.com/textures/normalMap.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "normalMap.jpg"

},

ParallaxDiffuse_png: {

path: "https://assets.babylonjs.com/textures/ParallaxDiffuse.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "ParallaxDiffuse.png"

},

ParallaxNormal_png: {

path: "https://assets.babylonjs.com/textures/ParallaxNormal.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "ParallaxNormal.png"

},

particle_png: {

path: "https://assets.babylonjs.com/textures/particle.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "particle.png"

},

plane_basis: {

path: "https://assets.babylonjs.com/textures/plane.basis",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "plane.basis"

},

reflectivity_png: {

path: "https://assets.babylonjs.com/textures/reflectivity.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "reflectivity.png"

},

rock_png: {

path: "https://assets.babylonjs.com/textures/rock.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "rock.png"

},

rockn_png: {

path: "https://assets.babylonjs.com/textures/rockn.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "rockn.png"

},

rockyGround_basecolor_png: {

path: "https://assets.babylonjs.com/textures/rockyGround_basecolor.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "rockyGround_basecolor.png"

},

rockyGround_metalRough_png: {

path: "https://assets.babylonjs.com/textures/rockyGround_metalRough.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "rockyGround_metalRough.png"

},

rockyGround_normal_png: {

path: "https://assets.babylonjs.com/textures/rockyGround_normal.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "rockyGround_normal.png"

},

roof_jpg: {

path: "https://assets.babylonjs.com/textures/roof.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "roof.jpg"

},

roundMask_png: {

path: "https://assets.babylonjs.com/textures/roundMask.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "roundMask.png"

},

sand_jpg: {

path: "https://assets.babylonjs.com/textures/sand.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "sand.jpg"

},

semihouse_png: {

path: "https://assets.babylonjs.com/textures/semihouse.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "semihouse.png"

},

Spark_png: {

path: "https://assets.babylonjs.com/textures/Spark.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "Spark.png"

},

sparkle_png: {

path: "https://assets.babylonjs.com/textures/sparkle.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "sparkle.png"

},

sparkle2_jpg: {

path: "https://assets.babylonjs.com/textures/sparkle2.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "sparkle2.jpg"

},

sparks_png: {

path: "https://assets.babylonjs.com/textures/sparks.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "sparks.png"

},

sparkStretched_png: {

path: "https://assets.babylonjs.com/textures/sparkStretched.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "sparkStretched.png"

},

speckles_jpg: {

path: "https://assets.babylonjs.com/textures/speckles.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "speckles.jpg"

},

stars_png: {

path: "https://assets.babylonjs.com/textures/stars.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "stars.png"

},

sun_png: {

path: "https://assets.babylonjs.com/textures/sun.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "sun.png"

},

SunDiffuse_png: {

path: "https://assets.babylonjs.com/textures/SunDiffuse.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "SunDiffuse.png"

},

tree_png: {

path: "https://assets.babylonjs.com/textures/tree.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "tree.png"

},

up_png: {

path: "https://assets.babylonjs.com/textures/up.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "up.png"

},

valleygrass_png: {

path: "https://assets.babylonjs.com/textures/valleygrass.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "valleygrass.png"

},

villagegreen_png: {

path: "https://assets.babylonjs.com/textures/villagegreen.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "villagegreen.png"

},

villageheightmap_png: {

path: "https://assets.babylonjs.com/textures/villageheightmap.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "villageheightmap.png"

},

waterbump_png: {

path: "https://assets.babylonjs.com/textures/waterbump.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "waterbump.png"

},

waterFoam_circular_mask_png: {

path: "https://assets.babylonjs.com/textures/waterFoam_circular_mask.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "waterFoam_circular_mask.png"

},

wheel_png: {

path: "https://assets.babylonjs.com/textures/wheel.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "wheel.png"

},

WhiteTransarentRamp_png: {

path: "https://assets.babylonjs.com/textures/WhiteTransarentRamp.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "WhiteTransarentRamp.png"

},

wood_jpg: {

path: "https://assets.babylonjs.com/textures/wood.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "wood.jpg"

},

woodAlbedo_png: {

path: "https://assets.babylonjs.com/textures/woodAlbedo.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "woodAlbedo.png"

},

worldHeightMap_jpg: {

path: "https://assets.babylonjs.com/textures/worldHeightMap.jpg",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "worldHeightMap.jpg"

},

floorn_png: {

path: "https://assets.babylonjs.com/textures/floorn.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "floorn.png"

},

stoneso_png: {

path: "https://assets.babylonjs.com/textures/stoneso.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "stoneso.png"

},

leafPositionTexture_png: {

path: "https://assets.babylonjs.com/textures/leafPositionTexture.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "leafPositionTexture.png"

},

leafRotationTexture_png: {

path: "https://assets.babylonjs.com/textures/leafRotationTexture.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "leafRotationTexture.png"

},

blue_noise_rgb_16bit_png: {

path: "https://assets.babylonjs.com/textures/blue_noise/blue_noise_rgb_16bit.png",

rootUrl: "https://assets.babylonjs.com/textures/blue_noise/",

filename: "blue_noise_rgb_16bit.png"

},

blue_noise_rgb_png: {

path: "https://assets.babylonjs.com/textures/blue_noise/blue_noise_rgb.png",

rootUrl: "https://assets.babylonjs.com/textures/blue_noise/",

filename: "blue_noise_rgb.png"

},

wheelcar_png: {

path: "https://assets.babylonjs.com/textures/wheelcar.png",

rootUrl: "https://assets.babylonjs.com/textures/",

filename: "wheelcar.png"

}

},

fonts: {},

splats: {}

};

// 初始化 3d 引擎 选择挂载的DOM画布

const canvas = document.getElementById("renderCanvas")

const engine = new BABYLON.Engine(canvas, true) // 第二个选项是是否开启平滑(anti-alias)

engine.enableOfflineSupport = true // 除非你想做离线体验,这里可以设为 false

// 启用碰撞检测和重力

const enableCameraCollision = (camera, scene)=> {

// Enable gravity on the scene. Should be similar to earth's gravity.

scene.gravity = new BABYLON.Vector3(0, -0.98, 0);

// Enable collisions globally.

scene.collisionsEnabled = true;

// Enable collision detection and gravity on the free camera.

camera.checkCollisions = true;

camera.applyGravity = true;

// Set the player size, the camera's ellipsoid.

camera.ellipsoid = new BABYLON.Vector3(0.4, 0.8, 0.4);

}

// 启用碰撞检查,通过在每个要碰撞的网格上设置布尔标志。

const enableMeshesCollision =(meshes)=> {

meshes.forEach((mesh)=> {

mesh.checkCollisions = true;

});

}

const file = {

name:'fish',

url:'https://minio.cnbabylon.com/public/Assets/fish.glb',

}

const loadModels = (file) => {

//除了粒子等少数元素,场景和物体(包含物体的动画)都是外部导入素材。

//目前最流行的素材统一格式是.gltf。

//开源模型网站 https://sketchfab.com/ 直接下载 .gltf .glb格式三维模型。

let assetsManager = new BABYLON.AssetsManager(scene);

//三维素材一般由 .gltf,.bin 和 textures (皮肤) 文件组成。

//.gltf 转 .glb,将所有文件合成一个 .glb。

let task = assetsManager.addMeshTask(file.name, '', file.url);

// .gltf 等文件全放在一个文件夹,比如 /assets/

//BABYLON.SceneLoader.Append("/assets/", "a.gltf", scene, (newScene) => {

//

//})

// 单个 .glb 文件

//BABYLON.SceneLoader.ImportMesh("", "", "www.a.com/a.glb", scene, (meshes, particleSystems, skeletons) => {

//

//})

// promise 版本的

//BABYLON.SceneLoader.AppendAsync("/assets/", "a.gltf", scene).then(newScene => {

//

//})

//Append 和 ImportMesh 基本功能都是加载模型,然后渲染到场景 scene 中,主要区别:

//回调函数的参数,前者是场景,后者是 mesh,粒子和骨架

//ImportMesh 第一个参数可以用于指定引入一部分素材,空字符串会引入全部。

// task on success

task.onSuccess = (obj) => {

// setMeshActions(task, index, file);

//console.log(obj.loadedMeshes)

//console.log(obj.loadedAnimationGroups)

//let meshes = obj.loadedMeshes;

//try {

//meshes.map((mesh)=>{

// console.log(mesh)

//})

//} catch (e) {

//console.log(e);

//}

};

// task on error

task.onError = (task, message, exception) => {

console.log({

"task": task,

"message": message,

"exception": exception

});

};

//要抓取一个素材需要操作的部分和自带动画,需要了解素材的构成

// 在callback里

//const wheel = newMeshes.find(n => n.id === 'Cylinder1');

// 隐藏轮子

//wheel.isVisible = false;

// 一般整个素材是

//const car = newMeshes[0];

// 可以在scene里寻找动画

//const anime = scene.animationGroups[0];

// 播放和停止动画

//anime.start(); // 播放

//anime.stop(); // 停止

//anime.pause(); // 暂停

//anime.restart(); // 重新开始

//anime..goToFrame(60) // 到某一帧

// 创建动画

//new Animation(名称, 变化的属性, fps, 动画变量数据类型, 循环模式)

// 使用动画

//scene.beginDirectAnimation(target, animations, 从哪帧, 到哪帧, 循环否?, 播放速度, 结束callback)

// 控制动画 一般 60 帧(frame)是一秒。素材自带动画也属于Animatable

//const myAnime = scene.beginDirectAnimation( ... )

assetsManager.onTasksDoneObservable.add(tasks => {

tasks.filter( (task)=> {

return task.taskState === BABYLON.AssetTaskState.ERROR;

});

tasks.filter( (task)=> {

return task.taskState !== BABYLON.AssetTaskState.SUCCESS;

});

//startGame();

});

return assetsManager;

}

const startGame = () => {

}

const nozzleController = {

"nozzles": [0, 0, 0, 0],

"shipsParticles": [],

"pulsation": false,

"groupMode": false,

"compas": null,

"toggles": [],

"displays": [],

"joysticks": [],

"indicators": [],

"prevClickId": null,

"linearVelocity": 0.8,

"linearThrottle": 1.8,

"angularVelocity": 0.15,

"throttle": 0,

get: () => {

return nozzleController;

},

set: (i, val, pulse) => {

nozzleController.nozzles[i] = val;

nozzleController.pulsation = pulse;

return nozzleController;

}

};

const compasStyle = {

"width": 5,

"height": 5,

"top": 5,

"left": 5

}

const displays = [

{

"name": "enginePower",

"text": "ENGINE POWER",

"width": 92,

"height": 40,

"elements": [0, 0, 0, 0, 0, 0, 0, 0],

"disabled": {

"backgroundColor": "red"

},

"active": {

"backgroundColor": "#ABD436"

}

},

{

"name": "batteryPower",

"text": "BATTERY POWER",

"width": 92,

"height": 40,

"elements": [0, 0, 0, 0, 0, 0, 0, 0],

"disabled": {

"backgroundColor": "red"

},

"active": {

"backgroundColor": "#ABD436"

}

}

]

// controlPanel

let controlPanelStyles = {

"top": -20,

"left": 20,

"cornerRadius": 36,

"backgroundColor": "#171a2fe6",

"outlineColor": "#2f313561",

"shadows": {

"x": 0,

"y": 5,

"blur": 40,

"color": "#171a2f80"

},

"expanded": {

"width": 480,

"height": 380,

},

"collapsed": {

"width": 220,

"height": 62,

}

};

const calcGuiSize = (val) => {

let size = val * dpi;

return size;

}

//Force Settings

const transformForce = (mesh, vec)=> {

let mymatrix = new BABYLON.Matrix();

mesh.rotationQuaternion.toRotationMatrix(mymatrix);

return BABYLON.Vector3.TransformNormal(vec, mymatrix);

};

const rotate = (mesh, direction, power) => {

mesh.physicsImpostor.setAngularVelocity(

// mesh.physicsImpostor.getAngularVelocity().add(

direction.scale(power)

// )

);

}

const translate = (mesh, direction, power) => {

mesh.physicsImpostor.setLinearVelocity(

// mesh.physicsImpostor.getLinearVelocity().add(

transformForce(mesh, direction.scale(power))

// )

);

// mesh.locallyTranslate( direction.scale(power) );

}

// keyboard

const keyPress = () => {

let enginePower = nozzleController.displays[0];

nozzleController.nozzles.forEach((jet, i) => {

if(jet > 0) {

nozzleController.shipsParticles[i].emitRate = 3500;

}

});

enginePower.children.forEach((displayIndicator, i) => {

// console.log(displayIndicator);

if(i > 0 && i < enginePower.children.length) {

displayIndicator.background = "#ABD436";

}

});

}

const keyRelase = () => {

stopEngine();

}

const onKeyDown = (event) => {

switch (event.keyCode) {

case 65: // a

nozzleController.nozzles = [0, 1, 0, 1];

keyPress();

break;

case 68: // d

nozzleController.nozzles = [1, 0, 1, 0];

keyPress();

break;

case 83: // s

nozzleController.nozzles = [0, 0, 1, 1];

keyPress();

break;

case 87: // w

nozzleController.nozzles = [1, 1, 0, 0];

keyPress();

break;

case 69: // q

nozzleController.nozzles = [0, 1, 1, 0];

keyPress();

break;

case 81: // e

nozzleController.nozzles = [1, 0, 0, 1];

keyPress();

break;

}

};

const meshNodeAnimate = () => {

let nozzles = JSON.stringify(nozzleController.get().nozzles);

let pulsation = nozzleController.get().pulsation;

// -

// ---

// 0----1

// ------

// 2----3

// ----

nozzleController.compas.rotation = mainVessel.absoluteRotationQuaternion.toEulerAngles().y;

if(nozzleController.groupMode === true) {

} else {

// move right

if (nozzles === JSON.stringify([0.5, 0, 0.5, 0]) ) {

translate(mainVessel, new BABYLON.Vector3(0, 0, 1), linearVelocity * linearThrottle);

return;

}

else if (nozzles === JSON.stringify([1, 0, 1, 0]) ) {

translate(mainVessel, new BABYLON.Vector3(0, 0, 1), linearVelocity * linearThrottle * 2);

return;

}

// move left

else if (nozzles === JSON.stringify([0, 0.5, 0, 0.5]) ) {

translate(mainVessel, new BABYLON.Vector3(0, 0, -1), linearVelocity * linearThrottle);

return;

}

else if (nozzles === JSON.stringify([0, 1, 0, 1]) ) {

translate(mainVessel, new BABYLON.Vector3(0, 0, -1), linearVelocity * linearThrottle * 2);

return;

}

// move back

else if (nozzles === JSON.stringify([0.5, 0.5, 0, 0]) ) {

translate(mainVessel, new BABYLON.Vector3(-1, 0, 0), linearVelocity * linearThrottle);

return;

} else if (nozzles === JSON.stringify([1, 1, 0, 0]) ) {

translate(mainVessel, new BABYLON.Vector3(-1, 0, 0), linearVelocity * linearThrottle * 2);

return;

}

// move forward

else if (nozzles === JSON.stringify([0, 0, 0.5, 0.5]) ) {

translate(mainVessel, new BABYLON.Vector3(1, 0, 0), linearVelocity * linearThrottle);

return;

} else if (nozzles === JSON.stringify([0, 0, 1, 1]) ) {

translate(mainVessel, new BABYLON.Vector3(1, 0, 0), linearVelocity * linearThrottle * 2);

return;

}

// rotate -

if (nozzles === JSON.stringify([0, 0.5, 0.5, 0]) ) {

rotate(mainVessel, new BABYLON.Vector3(0, 1, 0), angularVelocity);

return;

}

else if (nozzles === JSON.stringify([0, 1, 1, 0]) ) {

rotate(mainVessel, new BABYLON.Vector3(0, 1, 0), angularVelocity * 2);

return;

}

// rotate +

else if (nozzles === JSON.stringify([0.5, 0, 0, 0.5]) ) {

rotate(mainVessel, new BABYLON.Vector3(0, -1, 0), angularVelocity);

return;

}

else if (nozzles === JSON.stringify([1, 0, 0, 1]) ) {

rotate(mainVessel, new BABYLON.Vector3(0, -1, 0), angularVelocity * 2);

return;

}

if(pulsation === true) {

}

}

}

const onKeyUp = (event) => {

switch (event.keyCode) {

case 65: // a

nozzleController.nozzles = [0, 0, 0, 0];

keyRelase();

break;

case 68: // d

nozzleController.nozzles = [0, 0, 0, 0];

keyRelase();

break;

case 83: // s

nozzleController.nozzles = [0, 0, 0, 0];

keyRelase();

break;

case 87: // w

nozzleController.nozzles = [0, 0, 0, 0];

keyRelase();

break;

case 69: // q

nozzleController.nozzles = [0, 0, 0, 0];

keyRelase();

break;

case 81: // e

nozzleController.nozzles = [0, 0, 0, 0];

keyRelase();

break;

}

};

const config = {

"nozzlesPos": [

{

"name": "front_left",

"position": [6, 0, -2],

"rotation": [0, Math.PI, 0, 0],

},

{

"name": "front_right",

"position": [6, 0, 2],

"rotation": [0, 0, 0, 0],

},

{

"name": "back_left",

"position": [-6, 0, -2],

"rotation": [0, Math.PI, 0, 0],

},

{

"name": "back_right",

"position": [-6, 0, 2],

"rotation": [0, 0, 0, 0],

}

]

}

const linearVelocity = nozzleController.linearVelocity;

const linearThrottle = nozzleController.linearThrottle;

const angularVelocity = nozzleController.angularVelocity;

const throttle = nozzleController.throttle;

const dpi = window.devicePixelRatio;

let activeModel = null

let activeColor = null

let sprite1 = null

let timer1 = null

// createNozzles

const createNozzleParticles = (targetMesh, name) => {

let ps = new BABYLON.ParticleSystem("particles", 3500, scene);

ps.diffuseTexture = new BABYLON.Texture("https://aframe.io/images/showcase/supercraft.jpg", scene);

ps.emitter = targetMesh;

ps.name = name;

ps.minEmitBox = new BABYLON.Vector3(0, 0, 0);

ps.maxEmitBox = new BABYLON.Vector3(0, 0, 0);

ps.gravity = new BABYLON.Vector3(0, -0.2, 0);

ps.addSizeGradient(0, 0, 0.1);

ps.addSizeGradient(0.69, 1, 1);

ps.color1 = new BABYLON.Color4(0.88, 0.9, 0.9, 0.9);

ps.color2 = new BABYLON.Color4(0.78, 0.78, 0.89, 0.8);

ps.colorDead = new BABYLON.Color4(0.643, 0.643, 0.875, 0.0);

ps.minSize = 0.1;

ps.maxSize = 1.2;

ps.updateSpeed = 0.01;

ps.minScaleX = 1;

ps.maxScaleX = 2;

ps.minScaleY = 1;

ps.maxScaleY = 2;

ps.minLifeTime = 0.1;

ps.maxLifeTime = 1.5;

ps.emitRate = throttle * 500;

ps.blendMode = BABYLON.ParticleSystem.BLENDMODE_STANDARD;

ps.gravity = new BABYLON.Vector3(0, 0, 0);

ps.direction1 = new BABYLON.Vector3(0.25, 0, 1);

ps.direction2 = new BABYLON.Vector3(-0.25, 0, 1);

ps.minAngularSpeed = Math.PI / 8;

ps.minAngularSpeed = Math.PI / 8;

ps.minInitialRotation = Math.PI / 8;

ps.maxInitialRotation = Math.PI / 2;

ps.minEmitPower = 2;

ps.maxEmitPower = 10;

ps.start();

return ps;

}

const stopEngine = () => {

nozzleController.shipsParticles.forEach(particle => {

particle.emitRate = 0;

});

nozzleController.indicators.forEach(indicator => {

indicator.image.cellId = 0;

});

nozzleController.joysticks.forEach(joystick => {

joystick.children.forEach(button => {

if(button.metadata) {

button.metadata.state = 0;

button.image.cellId = 0;

}

});

});

let enginePower = nozzleController.displays[0];

enginePower.children.forEach(displayIndicator => {

displayIndicator.background = "transparent";

});

nozzleController.nozzles.forEach((jet, i) => {

nozzleController.set(i, 0, false);

});

let togglesPanelStyle = {

"width": 50,

"height": 300,

"top": -30,

"left": 400,

"backgroundColor": "transparent",

"toggle": {

"width": 50,

"height": 30,

"cornerRadius": 4,

"toggler": {

"width": 10,

"height": 30,

"cornerRadius": 4

},

"disabled":{

"backgroundColor": "#F65175",

"togglerBackgroundColor": "#E81F4B",

"shadow": {

"color": "#9c0324",

"x": 2,

"y": 0,

"blur": 10

}

},

"hover": {

"backgroundColor": "#E81F4B",

"togglerBackgroundColor": "#E81F4B",

"shadow": {

"color": "#E81F4B",

"x": 0,

"y": 0,

"blur": 0

}

},

"active": {

"backgroundColor": "#ABD436",

"togglerBackgroundColor": "#769D06",

"shadow": {

"color": "#769D06",

"x": -2,

"y": 0,

"blur": 10

}

}

}

};

nozzleController.toggles.forEach((toggle, i) => {

toggle.background = "#F65175";

toggle.metadata.state = false;

toggle.children[1].leftInPixels = 0;

toggle.children[1].shadowColor = togglesPanelStyle.toggle.disabled.shadow.color;

toggle.children[1].shadowOffsetX = togglesPanelStyle.toggle.disabled.shadow.x;

toggle.children[1].shadowOffsetY = togglesPanelStyle.toggle.disabled.shadow.y;

toggle.children[1].shadowBlur = togglesPanelStyle.toggle.disabled.shadow.blur;

toggle.children[1].background = togglesPanelStyle.toggle.disabled.togglerBackgroundColor;

});

nozzleController.groupMode = false;

// console.log(nozzleController)

}

const vecToLocal = (vector,mesh)=>{

let m = mesh.getWorldMatrix()

let v = BABYLON.Vector3.TransformCoordinates(vector,m)

return v

}

//Animation Camera position

const animateCameraToPosition = (speed, frameCount, newPos) =>{

let ease = new BABYLON.CubicEase();

ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);

//BABYLON.Animation.CreateAndStartAnimation = function(name, mesh, targetProperty, framePerSecond, totalFrame, from, to, loopMode);

BABYLON.Animation.CreateAndStartAnimation('a1', scene.activeCamera, 'position', speed, frameCount, scene.activeCamera.position, newPos, 0, ease);

//scene.activeCamera.setPosition(newPos);

}

const animateCameraTargetToPosition = (speed, frameCount, newPos)=> {

let ease = new BABYLON.CubicEase();

ease.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);

BABYLON.Animation.CreateAndStartAnimation('a2', scene.activeCamera, 'target', speed, frameCount, scene.activeCamera.target, newPos, 0, ease);

//scene.activeCamera.setTarget(newPos);

}

const onPointerDown = (e)=>{

let pickResult = scene.pick(scene.pointerX, scene.pointerY,

null, false, null, (p0, p1, p2, ray) => {

let p0p1 = p0.subtract(p1);

let p2p1 = p2.subtract(p1);

let normal = BABYLON.Vector3.Cross(p0p1, p2p1);

return (BABYLON.Vector3.Dot(ray.direction, normal) < 0);

});

if(pickResult.hit) {

if(["WhiteMesh"].includes(pickResult.pickedMesh.name)){

let oldPivotTranslation = pickResult.pickedMesh.getBoundingInfo().boundingBox.centerWorld.clone();

sprite1.position = new BABYLON.Vector3(oldPivotTranslation.x,oldPivotTranslation.y+2,oldPivotTranslation.z);

}

if(["box","sphere"].includes(pickResult.pickedMesh.name)){

// ** Disable all before apply Outline Render **

scene.meshes.forEach((mesh)=>{

if(mesh.name.indexOf("") != -1){

mesh.renderOverlay = false;

}

});

// Outline Render

let StudyArea = scene.getMeshByName(pickResult.pickedMesh.name);

StudyArea.renderOverlay = true;

let oldPivotTranslation = pickResult.pickedMesh.getBoundingInfo().boundingBox.centerWorld.clone();

sprite1.position = new BABYLON.Vector3(oldPivotTranslation.x,oldPivotTranslation.y+2,oldPivotTranslation.z);

let postion = new BABYLON.Vector3(oldPivotTranslation.x+10,oldPivotTranslation.y+10,oldPivotTranslation.z+10)

let speed1 = 500;

let speed2 = 500;

let frameCount = 200;

animateCameraToPosition(speed1, frameCount, postion);

animateCameraTargetToPosition(speed2, frameCount, oldPivotTranslation);

// 没有选中模型时的操作

if (!activeModel) {

activeModel = pickResult.pickedMesh;

if(pickResult.pickedMesh.material!=null){

activeColor = new BABYLON.Color3(

...Object.values(pickResult.pickedMesh.material.diffuseColor)

);

activeModel.material.diffuseColor = HexToRGB('#FFFFFF');

activeModel.material.albedoColor = HexToRGB('#FFFFFF');

}else{

activeColor = HexToRGB('#FFFFFF');

}

}

// 有选中模型,且不是连续选中的同一个

if (activeModel && activeModel != pickResult.pickedMesh) {

// 选中新模型

activeModel.material.diffuseColor = activeColor;

activeModel = pickResult.pickedMesh;

if(pickResult.pickedMesh.material!=null){

activeColor = new BABYLON.Color3(

...Object.values(pickResult.pickedMesh.material.diffuseColor)

);

activeModel.material.diffuseColor = HexToRGB('#F0F0F0');

activeModel.material.albedoColor = HexToRGB('#F0F0F0');

}else{

activeColor = HexToRGB('#FFFFFF');

}

}

}

} else if (activeModel) {

activeModel.material.diffuseColor = activeColor;

activeModel.material.albedoColor = activeColor;

activeModel = null;

activeColor = null;

}

}

const onDispose = ()=>{

scene.onPrePointerObservable.removeCallback(onPointerDown());

}

//十六进颜色制转 BABYLON.Color3

const HexToRGB = (hexColor)=>{

if (typeof (hexColor) == 'undefined' || hexColor.length < 6) {

return new BABYLON.Color3(1, 0, 1);

}

let hex = (hexColor.charAt(0) == "#") ? hexColor.substring(1, 7) : hexColor;

var r = parseInt(hex.substring(0, 2), 16) / 255;

var g = parseInt(hex.substring(2, 4), 16) / 255;

var b = parseInt(hex.substring(4, 6), 16) / 255;

return new BABYLON.Color3(r, g, b);

}

// rgb(0,0,0) ’ 转 BABYLON.Color3

const RGBToNum = (color)=>{

// 颜色转换

let numSrt = (color.substring(4, color.length - 1)).split(",");

let newColor = new BABYLON.Color3(

Number.parseInt(numSrt[0]) / 255 -0.2,

Number.parseInt(numSrt[1]) / 255 -0.2,

Number.parseInt(numSrt[2]) / 255 -0.2

);

}

const resetSphere = (ball, position)=>{

ball.position = new BABYLON.Vector3(0, 0, 0) // position

}

let MeshesCollisionList = []

let camera = null

//创建场景

const createScene = ()=> {

// 实例化场景

const scene = new BABYLON.Scene(engine)

engine.setHardwareScalingLevel(1 / window.devicePixelRatio);

scene.clearColor = new BABYLON.Color3.Black;

//环境光

scene.ambientColor = new BABYLON.Color3(1, 1, 1);

const alpha = Math.PI/4;

const beta = Math.PI/3;

const radius = 8;

const target = new BABYLON.Vector3(0, 0, 0);

// 创建相机并添加到canvas 最常用的是两种相机: UniversalCamera, 可以自由移动和转向的相机,兼容三端

//const camera = new BABYLON.UniversalCamera(

// 'FCamera',

// new BABYLON.Vector3(0, 0, 0),

// scene

//)

//camera.attachControl(canvas, true)

// 以及ArcRotateCamera, 360度“围观”一个场景用的相机

// 参数分别是alpha, beta, radius, target 和 scene

camera = new BABYLON.ArcRotateCamera("Camera", alpha, beta, radius, target, scene)

camera.attachControl(canvas, true)

// 将照相机添加到场景活动相机

scene.activeCameras.push(camera);

// 向场景添加光源

// 点光源

const light1 = new BABYLON.PointLight("pointLight", new BABYLON.Vector3(1, 10, 1), scene)

// 所有光源都有散射光 diffuse 和 镜面光specular,diffuse 代表光的主体颜色,specular 代表照在物体上高亮部分的颜色

light1.diffuse = new BABYLON.Color3(0, 0, 1)

light1.specular = new BABYLON.Color3(1, 0, 0)

// 方向光

const light2 = new BABYLON.DirectionalLight("DirectionalLight", new BABYLON.Vector3(0, -1, 0), scene)

// 聚光灯 参数用于描述一个锥形的光束

const light3 = new BABYLON.SpotLight("spotLight", new BABYLON.Vector3(0, 30, -10), new BABYLON.Vector3(0, -1, 0), Math.PI / 3, 2, scene)

// 环境光 模拟一种四处都被光照射到的环境

const light4 = new BABYLON.HemisphericLight("HemiLight", new BABYLON.Vector3(0, 1, 0), scene)

// 只有环境光有groundColor,代表地上反射光的颜色

light4.groundColor = new BABYLON.Color3(0, 1, 0)

//使用多个光源达到复合效果,点光源+环境光

// 创建一个球,材质

sphere = BABYLON.MeshBuilder.CreateSphere("sphere", { diameter: 1.2 }, scene)

const sphereTexture = new BABYLON.Texture("https://aframe.io/images/showcase/soundboxing.jpg", scene);

sphereTexture.vScale = 1;

sphereTexture.uScale = 1;

let sphereMaterial = new BABYLON.StandardMaterial("sphereMaterial", scene);

sphereMaterial.diffuseTexture = sphereTexture;

sphere.material = sphereMaterial;

sphere.position = new BABYLON.Vector3(0, 1, 0);

//自发光

sphere.material.emissiveColor = new BABYLON.Color3(1, 1, 1);

//环境光

sphere.ambientColor = new BABYLON.Color3(1, 1, 1);

//散射光

sphere.diffuseColor = new BABYLON.Color3(1, 1, 1);

//镜面光

sphere.specularColor = new BABYLON.Color3(0, 0, 0);

// 创建一个盒子,材质

box = BABYLON.MeshBuilder.CreateBox("box", {diameter: 1 }, scene);

const boxTexture = new BABYLON.Texture("https://aframe.io/images/showcase/musicalforest.jpg", scene);

boxTexture.vScale = 1;//在v(y)轴方向上同样长度内由五块原材质拼接

boxTexture.uScale = 1;//在u(x)轴方向上同样长度内由五块原材质拼接

let boxMaterial = new BABYLON.StandardMaterial("boxMaterial", scene);

boxMaterial.bumpTexture = new BABYLON.Texture("https://aframe.io/images/showcase/moonrider.jpg", scene);

//凹凸反向 凹凸映射是补色渲染技术(Phong Shading Technique)的一项扩展,只是在补色渲染里,多边形表面上的法线将被改变,这个向量用来计算该点的亮度

boxMaterial.invertNormalMapX = true;

boxMaterial.invertNormalMapY = true

// 透明度映射

boxMaterial.opacityTexture = new BABYLON.Texture("https://aframe.io/images/showcase/insidemusic.jpg", scene);

// 细节贴图可用于基础表面信息上覆盖第二组纹理

//boxMaterial.detailMap.texture = new BABYLON.Texture("https://aframe.io/images/showcase/beatsaverviewer.jpg", scene);

//boxMaterial.detailMap.isEnabled = true;

//boxMaterial.detailMap.diffuseBlendLevel = 0.1;

//boxMaterial.detailMap.bumpLevel = 1;

//boxMaterial.detailMap.roughnessBlendLevel = 0.25;

boxMaterial.alpha = 0.9;//材质透明度设置

boxMaterial.diffuseTexture = boxTexture;

box.material = boxMaterial;

box.position = new BABYLON.Vector3(0, 1, 0)

box.actionManager = new BABYLON.ActionManager(scene);

box.actionManager.registerAction(new BABYLON.ExecuteCodeAction(

BABYLON.ActionManager.OnLeftPickTrigger,

(event)=> {

const sourceBox = event.meshUnderPointer;

console.log('current click model %o', sourceBox.name);

//let pickResult = scene.pick(event.offsetX, event.offsetY);

//box.position = pickResult.ray.direction

// Set camera

//camera.lockedTarget = sourceBox;

}

));

// 创建一个地面,材质

ground = BABYLON.MeshBuilder.CreateGround("gournd", {

width: 31,

height: 31,

depth: 10,

subdivisions: 1

});

ground.position = new BABYLON.Vector3(0, 0, 0);

ground.visibility = false;

BABYLON.NodeMaterial.ParseFromSnippetAsync("RHFLCX#11", scene).then(nodeMaterial => {

//ground.material = nodeMaterial;

const groundTexture = new BABYLON.Texture("https://aframe.io/images/showcase/supercraft.jpg", this.scene);

groundTexture.vScale = 1;

groundTexture.uScale = 1;

let groundMaterial = new BABYLON.StandardMaterial("groundMaterial", scene);

groundMaterial.diffuseTexture = groundTexture;

ground.material = groundMaterial;

ground.visibility = true;

let scaleFactor = nodeMaterial.getBlockByName("ScaleFactor");

scaleFactor.value = -0.5;

scene.debugLayer.show({ showExplorer: true, embedMode: true }).then(() => {

scene.debugLayer.select(ground.material, "INPUTS");

});

});

// Skybox天空盒子

let skybox = BABYLON.Mesh.CreateBox("skyBox", 5000.0, scene);

let skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);

skyboxMaterial.backFaceCulling = false;

skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("https://www.babylonjs.com/assets/skybox/TropicalSunnyDay", scene);

skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;

skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);

skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);

skyboxMaterial.disableLighting = true;

skybox.material = skyboxMaterial;

let hdrTexture = BABYLON.CubeTexture.CreateFromPrefilteredData("https://www.babylonjs-playground.com/textures/environment.dds", scene);

let currentSkybox = scene.createDefaultSkybox(hdrTexture, true);

const waterMaterial = new BABYLON.WaterMaterial("waterMaterial", scene, new BABYLON.Vector2(1024, 1024));

waterMaterial.backFaceCulling = true;

waterMaterial.bumpTexture = new BABYLON.Texture("https://www.babylonjs.com/assets/waterbump.png", scene);

//设置风力,决定了水波运动速度

waterMaterial.windForce = -5

waterMaterial.windDirection = new BABYLON.Vector2(1, 1);设置风向 x y

//设置水的波浪高度

waterMaterial.waveHeight = 0.1

//设置水纹理高度 凸起高度

waterMaterial.bumpHeight = 0.1

//设置波浪的长度

waterMaterial.waveLength = 0.3

//设置波浪运行速度

waterMaterial.waveSpeed = 5

//设置水的颜色

waterMaterial.waterColor = new BABYLON.Color3(0,0,0.6)

waterMaterial.colorBlendFactor = 0;

//自发光

waterMaterial.emissiveColor = new BABYLON.Color3(0,0,0.5)

//环境光

waterMaterial.ambientColor = new BABYLON.Color3(1, 1, 1);

//散射光

waterMaterial.diffuseColor = new BABYLON.Color3(1, 1, 1);

//镜面光

waterMaterial.specularColor = new BABYLON.Color3(0, 0, 0);

waterMaterial.alpha = 0.9;

// 冻结材质,优化渲染速度

waterMaterial.freeze();

//增加地板到水材质中,才能正常显示水 把需要透射在水面的东西添加到render层里

waterMaterial.addToRenderList(ground)

waterMaterial.addToRenderList(box)

waterMaterial.addToRenderList(sphere)

//修改水面大小、位置

const waterMesh = BABYLON.MeshBuilder.CreateGround("waterMesh", {

width: 20,

height: 10,

subdivisions: 1

});

waterMesh.position = new BABYLON.Vector3(0, 0, 0)

waterMesh.material = waterMaterial

// 创建一个物理世界

const world = new OIMO.World({

timestep: 1/60, // 物理世界的刷新频率,通常为60帧每秒,之前在项目中为了提高性能,降低cpu的消耗,将此值改为1/30即30帧每秒,导致原先计算准确的物理碰撞发生计算不灵敏的情况,尤其是在开启重力感应后,和重力感应相关的物理碰撞计算,建议尽量维持60帧,除非你所需要计算的内容对精度要求真的不高,只要模拟个大概。

iterations: 8,

broadphase: 2, // 1 brute force, 2 sweep and prune, 3 volume tree 碰撞检测算法类型,1 暴力算法 2 及/或扫掠裁减(sweep and prune)算法,这是目前市面上最常见的碰撞检测算法 3 volume tree算法(中文名不详)目前探究发现,使用2号算法是最稳定的,但是所要花费的性能也是最高的

worldscale: 1, // scale full world 物理世界的缩放

random: true, // randomize sample 是否使用随机样本

info: false, // calculate statistic or not

gravity: [0,-9.8,0] // 重力加速度的大小,x,y,z三个方向可设置

});

//向物理世界添加物体

/*const bodySphere = world.add({

type:'sphere1', // type of shape : sphere, box, cylinder

size:[1,1,1], // size of shape

pos:[0,0,0], // start position in degree

rot:[0,0,90], // start rotation in degree

move:true, // dynamic or statique

density: 1,

friction: 0.2,

restitution: 0.2,

belongsTo: 1, // The bits of the collision groups to which the shape belongs.

collidesWith: 0xffffffff // The bits of the collision groups with which the shape collides.

});*/

enableCameraCollision(camera, scene);

MeshesCollisionList.push(sphere)

MeshesCollisionList.push(box)

MeshesCollisionList.push(ground)

//启用物理引擎 Babylon.js 目前对两个物理引擎实施了界面: Cannon.js (cannonjs.org) 和 Oimo.js (github.com/lo-th/Oimo.js)。

scene.enablePhysics(new BABYLON.Vector3(0, -9.8, 0), new BABYLON.OimoJSPlugin());

//定义替身 Physics Add Imposters

box.physicsImpostor = new BABYLON.PhysicsImpostor(

box,

BABYLON.PhysicsEngine.BoxImpostor, {

mass: 500,

friction: 0.5,

restitution: 0.5

},

scene

);

sphere.physicsImpostor = new BABYLON.PhysicsImpostor(

sphere,

BABYLON.PhysicsEngine.SphereImpostor, {

mass: 500,

friction: 0.5,

restitution: 0.5

},

scene

);

ground.physicsImpostor = new BABYLON.PhysicsImpostor(

ground,

BABYLON.PhysicsImpostor.MeshImpostor,

{

mass: 0

},

scene

);

//移动球体 第一个变量是冲力的矢量,此处为 Y 轴上 10 个单位,重置场景时会转接。

// 第二个变量指定将作用力应用于对象的位置。

ball = sphere;

sphere.applyImpulse(new BABYLON.Vector3(0, 10, 0), box.getAbsolutePosition());

return scene

}

const scene = createScene()

//loadModels(file).load();

const nozzlesAssembly = new BABYLON.TransformNode("emitters_assembly");

config.nozzlesPos.forEach(nozzle => {

let nozzleNode = new BABYLON.TransformNode(nozzle.name);

nozzleNode.parent = nozzlesAssembly;

let boxWhite = BABYLON.MeshBuilder.CreateBox("", {height:1,width:1,depth:1,diameter: 1}, scene);

boxWhite.parent = nozzleNode;

nozzleNode.position = new BABYLON.Vector3(

nozzle.position[0],

nozzle.position[1],

nozzle.position[2]

);

nozzleNode.rotation = new BABYLON.Vector3(

nozzle.rotation[0],

nozzle.rotation[1],

nozzle.rotation[2]

);

let ps = createNozzleParticles(boxWhite, nozzle.name);

nozzleController.shipsParticles.push(ps);

//定义替身 Physics Add Imposters

boxWhite.physicsImpostor = new BABYLON.PhysicsImpostor(

boxWhite,

BABYLON.PhysicsEngine.BoxImpostor, {

mass: 500,

friction: 0.5,

restitution: 0.1

},

scene

);

MeshesCollisionList.push(boxWhite);

});

let mainVessel = scene.getMeshByName("box");

nozzlesAssembly.parent = mainVessel;

let compasBack = new BABYLON.GUI.Image("but", "https://aframe.io/images/showcase/soundboxing.jpg");

compasBack.widthInPixels = calcGuiSize(compasStyle.width);

compasBack.heightInPixels = calcGuiSize(compasStyle.height);

compasBack.cellId = 0;

compasBack.cellHeight = 300;

compasBack.cellWidth = 300;

compasBack.rotation = 0;

nozzleController.compas = compasBack;

let controlPanel = new BABYLON.GUI.Rectangle("controlPanel");

controlPanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;

controlPanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_BOTTOM;

controlPanel.widthInPixels = calcGuiSize(controlPanelStyles.collapsed.width);

controlPanel.heightInPixels = calcGuiSize(controlPanelStyles.collapsed.height);

controlPanel.topInPixels = calcGuiSize(controlPanelStyles.top);

controlPanel.leftInPixels = calcGuiSize(controlPanelStyles.left);

controlPanel.cornerRadius = calcGuiSize(controlPanelStyles.cornerRadius);

controlPanel.isPointerBlocker = true;

controlPanel.background = controlPanelStyles.backgroundColor;

controlPanel.color = controlPanelStyles.outlineColor;

controlPanel.thickness = 0;

controlPanel.shadowColor = controlPanelStyles.shadows.color;

controlPanel.shadowOffsetX = controlPanelStyles.shadows.x;

controlPanel.shadowOffsetY = controlPanelStyles.shadows.y;

controlPanel.shadowBlur = controlPanelStyles.shadows.blur;

displays.forEach((display, i) => {

let displayPanel = new BABYLON.GUI.Rectangle(display.name);

displayPanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;

displayPanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_BOTTOM;

displayPanel.widthInPixels = calcGuiSize(display.width);

displayPanel.heightInPixels = calcGuiSize(display.height);

displayPanel.topInPixels = calcGuiSize(-70);

displayPanel.leftInPixels = display.width * dpi * i + 30;

displayPanel.thickness = 0;

displayPanel.paddingLeftInPixels = calcGuiSize(5);

displayPanel.paddingRightInPixels = calcGuiSize(5);

let title = new BABYLON.GUI.TextBlock("title");

title.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_BOTTOM;

title.text = display.text;

title.color = "white";

title.topInPixels = calcGuiSize(-26);

title.fontSizeInPixels = calcGuiSize(9);

title.heightInPixels = calcGuiSize(14);

displayPanel.addControl(title);

display.elements.forEach((element, i) => {

let rect = new BABYLON.GUI.Rectangle("rect");

rect.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;

rect.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_BOTTOM;

rect.widthInPixels = calcGuiSize(8);

rect.heightInPixels = calcGuiSize(20);

rect.leftInPixels = (rect.widthInPixels + 5) * i + dpi;

rect.topInPixels = calcGuiSize(-6);

displayPanel.addControl(rect);

});

controlPanel.addControl(displayPanel);

nozzleController.displays.push(displayPanel);

});

const spriteManager = new BABYLON.SpriteManager("spriteManager", Assets.sprites.ufo_png.path, 1, {width: 128, height: 76}, scene);

sprite1 = new BABYLON.Sprite("sprite1", spriteManager);

sprite1.size = 1;

sprite1.playAnimation(0, 16, true, 300);

sprite1.position = new BABYLON.Vector3(0,3,0);

//Babylonjs也提供了自己的事件,使用observable监听 html原生事件

scene.onBeforePhysicsObservable.add(meshNodeAnimate);

canvas.addEventListener('keydown', onKeyDown, false);

canvas.addEventListener('keyup', onKeyUp, false);

//Babylon.js 提供了一系列观察者 observable,用于监听事件

//scene.onBeforeRenderObservable 每帧监听

//scene.onPointerObservable 监听点击/拖拽/手势/键盘等

scene.onKeyboardObservable.add(kbInfo => {

switch (kbInfo.type) {

case BABYLON.KeyboardEventTypes.KEYDOWN:

console.log('按键: ', kbInfo.event.key);

break;

case BABYLON.KeyboardEventTypes.KEYUP:

console.log('抬起按键: ', kbInfo.event.keyCode);

break;

}

});

scene.onPointerObservable.add(pointerInfo => {

switch (pointerInfo.type) {

case BABYLON.PointerEventTypes.POINTERDOWN:

console.log('按下');

break;

case BABYLON.PointerEventTypes.POINTERUP:

console.log('抬起');

break;

case BABYLON.PointerEventTypes.POINTERMOVE:

console.log('移动');

break;

case BABYLON.PointerEventTypes.POINTERWHEEL:

console.log('滚轮');

break;

case BABYLON.PointerEventTypes.POINTERTAP:

console.log('点击');

break;

case BABYLON.PointerEventTypes.POINTERDOUBLETAP:

console.log('双击');

sprite1.size = 0;

break;

}

});

let strengthCounter = 5;

let counterUp = function() {

strengthCounter += 0.5;

}

// This function will be called on pointer-down events.

scene.onPointerDown = function(evt, pickInfo) {

// Start increasing the strength counter.

scene.registerBeforeRender(counterUp);

}

// This function will be called on pointer-up events.

scene.onPointerUp = function(evt, pickInfo) {

if (pickInfo.hit) {

// Calculate the direction using the picked point and the sphere's position.

let direction = pickInfo.pickedPoint.subtract(sphere.position);

// To be able to apply scaling correctly, normalization is required.

direction = direction.normalize();

// Give it a bit more power (scale the normalized direction).

let impulse = direction.scale(0.5);

// Apply the impulse (and throw the sphere).

sphere.applyImpulse(impulse, new BABYLON.Vector3(0, 0, 0));

}

// Stop increasing the strength counter.

scene.unregisterBeforeRender(counterUp);

// Calculate throw direction.

let direction = pickInfo.pickedPoint.subtract(sphere.position).normalize();

// Impulse is multiplied with the strength counter with max value of 25.

let impulse = direction.scale(Math.min(strengthCounter, 25));

// Apply the impulse.

sphere.applyImpulse(impulse, sphere.getAbsolutePosition());

// Register a function that will run before each render call

scene.registerBeforeRender(function ballCheck() {

if (sphere.intersectsMesh(ground, false)) {

// The sphere intersects with the ground, stop checking its position.

scene.unregisterBeforeRender(ballCheck);

// Let the ball roll around for 1.5 seconds before resetting it.

setTimeout(()=> {

let newPosition = scene.cameras[0].position.clone();

newPosition.x /= 100;

newPosition.y /= 100;

newPosition.z /= 100;

resetSphere(sphere, newPosition);

}, 1000);

}

});

strengthCounter = 5;

}

let leftBox = BABYLON.MeshBuilder.CreateBox("box", {height:5,width:30,depth:1,diameter: 1}, scene);

// Create a material for the scoreboard.

leftBox.material = new BABYLON.StandardMaterial("scoradboardMat", scene);

leftBox.position = new BABYLON.Vector3(0,2,15);

let rightBox = BABYLON.MeshBuilder.CreateBox("box", {height:5,width:30,depth:1,diameter: 1}, scene);

// Create a material for the scoreboard.

rightBox.material = new BABYLON.StandardMaterial("scoradboardMat", scene);

rightBox.position = new BABYLON.Vector3(0,2,-15);

let frontBox = BABYLON.MeshBuilder.CreateBox("box", {height:5,width:1,depth:30,diameter: 1}, scene);

// Create a material for the scoreboard.

frontBox.material = new BABYLON.StandardMaterial("scoradboardMat", scene);

frontBox.position = new BABYLON.Vector3(15,2,0);

let backBox = BABYLON.MeshBuilder.CreateBox("box", {height:5,width:1,depth:30,diameter: 1}, scene);

// Create a material for the scoreboard.

backBox.material = new BABYLON.StandardMaterial("scoradboardMat", scene);

backBox.position = new BABYLON.Vector3(-15,2,0);

//定义替身 Physics Add Imposters

leftBox.physicsImpostor = new BABYLON.PhysicsImpostor(

leftBox,

BABYLON.PhysicsEngine.BoxImpostor, {

mass: 0

},

scene

);

MeshesCollisionList.push(leftBox);

//定义替身 Physics Add Imposters

rightBox.physicsImpostor = new BABYLON.PhysicsImpostor(

rightBox,

BABYLON.PhysicsEngine.BoxImpostor, {

mass: 0

},

scene

);

MeshesCollisionList.push(rightBox);

//定义替身 Physics Add Imposters

frontBox.physicsImpostor = new BABYLON.PhysicsImpostor(

frontBox,

BABYLON.PhysicsEngine.BoxImpostor, {

mass: 0

},

scene

);

MeshesCollisionList.push(frontBox);

//定义替身 Physics Add Imposters

backBox.physicsImpostor = new BABYLON.PhysicsImpostor(

backBox,

BABYLON.PhysicsEngine.BoxImpostor, {

mass: 0

},

scene

);

MeshesCollisionList.push(backBox);

//启用网格碰撞检查

enableMeshesCollision(MeshesCollisionList);

// 掷球时创建跟随照相机

let followCamera = new BABYLON.FollowCamera("followCamera", ball.position, scene);

followCamera.radius = 1.5; // How far from the object should the camera be.

followCamera.heightOffset = 0.8; // How high above the object should it be.

followCamera.rotationOffset = 180; // The camera's angle. here - from behind.

followCamera.cameraAcceleration = 0.5 // Acceleration of the camera.

followCamera.maxCameraSpeed = 20; // The camera's max speed.

// 创建一个可获得球位置,而不是其旋转状态的跟随对象

// Create a very small simple mesh.

let followObject = BABYLON.Mesh.CreateBox("followObject", 0.5, scene);

// Set its position to be the same as the ball's position.

followObject.position = ball.position;

// 照相机将跟随与球一起移动的跟随照相机。

followCamera.target = followObject;

// 照相机需要的最后一个配置是视区。每个照相机可以定义将使用的屏幕空间。

// let viewport = new BABYLON.Viewport(xPosition, yPosition, width, height);

followCamera.viewport = new BABYLON.Viewport(0.0, 0.0, 1, 1);

scene.onPrePointerObservable.add(onPointerDown,BABYLON.PointerEventTypes.POINTERDOWN);

scene.onDispose = onDispose();

// 确保场景的每帧更新渲染,循环loop

engine.runRenderLoop( ()=> {

scene.render()

})

// 更新引擎尺寸resize

window.addEventListener("resize", ()=> {

engine.resize()

})

</script>

</body>

</html>

09f03304a60f4657b0dea9e9d0b9f69c.png

d5d8c9bf571f4cfab0815b5bee7399d6.png

ccbe3323f3664e2ba4cb3146725039b8.png

参见:

游戏开发 - Babylon.js: 用于改进您的首个 Web 游戏的高级功能 | Microsoft Learn

Babylon.js 简介和 WebXR 教程 - Mixed Reality | Microsoft Learn

一步一步的引导你学会babylon引擎

Babylon.js Playground



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。