@cesium/engine 9.1.0 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/ThirdParty/Workers/pako_deflate.min.js +108 -210
- package/Build/ThirdParty/Workers/pako_inflate.min.js +466 -568
- package/Build/ThirdParty/Workers/z-worker-pako.js +54 -104
- package/Build/Workers/{chunk-7LPEGKOF.js → chunk-26NE4LRW.js} +7 -7
- package/Build/Workers/{chunk-PK7TEP3J.js → chunk-26XJDV3D.js} +15 -15
- package/Build/Workers/{chunk-G7CJQKKD.js → chunk-2TRB253J.js} +7 -7
- package/Build/Workers/{chunk-FOZQIHZK.js → chunk-3PV5HQ2R.js} +6 -6
- package/Build/Workers/{chunk-MWYZ64MH.js → chunk-3VDHTBY5.js} +10 -10
- package/Build/Workers/{chunk-XHLDDE65.js → chunk-4RG6WOXH.js} +10 -10
- package/Build/Workers/{chunk-WWP3I7R5.js → chunk-5OK5JFDP.js} +5 -5
- package/Build/Workers/{chunk-34DGOKCO.js → chunk-7HLZRYGD.js} +7 -7
- package/Build/Workers/{chunk-NI2R52QD.js → chunk-7PFZ4Z7C.js} +7 -7
- package/Build/Workers/{chunk-XWML5Y7N.js → chunk-A5CSB5ZE.js} +9 -9
- package/Build/Workers/{chunk-IBXGK4WV.js → chunk-AROLUUGS.js} +2 -2
- package/Build/Workers/{chunk-POLFRINT.js → chunk-BBBTT36L.js} +14 -14
- package/Build/Workers/{chunk-3RZK5NNV.js → chunk-BNT2SNWU.js} +4 -4
- package/Build/Workers/{chunk-CE6GTZ4I.js → chunk-CFBGPZU6.js} +9 -9
- package/Build/Workers/{chunk-YLZTCEBJ.js → chunk-CVCVMOQA.js} +1 -1
- package/Build/Workers/{chunk-U4IMCOF5.js → chunk-DIVFF6DK.js} +2 -2
- package/Build/Workers/{chunk-UAJEGIWA.js → chunk-EJZVBTX4.js} +6 -6
- package/Build/Workers/{chunk-UCPPWV64.js → chunk-EODIOQ35.js} +1 -1
- package/Build/Workers/{chunk-4PHPQRSH.js → chunk-ETC45PHH.js} +5 -6
- package/Build/Workers/{chunk-PS6AEMBR.js → chunk-G7IAO7CW.js} +7 -7
- package/Build/Workers/{chunk-LW7WGHEU.js → chunk-GOQEANLM.js} +13 -13
- package/Build/Workers/{chunk-I5TDPPC4.js → chunk-GUFV24F4.js} +7 -7
- package/Build/Workers/{chunk-4AJGCQFX.js → chunk-GX2BWBN2.js} +13 -13
- package/Build/Workers/{chunk-C5CE4OG6.js → chunk-GX5LMUGZ.js} +5 -5
- package/Build/Workers/{chunk-QKF7XXEQ.js → chunk-I6CW7ZE5.js} +7 -7
- package/Build/Workers/{chunk-BDUJXBVF.js → chunk-IF2OX6R4.js} +3 -5
- package/Build/Workers/{chunk-ZDP32RQI.js → chunk-IXYFH7DV.js} +95 -155
- package/Build/Workers/{chunk-2CSEEWHN.js → chunk-K5F23SZO.js} +6 -6
- package/Build/Workers/{chunk-7VZNXIKG.js → chunk-KTZK2UDR.js} +7 -7
- package/Build/Workers/{chunk-66E3H2KU.js → chunk-LZFFO4KB.js} +12 -12
- package/Build/Workers/{chunk-JI2445T5.js → chunk-OYP23VAL.js} +11 -11
- package/Build/Workers/{chunk-ZWPIM77Q.js → chunk-PHT53MCH.js} +11 -11
- package/Build/Workers/{chunk-6HCAQOVK.js → chunk-PUQR43HZ.js} +6 -6
- package/Build/Workers/{chunk-GIFJ77E4.js → chunk-QZIWFSRM.js} +4 -4
- package/Build/Workers/{chunk-LVJCR7DH.js → chunk-RDR4KVPA.js} +17 -17
- package/Build/Workers/{chunk-4KIUON73.js → chunk-RRUO4QEK.js} +4 -4
- package/Build/Workers/{chunk-ZC4AGBZK.js → chunk-RTIT7UDN.js} +2 -2
- package/Build/Workers/{chunk-AOFMPKUB.js → chunk-SC3TBKST.js} +4 -4
- package/Build/Workers/{chunk-S4XDCPKD.js → chunk-TDIGL45B.js} +1 -1
- package/Build/Workers/{chunk-RL73GOEF.js → chunk-TP4FFUAH.js} +2 -2
- package/Build/Workers/{chunk-WFICTTOE.js → chunk-U2LSTOMA.js} +2 -2
- package/Build/Workers/{chunk-RR7EOKGZ.js → chunk-U6MTSO6A.js} +47 -84
- package/Build/Workers/{chunk-PEABJLCK.js → chunk-UICVDDCQ.js} +1 -1
- package/Build/Workers/{chunk-WEGCQ5DY.js → chunk-UKJCFXVV.js} +6 -6
- package/Build/Workers/{chunk-V7JB576Q.js → chunk-UYKG3UFK.js} +5 -5
- package/Build/Workers/{chunk-3S2MFY4B.js → chunk-W4OS542B.js} +13 -13
- package/Build/Workers/{chunk-CYAJYEKW.js → chunk-WHDEZSAL.js} +6 -6
- package/Build/Workers/{chunk-TMMOULW3.js → chunk-WOYQB5HM.js} +5 -5
- package/Build/Workers/{chunk-PWF3YJJ5.js → chunk-WP3LCUOE.js} +13 -13
- package/Build/Workers/{chunk-AOIKO5Y7.js → chunk-YGNQJ4YI.js} +5 -5
- package/Build/Workers/{chunk-A6NCZSL3.js → chunk-YGTWKLFY.js} +17 -17
- package/Build/Workers/{chunk-KPY4F4BW.js → chunk-ZHJDE6JN.js} +6 -6
- package/Build/Workers/combineGeometry.js +22 -22
- package/Build/Workers/createBoxGeometry.js +16 -16
- package/Build/Workers/createBoxOutlineGeometry.js +14 -14
- package/Build/Workers/createCircleGeometry.js +24 -24
- package/Build/Workers/createCircleOutlineGeometry.js +17 -17
- package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
- package/Build/Workers/createCorridorGeometry.js +27 -27
- package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
- package/Build/Workers/createCylinderGeometry.js +18 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipseGeometry.js +24 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
- package/Build/Workers/createEllipsoidGeometry.js +17 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
- package/Build/Workers/createFrustumGeometry.js +16 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
- package/Build/Workers/createGeometry.js +22 -22
- package/Build/Workers/createGroundPolylineGeometry.js +20 -20
- package/Build/Workers/createPlaneGeometry.js +14 -14
- package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
- package/Build/Workers/createPolygonGeometry.js +30 -30
- package/Build/Workers/createPolygonOutlineGeometry.js +28 -28
- package/Build/Workers/createPolylineGeometry.js +23 -23
- package/Build/Workers/createPolylineVolumeGeometry.js +29 -29
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
- package/Build/Workers/createRectangleGeometry.js +25 -25
- package/Build/Workers/createRectangleOutlineGeometry.js +18 -18
- package/Build/Workers/createSimplePolylineGeometry.js +21 -21
- package/Build/Workers/createSphereGeometry.js +17 -17
- package/Build/Workers/createSphereOutlineGeometry.js +16 -16
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
- package/Build/Workers/createVectorTileGeometries.js +22 -22
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +20 -20
- package/Build/Workers/createVectorTilePolylines.js +13 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
- package/Build/Workers/createVerticesFromHeightmap.js +20 -20
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
- package/Build/Workers/createWallGeometry.js +22 -22
- package/Build/Workers/createWallOutlineGeometry.js +21 -21
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +12 -19
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/transcodeKTX2.js +43 -79
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/Math.js +0 -5
- package/Source/Core/TaskProcessor.js +19 -3
- package/Source/Core/sampleTerrain.js +3 -3
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Billboard.js +2 -2
- package/Source/Scene/GltfLoader.js +458 -435
- package/Source/Scene/GltfLoaderUtil.js +3 -12
- package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +23 -7
- package/Source/Scene/GltfStructuralMetadataLoader.js +11 -9
- package/Source/Scene/Label.js +1 -1
- package/Source/Scene/Model/AlphaPipelineStage.js +1 -1
- package/Source/Scene/Model/GeometryPipelineStage.js +15 -43
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +7 -0
- package/Source/Scene/Model/LightingPipelineStage.js +2 -4
- package/Source/Scene/Model/MaterialPipelineStage.js +346 -29
- package/Source/Scene/Model/Model.js +8 -3
- package/Source/Scene/Model/ModelUtility.js +3 -0
- package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -6
- package/Source/Scene/ModelComponents.js +169 -1
- package/Source/Scene/PickDepth.js +23 -15
- package/Source/Scene/ResourceCache.js +41 -50
- package/Source/Scene/ResourceCacheKey.js +41 -53
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -8
- package/Source/Shaders/Builtin/Functions/maximumComponent.glsl +21 -0
- package/Source/Shaders/Builtin/Functions/maximumComponent.js +23 -0
- package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +108 -44
- package/Source/Shaders/Builtin/Functions/pbrLighting.js +108 -44
- package/Source/Shaders/Builtin/Structs/modelMaterial.glsl +14 -0
- package/Source/Shaders/Builtin/Structs/modelMaterial.js +14 -0
- package/Source/Shaders/GlobeFS.glsl +1 -1
- package/Source/Shaders/GlobeFS.js +1 -1
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +211 -133
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +212 -133
- package/Source/Shaders/Model/LightingStageFS.glsl +113 -48
- package/Source/Shaders/Model/LightingStageFS.js +113 -48
- package/Source/Shaders/Model/MaterialStageFS.glsl +399 -137
- package/Source/Shaders/Model/MaterialStageFS.js +399 -137
- package/index.d.ts +3 -3
- package/index.js +203 -206
- package/package.json +1 -1
- package/Source/Shaders/Builtin/Functions/defaultPbrMaterial.glsl +0 -16
- package/Source/Shaders/Builtin/Functions/defaultPbrMaterial.js +0 -18
- package/Source/Shaders/Builtin/Functions/pbrMetallicRoughnessMaterial.glsl +0 -37
- package/Source/Shaders/Builtin/Functions/pbrMetallicRoughnessMaterial.js +0 -39
- package/Source/Shaders/Builtin/Functions/pbrSpecularGlossinessMaterial.glsl +0 -30
- package/Source/Shaders/Builtin/Functions/pbrSpecularGlossinessMaterial.js +0 -32
- package/Source/Shaders/Builtin/Structs/pbrParameters.glsl +0 -16
- package/Source/Shaders/Builtin/Structs/pbrParameters.js +0 -18
|
@@ -35,9 +35,7 @@ const GltfLoaderUtil = {};
|
|
|
35
35
|
*/
|
|
36
36
|
GltfLoaderUtil.getImageIdFromTexture = function (options) {
|
|
37
37
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
38
|
-
const gltf = options
|
|
39
|
-
const textureId = options.textureId;
|
|
40
|
-
const supportedImageFormats = options.supportedImageFormats;
|
|
38
|
+
const { gltf, textureId, supportedImageFormats } = options;
|
|
41
39
|
|
|
42
40
|
//>>includeStart('debug', pragmas.debug);
|
|
43
41
|
Check.typeOf.object("options.gltf", gltf);
|
|
@@ -73,12 +71,7 @@ GltfLoaderUtil.getImageIdFromTexture = function (options) {
|
|
|
73
71
|
*/
|
|
74
72
|
GltfLoaderUtil.createSampler = function (options) {
|
|
75
73
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
76
|
-
const gltf = options
|
|
77
|
-
const textureInfo = options.textureInfo;
|
|
78
|
-
const compressedTextureNoMipmap = defaultValue(
|
|
79
|
-
options.compressedTextureNoMipmap,
|
|
80
|
-
false
|
|
81
|
-
);
|
|
74
|
+
const { gltf, textureInfo, compressedTextureNoMipmap = false } = options;
|
|
82
75
|
|
|
83
76
|
//>>includeStart('debug', pragmas.debug);
|
|
84
77
|
Check.typeOf.object("options.gltf", gltf);
|
|
@@ -140,9 +133,7 @@ const defaultScale = new Cartesian2(1.0, 1.0);
|
|
|
140
133
|
*/
|
|
141
134
|
GltfLoaderUtil.createModelTextureReader = function (options) {
|
|
142
135
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
143
|
-
const textureInfo = options
|
|
144
|
-
const channels = options.channels;
|
|
145
|
-
const texture = options.texture;
|
|
136
|
+
const { textureInfo, channels, texture } = options;
|
|
146
137
|
|
|
147
138
|
//>>includeStart('debug', pragmas.debug);
|
|
148
139
|
Check.typeOf.object("options.textureInfo", textureInfo);
|
|
@@ -33,10 +33,11 @@ function forEachTextureInMaterial(material, handler) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
const { extensions } = material;
|
|
37
|
+
if (defined(extensions)) {
|
|
37
38
|
// Spec gloss extension
|
|
38
39
|
const pbrSpecularGlossiness =
|
|
39
|
-
|
|
40
|
+
extensions.KHR_materials_pbrSpecularGlossiness;
|
|
40
41
|
if (defined(pbrSpecularGlossiness)) {
|
|
41
42
|
if (defined(pbrSpecularGlossiness.diffuseTexture)) {
|
|
42
43
|
const textureInfo = pbrSpecularGlossiness.diffuseTexture;
|
|
@@ -54,13 +55,28 @@ function forEachTextureInMaterial(material, handler) {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
|
|
58
|
+
// Specular extension
|
|
59
|
+
const specular = extensions.KHR_materials_specular;
|
|
60
|
+
if (defined(specular)) {
|
|
61
|
+
const { specularTexture, specularColorTexture } = specular;
|
|
62
|
+
if (defined(specularTexture)) {
|
|
63
|
+
const value = handler(specularTexture.index, specularTexture);
|
|
64
|
+
if (defined(value)) {
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (defined(specularColorTexture)) {
|
|
69
|
+
const value = handler(specularColorTexture.index, specularColorTexture);
|
|
70
|
+
if (defined(value)) {
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
57
76
|
// Materials common extension (may be present in models converted from glTF 1.0)
|
|
58
|
-
const materialsCommon =
|
|
77
|
+
const materialsCommon = extensions.KHR_materials_common;
|
|
59
78
|
if (defined(materialsCommon) && defined(materialsCommon.values)) {
|
|
60
|
-
const diffuse = materialsCommon.values
|
|
61
|
-
const ambient = materialsCommon.values.ambient;
|
|
62
|
-
const emission = materialsCommon.values.emission;
|
|
63
|
-
const specular = materialsCommon.values.specular;
|
|
79
|
+
const { diffuse, ambient, emission, specular } = materialsCommon.values;
|
|
64
80
|
if (defined(diffuse) && defined(diffuse.index)) {
|
|
65
81
|
const value = handler(diffuse.index, diffuse);
|
|
66
82
|
if (defined(value)) {
|
|
@@ -34,15 +34,17 @@ import ResourceLoaderState from "./ResourceLoaderState.js";
|
|
|
34
34
|
*/
|
|
35
35
|
function GltfStructuralMetadataLoader(options) {
|
|
36
36
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
const {
|
|
38
|
+
gltf,
|
|
39
|
+
extension,
|
|
40
|
+
extensionLegacy,
|
|
41
|
+
gltfResource,
|
|
42
|
+
baseResource,
|
|
43
|
+
supportedImageFormats,
|
|
44
|
+
frameState,
|
|
45
|
+
cacheKey,
|
|
46
|
+
asynchronous = true,
|
|
47
|
+
} = options;
|
|
46
48
|
|
|
47
49
|
//>>includeStart('debug', pragmas.debug);
|
|
48
50
|
Check.typeOf.object("options.gltf", gltf);
|
package/Source/Scene/Label.js
CHANGED
|
@@ -91,7 +91,7 @@ function parseFont(label) {
|
|
|
91
91
|
* Initialization options for the Label constructor
|
|
92
92
|
*
|
|
93
93
|
* @property {Cartesian3} position The cartesian position of the label.
|
|
94
|
-
* @property {
|
|
94
|
+
* @property {*} [id] A user-defined object to return when the label is picked with {@link Scene#pick}.
|
|
95
95
|
* @property {boolean} [show=true] Determines if this label will be shown.
|
|
96
96
|
* @property {string} [text] A string specifying the text of the label.
|
|
97
97
|
* @property {string} [font='30px sans-serif'] A string specifying the font used to draw this label. Fonts are specified using the same syntax as the CSS 'font' property.
|
|
@@ -63,8 +63,7 @@ GeometryPipelineStage.process = function (
|
|
|
63
63
|
primitive,
|
|
64
64
|
frameState
|
|
65
65
|
) {
|
|
66
|
-
const shaderBuilder = renderResources
|
|
67
|
-
const model = renderResources.model;
|
|
66
|
+
const { shaderBuilder, model } = renderResources;
|
|
68
67
|
|
|
69
68
|
// These structs are similar, though the fragment shader version has a couple
|
|
70
69
|
// additional fields.
|
|
@@ -125,8 +124,7 @@ GeometryPipelineStage.process = function (
|
|
|
125
124
|
);
|
|
126
125
|
|
|
127
126
|
// .pnts point clouds store sRGB color rather than linear color
|
|
128
|
-
|
|
129
|
-
if (modelType === ModelType.TILE_PNTS) {
|
|
127
|
+
if (model.type === ModelType.TILE_PNTS) {
|
|
130
128
|
shaderBuilder.addDefine(
|
|
131
129
|
"HAS_SRGB_COLOR",
|
|
132
130
|
undefined,
|
|
@@ -246,8 +244,7 @@ function processAttribute(
|
|
|
246
244
|
}
|
|
247
245
|
|
|
248
246
|
function addSemanticDefine(shaderBuilder, attribute) {
|
|
249
|
-
const semantic = attribute
|
|
250
|
-
const setIndex = attribute.setIndex;
|
|
247
|
+
const { semantic, setIndex } = attribute;
|
|
251
248
|
switch (semantic) {
|
|
252
249
|
case VertexAttributeSemantic.NORMAL:
|
|
253
250
|
shaderBuilder.addDefine("HAS_NORMALS");
|
|
@@ -272,19 +269,11 @@ function addAttributeToRenderResources(
|
|
|
272
269
|
attributeIndex,
|
|
273
270
|
modifyFor2D
|
|
274
271
|
) {
|
|
275
|
-
const quantization = attribute
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
type = quantization.type;
|
|
280
|
-
componentDatatype = quantization.componentDatatype;
|
|
281
|
-
} else {
|
|
282
|
-
type = attribute.type;
|
|
283
|
-
componentDatatype = attribute.componentDatatype;
|
|
284
|
-
}
|
|
272
|
+
const { quantization, semantic, setIndex } = attribute;
|
|
273
|
+
const { type, componentDatatype } = defined(quantization)
|
|
274
|
+
? quantization
|
|
275
|
+
: attribute;
|
|
285
276
|
|
|
286
|
-
const semantic = attribute.semantic;
|
|
287
|
-
const setIndex = attribute.setIndex;
|
|
288
277
|
if (
|
|
289
278
|
semantic === VertexAttributeSemantic.FEATURE_ID &&
|
|
290
279
|
setIndex >= renderResources.featureIdVertexAttributeSetIndex
|
|
@@ -337,18 +326,10 @@ function addMatrixAttributeToRenderResources(
|
|
|
337
326
|
attributeIndex,
|
|
338
327
|
columnCount
|
|
339
328
|
) {
|
|
340
|
-
const quantization = attribute
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
type = quantization.type;
|
|
345
|
-
componentDatatype = quantization.componentDatatype;
|
|
346
|
-
} else {
|
|
347
|
-
type = attribute.type;
|
|
348
|
-
componentDatatype = attribute.componentDatatype;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
const normalized = attribute.normalized;
|
|
329
|
+
const { quantization, normalized } = attribute;
|
|
330
|
+
const { type, componentDatatype } = defined(quantization)
|
|
331
|
+
? quantization
|
|
332
|
+
: attribute;
|
|
352
333
|
|
|
353
334
|
// componentCount is either 4, 9 or 16
|
|
354
335
|
const componentCount = AttributeType.getNumberOfComponents(type);
|
|
@@ -435,7 +416,7 @@ function addAttributeDeclaration(shaderBuilder, attributeInfo, modifyFor2D) {
|
|
|
435
416
|
function updateAttributesStruct(shaderBuilder, attributeInfo, use2D) {
|
|
436
417
|
const vsStructId = GeometryPipelineStage.STRUCT_ID_PROCESSED_ATTRIBUTES_VS;
|
|
437
418
|
const fsStructId = GeometryPipelineStage.STRUCT_ID_PROCESSED_ATTRIBUTES_FS;
|
|
438
|
-
const variableName = attributeInfo
|
|
419
|
+
const { variableName, glslType } = attributeInfo;
|
|
439
420
|
|
|
440
421
|
if (variableName === "tangentMC") {
|
|
441
422
|
// The w component of the tangent is only used for computing the bitangent,
|
|
@@ -451,16 +432,8 @@ function updateAttributesStruct(shaderBuilder, attributeInfo, use2D) {
|
|
|
451
432
|
shaderBuilder.addStructField(vsStructId, "vec3", "normalMC");
|
|
452
433
|
shaderBuilder.addStructField(fsStructId, "vec3", "normalEC");
|
|
453
434
|
} else {
|
|
454
|
-
shaderBuilder.addStructField(
|
|
455
|
-
|
|
456
|
-
attributeInfo.glslType,
|
|
457
|
-
variableName
|
|
458
|
-
);
|
|
459
|
-
shaderBuilder.addStructField(
|
|
460
|
-
fsStructId,
|
|
461
|
-
attributeInfo.glslType,
|
|
462
|
-
variableName
|
|
463
|
-
);
|
|
435
|
+
shaderBuilder.addStructField(vsStructId, glslType, variableName);
|
|
436
|
+
shaderBuilder.addStructField(fsStructId, glslType, variableName);
|
|
464
437
|
}
|
|
465
438
|
|
|
466
439
|
if (variableName === "positionMC" && use2D) {
|
|
@@ -501,8 +474,7 @@ function updateInitializeAttributesFunction(
|
|
|
501
474
|
}
|
|
502
475
|
|
|
503
476
|
function updateSetDynamicVaryingsFunction(shaderBuilder, attributeInfo) {
|
|
504
|
-
const semantic = attributeInfo.attribute
|
|
505
|
-
const setIndex = attributeInfo.attribute.setIndex;
|
|
477
|
+
const { semantic, setIndex } = attributeInfo.attribute;
|
|
506
478
|
if (defined(semantic) && !defined(setIndex)) {
|
|
507
479
|
// positions, normals, and tangents are handled statically in
|
|
508
480
|
// GeometryStageVS
|
|
@@ -8,6 +8,13 @@ const ImageBasedLightingPipelineStage = {
|
|
|
8
8
|
name: "ImageBasedLightingPipelineStage", // Helps with debugging
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Add shader code, uniforms, and defines related to image based lighting
|
|
13
|
+
* @param {ModelRenderResources} renderResources
|
|
14
|
+
* @param {Model} model
|
|
15
|
+
* @param {FrameState} frameState
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
11
18
|
ImageBasedLightingPipelineStage.process = function (
|
|
12
19
|
renderResources,
|
|
13
20
|
model,
|
|
@@ -28,9 +28,7 @@ const LightingPipelineStage = {
|
|
|
28
28
|
* @private
|
|
29
29
|
*/
|
|
30
30
|
LightingPipelineStage.process = function (renderResources, primitive) {
|
|
31
|
-
const model = renderResources
|
|
32
|
-
const lightingOptions = renderResources.lightingOptions;
|
|
33
|
-
const shaderBuilder = renderResources.shaderBuilder;
|
|
31
|
+
const { model, lightingOptions, shaderBuilder } = renderResources;
|
|
34
32
|
|
|
35
33
|
if (defined(model.lightColor)) {
|
|
36
34
|
shaderBuilder.addDefine(
|
|
@@ -53,7 +51,7 @@ LightingPipelineStage.process = function (renderResources, primitive) {
|
|
|
53
51
|
|
|
54
52
|
// The lighting model is always set by the material. However, custom shaders
|
|
55
53
|
// can override this.
|
|
56
|
-
const lightingModel = lightingOptions
|
|
54
|
+
const { lightingModel } = lightingOptions;
|
|
57
55
|
|
|
58
56
|
if (lightingModel === LightingModel.PBR) {
|
|
59
57
|
shaderBuilder.addDefine(
|