|
@@ -84,6 +84,12 @@ var BABYLON;
|
|
|
*/
|
|
|
this.compileShadowGenerators = false;
|
|
|
/**
|
|
|
+ * Defines if the Alpha blended materials are only applied as coverage.
|
|
|
+ * If false, (default) The luminance of each pixel will reduce its opacity to simulate the behaviour of most physical materials.
|
|
|
+ * If true, no extra effects are applied to transparent pixels.
|
|
|
+ */
|
|
|
+ this.transparencyAsCoverage = false;
|
|
|
+ /**
|
|
|
* Function called before loading a url referenced by the asset.
|
|
|
*/
|
|
|
this.preprocessUrlAsync = function (url) { return Promise.resolve(url); };
|
|
@@ -394,6 +400,7 @@ var BABYLON;
|
|
|
loader.compileMaterials = this.compileMaterials;
|
|
|
loader.useClipPlane = this.useClipPlane;
|
|
|
loader.compileShadowGenerators = this.compileShadowGenerators;
|
|
|
+ loader.transparencyAsCoverage = this.transparencyAsCoverage;
|
|
|
loader.preprocessUrlAsync = this.preprocessUrlAsync;
|
|
|
loader.onMeshLoadedObservable.add(function (mesh) { return _this.onMeshLoadedObservable.notifyObservers(mesh); });
|
|
|
loader.onTextureLoadedObservable.add(function (texture) { return _this.onTextureLoadedObservable.notifyObservers(texture); });
|
|
@@ -1974,6 +1981,7 @@ var BABYLON;
|
|
|
this.compileMaterials = false;
|
|
|
this.useClipPlane = false;
|
|
|
this.compileShadowGenerators = false;
|
|
|
+ this.transparencyAsCoverage = false;
|
|
|
this.preprocessUrlAsync = function (url) { return Promise.resolve(url); };
|
|
|
this.onMeshLoadedObservable = new BABYLON.Observable();
|
|
|
this.onTextureLoadedObservable = new BABYLON.Observable();
|
|
@@ -2868,6 +2876,12 @@ var BABYLON;
|
|
|
*/
|
|
|
this.compileShadowGenerators = false;
|
|
|
/**
|
|
|
+ * Defines if the Alpha blended materials are only applied as coverage.
|
|
|
+ * If false, (default) The luminance of each pixel will reduce its opacity to simulate the behaviour of most physical materials.
|
|
|
+ * If true, no extra effects are applied to transparent pixels.
|
|
|
+ */
|
|
|
+ this.transparencyAsCoverage = false;
|
|
|
+ /**
|
|
|
* Function called before loading a url referenced by the asset.
|
|
|
*/
|
|
|
this.preprocessUrlAsync = function (url) { return Promise.resolve(url); };
|
|
@@ -2991,12 +3005,12 @@ var BABYLON;
|
|
|
GLTFLoader.prototype._loadAsync = function (nodes, scene, data, rootUrl, onProgress) {
|
|
|
var _this = this;
|
|
|
return Promise.resolve().then(function () {
|
|
|
- _this._loadExtensions();
|
|
|
_this._babylonScene = scene;
|
|
|
_this._rootUrl = rootUrl;
|
|
|
_this._progressCallback = onProgress;
|
|
|
_this._state = BABYLON.GLTFLoaderState.LOADING;
|
|
|
_this._loadData(data);
|
|
|
+ _this._loadExtensions();
|
|
|
_this._checkExtensions();
|
|
|
var promises = new Array();
|
|
|
if (nodes) {
|
|
@@ -3041,15 +3055,6 @@ var BABYLON;
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
- GLTFLoader.prototype._loadExtensions = function () {
|
|
|
- for (var _i = 0, _a = GLTFLoader._ExtensionNames; _i < _a.length; _i++) {
|
|
|
- var name_1 = _a[_i];
|
|
|
- var extension = GLTFLoader._ExtensionFactories[name_1](this);
|
|
|
- this._extensions[name_1] = extension;
|
|
|
- this.onExtensionLoadedObservable.notifyObservers(extension);
|
|
|
- }
|
|
|
- this.onExtensionLoadedObservable.clear();
|
|
|
- };
|
|
|
GLTFLoader.prototype._loadData = function (data) {
|
|
|
this._gltf = data.json;
|
|
|
this._setupData();
|
|
@@ -3100,6 +3105,15 @@ var BABYLON;
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
+ GLTFLoader.prototype._loadExtensions = function () {
|
|
|
+ for (var _i = 0, _a = GLTFLoader._ExtensionNames; _i < _a.length; _i++) {
|
|
|
+ var name_1 = _a[_i];
|
|
|
+ var extension = GLTFLoader._ExtensionFactories[name_1](this);
|
|
|
+ this._extensions[name_1] = extension;
|
|
|
+ this.onExtensionLoadedObservable.notifyObservers(extension);
|
|
|
+ }
|
|
|
+ this.onExtensionLoadedObservable.clear();
|
|
|
+ };
|
|
|
GLTFLoader.prototype._checkExtensions = function () {
|
|
|
if (this._gltf.extensionsRequired) {
|
|
|
for (var _i = 0, _a = this._gltf.extensionsRequired; _i < _a.length; _i++) {
|
|
@@ -3913,7 +3927,7 @@ var BABYLON;
|
|
|
GLTFLoader.prototype._getDefaultMaterial = function (drawMode) {
|
|
|
var babylonMaterial = this._defaultBabylonMaterials[drawMode];
|
|
|
if (!babylonMaterial) {
|
|
|
- babylonMaterial = this._createMaterial(BABYLON.PBRMaterial, "__gltf_default", drawMode);
|
|
|
+ babylonMaterial = this._createMaterial("__gltf_default", drawMode);
|
|
|
babylonMaterial.transparencyMode = BABYLON.PBRMaterial.PBRMATERIAL_OPAQUE;
|
|
|
babylonMaterial.metallic = 1;
|
|
|
babylonMaterial.roughness = 1;
|
|
@@ -3965,7 +3979,7 @@ var BABYLON;
|
|
|
if (!babylonData) {
|
|
|
var promises = new Array();
|
|
|
var name_3 = material.name || "materialSG_" + material._index;
|
|
|
- var babylonMaterial = this._createMaterial(BABYLON.PBRMaterial, name_3, babylonDrawMode);
|
|
|
+ var babylonMaterial = this._createMaterial(name_3, babylonDrawMode);
|
|
|
promises.push(this._loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
|
|
|
promises.push(this._loadMaterialMetallicRoughnessPropertiesAsync(context, material, babylonMaterial));
|
|
|
this.onMaterialLoadedObservable.notifyObservers(babylonMaterial);
|
|
@@ -3981,10 +3995,13 @@ var BABYLON;
|
|
|
return babylonData.loaded;
|
|
|
};
|
|
|
/** @hidden */
|
|
|
- GLTFLoader.prototype._createMaterial = function (type, name, drawMode) {
|
|
|
- var babylonMaterial = new type(name, this._babylonScene);
|
|
|
+ GLTFLoader.prototype._createMaterial = function (name, drawMode) {
|
|
|
+ var babylonMaterial = new BABYLON.PBRMaterial(name, this._babylonScene);
|
|
|
babylonMaterial.sideOrientation = this._babylonScene.useRightHandedSystem ? BABYLON.Material.CounterClockWiseSideOrientation : BABYLON.Material.ClockWiseSideOrientation;
|
|
|
babylonMaterial.fillMode = drawMode;
|
|
|
+ babylonMaterial.enableSpecularAntiAliasing = true;
|
|
|
+ babylonMaterial.useRadianceOverAlpha = !this.transparencyAsCoverage;
|
|
|
+ babylonMaterial.useSpecularOverAlpha = !this.transparencyAsCoverage;
|
|
|
return babylonMaterial;
|
|
|
};
|
|
|
/** @hidden */
|
|
@@ -4630,6 +4647,114 @@ var BABYLON;
|
|
|
(function (GLTF2) {
|
|
|
var Extensions;
|
|
|
(function (Extensions) {
|
|
|
+ var NAME = "MSFT_minecraftMesh";
|
|
|
+ /** @hidden */
|
|
|
+ var MSFT_minecraftMesh = /** @class */ (function (_super) {
|
|
|
+ __extends(MSFT_minecraftMesh, _super);
|
|
|
+ function MSFT_minecraftMesh(loader) {
|
|
|
+ var _this = _super.call(this, loader) || this;
|
|
|
+ _this.name = NAME;
|
|
|
+ _this._onMaterialLoaded = function (material) {
|
|
|
+ if (material.needAlphaBlending()) {
|
|
|
+ material.forceDepthWrite = true;
|
|
|
+ material.separateCullingPass = true;
|
|
|
+ }
|
|
|
+ material.backFaceCulling = material.forceDepthWrite;
|
|
|
+ material.twoSidedLighting = true;
|
|
|
+ };
|
|
|
+ var meshes = loader._gltf.meshes;
|
|
|
+ if (meshes && meshes.length) {
|
|
|
+ for (var _i = 0, meshes_1 = meshes; _i < meshes_1.length; _i++) {
|
|
|
+ var mesh = meshes_1[_i];
|
|
|
+ if (mesh && mesh.extras && mesh.extras.MSFT_minecraftMesh) {
|
|
|
+ _this._loader.onMaterialLoadedObservable.add(_this._onMaterialLoaded);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return _this;
|
|
|
+ }
|
|
|
+ return MSFT_minecraftMesh;
|
|
|
+ }(GLTF2.GLTFLoaderExtension));
|
|
|
+ Extensions.MSFT_minecraftMesh = MSFT_minecraftMesh;
|
|
|
+ GLTF2.GLTFLoader._Register(NAME, function (loader) { return new MSFT_minecraftMesh(loader); });
|
|
|
+ })(Extensions = GLTF2.Extensions || (GLTF2.Extensions = {}));
|
|
|
+ })(GLTF2 = BABYLON.GLTF2 || (BABYLON.GLTF2 = {}));
|
|
|
+})(BABYLON || (BABYLON = {}));
|
|
|
+
|
|
|
+//# sourceMappingURL=MSFT_minecraftMesh.js.map
|
|
|
+
|
|
|
+/// <reference path="../../../../../dist/preview release/babylon.d.ts"/>
|
|
|
+var __extends = (this && this.__extends) || (function () {
|
|
|
+ var extendStatics = Object.setPrototypeOf ||
|
|
|
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
|
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
|
+ return function (d, b) {
|
|
|
+ extendStatics(d, b);
|
|
|
+ function __() { this.constructor = d; }
|
|
|
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
|
+ };
|
|
|
+})();
|
|
|
+var BABYLON;
|
|
|
+(function (BABYLON) {
|
|
|
+ var GLTF2;
|
|
|
+ (function (GLTF2) {
|
|
|
+ var Extensions;
|
|
|
+ (function (Extensions) {
|
|
|
+ var NAME = "MSFT_sRGBFactors";
|
|
|
+ /** @hidden */
|
|
|
+ var MSFT_sRGBFactors = /** @class */ (function (_super) {
|
|
|
+ __extends(MSFT_sRGBFactors, _super);
|
|
|
+ function MSFT_sRGBFactors(loader) {
|
|
|
+ var _this = _super.call(this, loader) || this;
|
|
|
+ _this.name = NAME;
|
|
|
+ _this._onMaterialLoaded = function (material) {
|
|
|
+ if (!material.albedoTexture) {
|
|
|
+ material.albedoColor.toLinearSpaceToRef(material.albedoColor);
|
|
|
+ }
|
|
|
+ if (!material.reflectivityTexture) {
|
|
|
+ material.reflectivityColor.toLinearSpaceToRef(material.reflectivityColor);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ var materials = loader._gltf.materials;
|
|
|
+ if (materials && materials.length) {
|
|
|
+ for (var _i = 0, materials_1 = materials; _i < materials_1.length; _i++) {
|
|
|
+ var material = materials_1[_i];
|
|
|
+ if (material && material.extras && material.extras.MSFT_sRGBFactors) {
|
|
|
+ _this._loader.onMaterialLoadedObservable.add(_this._onMaterialLoaded);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return _this;
|
|
|
+ }
|
|
|
+ return MSFT_sRGBFactors;
|
|
|
+ }(GLTF2.GLTFLoaderExtension));
|
|
|
+ Extensions.MSFT_sRGBFactors = MSFT_sRGBFactors;
|
|
|
+ GLTF2.GLTFLoader._Register(NAME, function (loader) { return new MSFT_sRGBFactors(loader); });
|
|
|
+ })(Extensions = GLTF2.Extensions || (GLTF2.Extensions = {}));
|
|
|
+ })(GLTF2 = BABYLON.GLTF2 || (BABYLON.GLTF2 = {}));
|
|
|
+})(BABYLON || (BABYLON = {}));
|
|
|
+
|
|
|
+//# sourceMappingURL=MSFT_sRGBFactors.js.map
|
|
|
+
|
|
|
+/// <reference path="../../../../../dist/preview release/babylon.d.ts"/>
|
|
|
+var __extends = (this && this.__extends) || (function () {
|
|
|
+ var extendStatics = Object.setPrototypeOf ||
|
|
|
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
|
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
|
+ return function (d, b) {
|
|
|
+ extendStatics(d, b);
|
|
|
+ function __() { this.constructor = d; }
|
|
|
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
|
+ };
|
|
|
+})();
|
|
|
+var BABYLON;
|
|
|
+(function (BABYLON) {
|
|
|
+ var GLTF2;
|
|
|
+ (function (GLTF2) {
|
|
|
+ var Extensions;
|
|
|
+ (function (Extensions) {
|
|
|
var NAME = "KHR_draco_mesh_compression";
|
|
|
/**
|
|
|
* [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression)
|
|
@@ -4749,7 +4874,7 @@ var BABYLON;
|
|
|
if (!babylonData) {
|
|
|
var promises = new Array();
|
|
|
var name_1 = material.name || "materialSG_" + material._index;
|
|
|
- var babylonMaterial = _this._loader._createMaterial(BABYLON.PBRMaterial, name_1, babylonDrawMode);
|
|
|
+ var babylonMaterial = _this._loader._createMaterial(name_1, babylonDrawMode);
|
|
|
promises.push(_this._loader._loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
|
|
|
promises.push(_this._loadSpecularGlossinessPropertiesAsync(extensionContext, material, extension, babylonMaterial));
|
|
|
_this._loader.onMaterialLoadedObservable.notifyObservers(babylonMaterial);
|
|
@@ -4836,7 +4961,7 @@ var BABYLON;
|
|
|
var babylonData = material._babylonData[babylonDrawMode];
|
|
|
if (!babylonData) {
|
|
|
var name_1 = material.name || "materialUnlit_" + material._index;
|
|
|
- var babylonMaterial = _this._loader._createMaterial(BABYLON.PBRMaterial, name_1, babylonDrawMode);
|
|
|
+ var babylonMaterial = _this._loader._createMaterial(name_1, babylonDrawMode);
|
|
|
babylonMaterial.unlit = true;
|
|
|
var promise = _this._loadUnlitPropertiesAsync(context, material, babylonMaterial);
|
|
|
_this._loader.onMaterialLoadedObservable.notifyObservers(babylonMaterial);
|
|
@@ -4887,8 +5012,6 @@ var BABYLON;
|
|
|
})(GLTF2 = BABYLON.GLTF2 || (BABYLON.GLTF2 = {}));
|
|
|
})(BABYLON || (BABYLON = {}));
|
|
|
|
|
|
-//# sourceMappingURL=KHR_materials_unlit.js.map
|
|
|
-
|
|
|
/// <reference path="../../../../../dist/preview release/babylon.d.ts"/>
|
|
|
var __extends = (this && this.__extends) || (function () {
|
|
|
var extendStatics = Object.setPrototypeOf ||
|
|
@@ -4992,5 +5115,3 @@ var BABYLON;
|
|
|
})(Extensions = GLTF2.Extensions || (GLTF2.Extensions = {}));
|
|
|
})(GLTF2 = BABYLON.GLTF2 || (BABYLON.GLTF2 = {}));
|
|
|
})(BABYLON || (BABYLON = {}));
|
|
|
-
|
|
|
-//# sourceMappingURL=KHR_lights.js.map
|