@rtzh/engine 0.0.9 → 0.0.11
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/zip-web-worker.js +586 -480
- package/Build/Workers/chunk-3CD4WIF4.js +101 -0
- package/Build/Workers/chunk-3PWX65TL.js +398 -0
- package/Build/Workers/chunk-4CQDMEZY.js +2058 -0
- package/Build/Workers/chunk-4GZLJPDW.js +8366 -0
- package/Build/Workers/chunk-5WKGRIN6.js +114 -0
- package/Build/Workers/chunk-6BNIWSFA.js +940 -0
- package/Build/Workers/chunk-6TWMNB7Q.js +455 -0
- package/Build/Workers/chunk-72Q33KL6.js +280 -0
- package/Build/Workers/chunk-74HENCNJ.js +171 -0
- package/Build/Workers/chunk-7C2MOK27.js +57 -0
- package/Build/Workers/chunk-7EFYX4FL.js +642 -0
- package/Build/Workers/chunk-7RAUHLDW.js +497 -0
- package/Build/Workers/chunk-B3FJJGCH.js +305 -0
- package/Build/Workers/chunk-BIJHMMCD.js +138 -0
- package/Build/Workers/chunk-CGAHG2LR.js +163 -0
- package/Build/Workers/chunk-CQ5PWUMS.js +37 -0
- package/Build/Workers/chunk-CQB3KRGK.js +198 -0
- package/Build/Workers/chunk-DHWZGIOA.js +139 -0
- package/Build/Workers/chunk-EDFDPOY6.js +55 -0
- package/Build/Workers/chunk-F2BQY3GT.js +1317 -0
- package/Build/Workers/chunk-FARHIBOA.js +75 -0
- package/Build/Workers/chunk-G6PDJHNG.js +476 -0
- package/Build/Workers/chunk-GCPD37SU.js +1054 -0
- package/Build/Workers/chunk-GDHDJK32.js +1045 -0
- package/Build/Workers/chunk-GNGGEDZK.js +352 -0
- package/Build/Workers/chunk-GNGZG6C6.js +162 -0
- package/Build/Workers/chunk-HFCJLXTG.js +55 -0
- package/Build/Workers/chunk-HKII76UV.js +1800 -0
- package/Build/Workers/chunk-HWUHUN7Z.js +387 -0
- package/Build/Workers/chunk-I3VVEQQ6.js +439 -0
- package/Build/Workers/chunk-IKMU6YHA.js +288 -0
- package/Build/Workers/chunk-J4PNHKWO.js +2719 -0
- package/Build/Workers/chunk-JFLJS4QU.js +1443 -0
- package/Build/Workers/chunk-JJWMDUOJ.js +44 -0
- package/Build/Workers/chunk-JOQFYJZ2.js +692 -0
- package/Build/Workers/chunk-JUJONRWD.js +788 -0
- package/Build/Workers/chunk-MCJRXFRL.js +102 -0
- package/Build/Workers/chunk-MLL4AAXV.js +1460 -0
- package/Build/Workers/chunk-MPCZC3G6.js +414 -0
- package/Build/Workers/chunk-MPHEIDPB.js +629 -0
- package/Build/Workers/chunk-NXZJKIYD.js +97 -0
- package/Build/Workers/chunk-OD7UYXFV.js +352 -0
- package/Build/Workers/chunk-R2AFDOIY.js +778 -0
- package/Build/Workers/chunk-RBLCJVK6.js +73 -0
- package/Build/Workers/chunk-SCF2OVAZ.js +219 -0
- package/Build/Workers/chunk-SJX7UJNW.js +241 -0
- package/Build/Workers/chunk-SZQC2TUH.js +368 -0
- package/Build/Workers/chunk-TAWVKT4B.js +58 -0
- package/Build/Workers/chunk-U267N6IJ.js +299 -0
- package/Build/Workers/chunk-UZXJSLDO.js +3514 -0
- package/Build/Workers/chunk-VP2OAU4C.js +124 -0
- package/Build/Workers/chunk-XMIENZET.js +256 -0
- package/Build/Workers/chunk-XXD3TQVI.js +837 -0
- package/Build/Workers/chunk-YCTK62TY.js +1483 -0
- package/Build/Workers/chunk-YWSB7PZP.js +511 -0
- package/Build/Workers/chunk-ZVXETFPZ.js +1067 -0
- package/Build/Workers/chunk-ZXZTWDTN.js +682 -0
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +22 -22
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +22 -22
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/README.md +69 -9
- package/Source/Renderer/AutomaticUniforms.js +76 -1
- package/Source/Renderer/UniformState.js +108 -1
- package/Source/Scene/Cesium3DTileset.js +4157 -4157
- package/Source/Scene/Model/BarycentricWireframePipelineStage.js +462 -414
- package/Source/Scene/Model/LightingPipelineStage.js +17 -2
- package/Source/Scene/Model/MaterialPipelineStage.js +50 -0
- package/Source/Scene/Model/Model.js +3646 -3631
- package/Source/Scene/Model/Model3DTileContent.js +568 -568
- package/Source/Scene/Model/ModelRuntimePrimitive.js +391 -391
- package/Source/Scene/Model/WireframePipelineStage.js +122 -122
- package/Source/Scene/PointLight.js +36 -0
- package/Source/Scene/Scene.js +9 -1
- package/Source/Shaders/Model/LightingStageFS.glsl +33 -0
- package/Source/Shaders/Model/LightingStageFS.js +33 -0
- package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
- package/Source/ThirdParty/zip-module.wasm +0 -0
- package/index.d.ts +809 -779
- package/index.js +11 -10
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import defined from "../../Core/defined.js";
|
|
2
2
|
import ShaderDestination from "../../Renderer/ShaderDestination.js";
|
|
3
3
|
import LightingStageFS from "../../Shaders/Model/LightingStageFS.js";
|
|
4
4
|
import LightingModel from "./LightingModel.js";
|
|
@@ -24,10 +24,15 @@ const LightingPipelineStage = {
|
|
|
24
24
|
* </ul>
|
|
25
25
|
* @param {PrimitiveRenderResources} renderResources The render resources for the primitive
|
|
26
26
|
* @param {ModelComponents.Primitive} primitive The primitive to be rendered
|
|
27
|
+
* @param {FrameState} frameState The frame state.
|
|
27
28
|
*
|
|
28
29
|
* @private
|
|
29
30
|
*/
|
|
30
|
-
LightingPipelineStage.process = function (
|
|
31
|
+
LightingPipelineStage.process = function (
|
|
32
|
+
renderResources,
|
|
33
|
+
primitive,
|
|
34
|
+
frameState,
|
|
35
|
+
) {
|
|
31
36
|
const { model, lightingOptions, shaderBuilder } = renderResources;
|
|
32
37
|
|
|
33
38
|
if (defined(model.lightColor)) {
|
|
@@ -67,6 +72,16 @@ LightingPipelineStage.process = function (renderResources, primitive) {
|
|
|
67
72
|
);
|
|
68
73
|
}
|
|
69
74
|
|
|
75
|
+
// Add POINT_LIGHTS define if point lights are present
|
|
76
|
+
const pointLights = frameState.pointLights;
|
|
77
|
+
if (defined(pointLights) && pointLights.length > 0) {
|
|
78
|
+
shaderBuilder.addDefine(
|
|
79
|
+
"POINT_LIGHTS",
|
|
80
|
+
undefined,
|
|
81
|
+
ShaderDestination.FRAGMENT,
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
70
85
|
shaderBuilder.addFragmentLines(LightingStageFS);
|
|
71
86
|
};
|
|
72
87
|
|
|
@@ -65,6 +65,23 @@ MaterialPipelineStage.process = function (
|
|
|
65
65
|
const hasClassification = defined(model.classificationType);
|
|
66
66
|
const disableTextures = hasClassification;
|
|
67
67
|
|
|
68
|
+
// Collect the texture coordinate sets actually present in the geometry.
|
|
69
|
+
// Some models reference a texture whose UV set (e.g. TEXCOORD_0) does not
|
|
70
|
+
// exist on the mesh. If we still generate a `TEXCOORD_*` define for such a
|
|
71
|
+
// texture, the fragment shader would reference an undeclared
|
|
72
|
+
// `v_texCoord_n` varying and fail to compile, so those textures are skipped.
|
|
73
|
+
const texCoordSets = new Set();
|
|
74
|
+
const attributes = primitive.attributes;
|
|
75
|
+
for (let i = 0; i < attributes.length; i++) {
|
|
76
|
+
const attribute = attributes[i];
|
|
77
|
+
if (
|
|
78
|
+
attribute.semantic === VertexAttributeSemantic.TEXCOORD &&
|
|
79
|
+
defined(attribute.setIndex)
|
|
80
|
+
) {
|
|
81
|
+
texCoordSets.add(attribute.setIndex);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
68
85
|
// When textures are loaded incrementally, fall back to a default 1x1 texture
|
|
69
86
|
const { defaultTexture, defaultNormalTexture, defaultEmissiveTexture } =
|
|
70
87
|
frameState.context;
|
|
@@ -77,6 +94,7 @@ MaterialPipelineStage.process = function (
|
|
|
77
94
|
defaultNormalTexture,
|
|
78
95
|
defaultEmissiveTexture,
|
|
79
96
|
disableTextures,
|
|
97
|
+
texCoordSets,
|
|
80
98
|
);
|
|
81
99
|
|
|
82
100
|
if (defined(material.specularGlossiness)) {
|
|
@@ -86,6 +104,7 @@ MaterialPipelineStage.process = function (
|
|
|
86
104
|
shaderBuilder,
|
|
87
105
|
defaultTexture,
|
|
88
106
|
disableTextures,
|
|
107
|
+
texCoordSets,
|
|
89
108
|
);
|
|
90
109
|
} else {
|
|
91
110
|
if (
|
|
@@ -98,6 +117,7 @@ MaterialPipelineStage.process = function (
|
|
|
98
117
|
shaderBuilder,
|
|
99
118
|
defaultTexture,
|
|
100
119
|
disableTextures,
|
|
120
|
+
texCoordSets,
|
|
101
121
|
);
|
|
102
122
|
}
|
|
103
123
|
if (
|
|
@@ -110,6 +130,7 @@ MaterialPipelineStage.process = function (
|
|
|
110
130
|
shaderBuilder,
|
|
111
131
|
defaultTexture,
|
|
112
132
|
disableTextures,
|
|
133
|
+
texCoordSets,
|
|
113
134
|
);
|
|
114
135
|
}
|
|
115
136
|
if (
|
|
@@ -122,6 +143,7 @@ MaterialPipelineStage.process = function (
|
|
|
122
143
|
shaderBuilder,
|
|
123
144
|
defaultTexture,
|
|
124
145
|
disableTextures,
|
|
146
|
+
texCoordSets,
|
|
125
147
|
);
|
|
126
148
|
}
|
|
127
149
|
processMetallicRoughnessUniforms(
|
|
@@ -130,6 +152,7 @@ MaterialPipelineStage.process = function (
|
|
|
130
152
|
shaderBuilder,
|
|
131
153
|
defaultTexture,
|
|
132
154
|
disableTextures,
|
|
155
|
+
texCoordSets,
|
|
133
156
|
);
|
|
134
157
|
}
|
|
135
158
|
|
|
@@ -272,7 +295,15 @@ function processTexture(
|
|
|
272
295
|
uniformName,
|
|
273
296
|
defineName,
|
|
274
297
|
defaultTexture,
|
|
298
|
+
texCoordSets,
|
|
275
299
|
) {
|
|
300
|
+
// If the texture references a texture coordinate set that is not present in
|
|
301
|
+
// the geometry, skip it entirely. Otherwise the generated fragment shader
|
|
302
|
+
// would use an undeclared `v_texCoord_n` varying and fail to compile.
|
|
303
|
+
if (!texCoordSets.has(textureReader.texCoord)) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
276
307
|
// Add a uniform for the texture itself
|
|
277
308
|
shaderBuilder.addUniform(
|
|
278
309
|
"sampler2D",
|
|
@@ -333,6 +364,7 @@ function processMaterialUniforms(
|
|
|
333
364
|
defaultNormalTexture,
|
|
334
365
|
defaultEmissiveTexture,
|
|
335
366
|
disableTextures,
|
|
367
|
+
texCoordSets,
|
|
336
368
|
) {
|
|
337
369
|
const { emissiveFactor, emissiveTexture, normalTexture, occlusionTexture } =
|
|
338
370
|
material;
|
|
@@ -363,6 +395,7 @@ function processMaterialUniforms(
|
|
|
363
395
|
"u_emissiveTexture",
|
|
364
396
|
"EMISSIVE",
|
|
365
397
|
defaultEmissiveTexture,
|
|
398
|
+
texCoordSets,
|
|
366
399
|
);
|
|
367
400
|
}
|
|
368
401
|
}
|
|
@@ -375,6 +408,7 @@ function processMaterialUniforms(
|
|
|
375
408
|
"u_normalTexture",
|
|
376
409
|
"NORMAL",
|
|
377
410
|
defaultNormalTexture,
|
|
411
|
+
texCoordSets,
|
|
378
412
|
);
|
|
379
413
|
}
|
|
380
414
|
|
|
@@ -386,6 +420,7 @@ function processMaterialUniforms(
|
|
|
386
420
|
"u_occlusionTexture",
|
|
387
421
|
"OCCLUSION",
|
|
388
422
|
defaultTexture,
|
|
423
|
+
texCoordSets,
|
|
389
424
|
);
|
|
390
425
|
}
|
|
391
426
|
}
|
|
@@ -406,6 +441,7 @@ function processSpecularGlossinessUniforms(
|
|
|
406
441
|
shaderBuilder,
|
|
407
442
|
defaultTexture,
|
|
408
443
|
disableTextures,
|
|
444
|
+
texCoordSets,
|
|
409
445
|
) {
|
|
410
446
|
const {
|
|
411
447
|
diffuseTexture,
|
|
@@ -429,6 +465,7 @@ function processSpecularGlossinessUniforms(
|
|
|
429
465
|
"u_diffuseTexture",
|
|
430
466
|
"DIFFUSE",
|
|
431
467
|
defaultTexture,
|
|
468
|
+
texCoordSets,
|
|
432
469
|
);
|
|
433
470
|
}
|
|
434
471
|
|
|
@@ -459,6 +496,7 @@ function processSpecularGlossinessUniforms(
|
|
|
459
496
|
"u_specularGlossinessTexture",
|
|
460
497
|
"SPECULAR_GLOSSINESS",
|
|
461
498
|
defaultTexture,
|
|
499
|
+
texCoordSets,
|
|
462
500
|
);
|
|
463
501
|
}
|
|
464
502
|
|
|
@@ -520,6 +558,7 @@ function processSpecularUniforms(
|
|
|
520
558
|
shaderBuilder,
|
|
521
559
|
defaultTexture,
|
|
522
560
|
disableTextures,
|
|
561
|
+
texCoordSets,
|
|
523
562
|
) {
|
|
524
563
|
const {
|
|
525
564
|
specularTexture,
|
|
@@ -542,6 +581,7 @@ function processSpecularUniforms(
|
|
|
542
581
|
"u_specularTexture",
|
|
543
582
|
"SPECULAR",
|
|
544
583
|
defaultTexture,
|
|
584
|
+
texCoordSets,
|
|
545
585
|
);
|
|
546
586
|
}
|
|
547
587
|
|
|
@@ -572,6 +612,7 @@ function processSpecularUniforms(
|
|
|
572
612
|
"u_specularColorTexture",
|
|
573
613
|
"SPECULAR_COLOR",
|
|
574
614
|
defaultTexture,
|
|
615
|
+
texCoordSets,
|
|
575
616
|
);
|
|
576
617
|
}
|
|
577
618
|
|
|
@@ -616,6 +657,7 @@ function processAnisotropyUniforms(
|
|
|
616
657
|
shaderBuilder,
|
|
617
658
|
defaultTexture,
|
|
618
659
|
disableTextures,
|
|
660
|
+
texCoordSets,
|
|
619
661
|
) {
|
|
620
662
|
const { anisotropyStrength, anisotropyRotation, anisotropyTexture } =
|
|
621
663
|
anisotropy;
|
|
@@ -634,6 +676,7 @@ function processAnisotropyUniforms(
|
|
|
634
676
|
"u_anisotropyTexture",
|
|
635
677
|
"ANISOTROPY",
|
|
636
678
|
defaultTexture,
|
|
679
|
+
texCoordSets,
|
|
637
680
|
);
|
|
638
681
|
}
|
|
639
682
|
|
|
@@ -668,6 +711,7 @@ function processClearcoatUniforms(
|
|
|
668
711
|
shaderBuilder,
|
|
669
712
|
defaultTexture,
|
|
670
713
|
disableTextures,
|
|
714
|
+
texCoordSets,
|
|
671
715
|
) {
|
|
672
716
|
const {
|
|
673
717
|
clearcoatFactor,
|
|
@@ -710,6 +754,7 @@ function processClearcoatUniforms(
|
|
|
710
754
|
"u_clearcoatTexture",
|
|
711
755
|
"CLEARCOAT",
|
|
712
756
|
defaultTexture,
|
|
757
|
+
texCoordSets,
|
|
713
758
|
);
|
|
714
759
|
}
|
|
715
760
|
|
|
@@ -740,6 +785,7 @@ function processClearcoatUniforms(
|
|
|
740
785
|
"u_clearcoatRoughnessTexture",
|
|
741
786
|
"CLEARCOAT_ROUGHNESS",
|
|
742
787
|
defaultTexture,
|
|
788
|
+
texCoordSets,
|
|
743
789
|
);
|
|
744
790
|
}
|
|
745
791
|
|
|
@@ -751,6 +797,7 @@ function processClearcoatUniforms(
|
|
|
751
797
|
"u_clearcoatNormalTexture",
|
|
752
798
|
"CLEARCOAT_NORMAL",
|
|
753
799
|
defaultTexture,
|
|
800
|
+
texCoordSets,
|
|
754
801
|
);
|
|
755
802
|
}
|
|
756
803
|
}
|
|
@@ -771,6 +818,7 @@ function processMetallicRoughnessUniforms(
|
|
|
771
818
|
shaderBuilder,
|
|
772
819
|
defaultTexture,
|
|
773
820
|
disableTextures,
|
|
821
|
+
texCoordSets,
|
|
774
822
|
) {
|
|
775
823
|
shaderBuilder.addDefine(
|
|
776
824
|
"USE_METALLIC_ROUGHNESS",
|
|
@@ -787,6 +835,7 @@ function processMetallicRoughnessUniforms(
|
|
|
787
835
|
"u_baseColorTexture",
|
|
788
836
|
"BASE_COLOR",
|
|
789
837
|
defaultTexture,
|
|
838
|
+
texCoordSets,
|
|
790
839
|
);
|
|
791
840
|
}
|
|
792
841
|
|
|
@@ -822,6 +871,7 @@ function processMetallicRoughnessUniforms(
|
|
|
822
871
|
"u_metallicRoughnessTexture",
|
|
823
872
|
"METALLIC_ROUGHNESS",
|
|
824
873
|
defaultTexture,
|
|
874
|
+
texCoordSets,
|
|
825
875
|
);
|
|
826
876
|
}
|
|
827
877
|
|