@cesium/engine 10.1.0 → 11.0.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/Workers/{chunk-N4QEHO3U.js → chunk-2EDC3QGH.js} +1 -1
- package/Build/Workers/{chunk-NVOABL76.js → chunk-2MKRG7L7.js} +5 -5
- package/Build/Workers/{chunk-X23FRWHJ.js → chunk-2RZYNSMR.js} +6 -6
- package/Build/Workers/{chunk-TO2PVHKI.js → chunk-4NBRIKB3.js} +2 -2
- package/Build/Workers/{chunk-5BLJ5ZM6.js → chunk-4TK5YR6Q.js} +5 -5
- package/Build/Workers/{chunk-TF776XCO.js → chunk-54VC7SCM.js} +7 -7
- package/Build/Workers/{chunk-2GEAGYUY.js → chunk-5IY5BXCT.js} +13 -13
- package/Build/Workers/{chunk-OXALEQPI.js → chunk-6FFGOENI.js} +10 -7
- package/Build/Workers/{chunk-65MZOUNU.js → chunk-6PJIHPQB.js} +13 -13
- package/Build/Workers/{chunk-FOZWUH4T.js → chunk-6ZREIBKS.js} +7 -7
- package/Build/Workers/{chunk-BY3E4ONI.js → chunk-AI3O7UN2.js} +6 -6
- package/Build/Workers/{chunk-XQI7XZHX.js → chunk-AS7P4BHI.js} +6 -6
- package/Build/Workers/{chunk-PNFHVBSF.js → chunk-AUM45VEG.js} +16 -15
- package/Build/Workers/{chunk-VRZ46QZ5.js → chunk-BBO6BGLC.js} +13 -13
- package/Build/Workers/{chunk-POSRARY7.js → chunk-BH5ZEN4I.js} +10 -10
- package/Build/Workers/{chunk-A5CODJ4M.js → chunk-BJ3WF5RW.js} +6 -6
- package/Build/Workers/{chunk-Q55ECN3Y.js → chunk-BUOFSNFW.js} +1 -1
- package/Build/Workers/{chunk-QX5XS4LC.js → chunk-BZXF3GNX.js} +2 -2
- package/Build/Workers/{chunk-T6LPN7RI.js → chunk-DJXXI7UF.js} +5 -5
- package/Build/Workers/{chunk-C3Z23UUJ.js → chunk-DVAIU7A4.js} +17 -17
- package/Build/Workers/{chunk-X2ZQ7RJR.js → chunk-FJT3ERV7.js} +9 -9
- package/Build/Workers/{chunk-UCIPJSZX.js → chunk-GOHDOWU5.js} +14 -14
- package/Build/Workers/{chunk-R4OIEIPE.js → chunk-HA6TZ3XT.js} +4 -4
- package/Build/Workers/{chunk-ACRTCBN5.js → chunk-HBZSCVZC.js} +11 -11
- package/Build/Workers/{chunk-BGE4QVG7.js → chunk-HC7RYWPZ.js} +12 -12
- package/Build/Workers/{chunk-VE7BFUIX.js → chunk-HFMJM3SX.js} +1 -1
- package/Build/Workers/{chunk-OOK53QUQ.js → chunk-HFPMX5L2.js} +1 -1
- package/Build/Workers/{chunk-6D66DPRV.js → chunk-HO2NTC7I.js} +6 -6
- package/Build/Workers/{chunk-F3NDOSTZ.js → chunk-HZPMWR4H.js} +7 -7
- package/Build/Workers/{chunk-I2RC4XVN.js → chunk-IBG5FVXC.js} +4 -4
- package/Build/Workers/{chunk-FEVVHITK.js → chunk-IXLNNST6.js} +4 -4
- package/Build/Workers/{chunk-4YSNMHZ4.js → chunk-JYUCC5NV.js} +6 -6
- package/Build/Workers/{chunk-FDCLACT5.js → chunk-KFW4UNQH.js} +10 -10
- package/Build/Workers/{chunk-R6B7UCQB.js → chunk-KKAEXHDY.js} +2 -2
- package/Build/Workers/{chunk-D2U4RI64.js → chunk-L6FARMF6.js} +7 -7
- package/Build/Workers/{chunk-OOMCT7OL.js → chunk-N3BIL6WA.js} +13 -13
- package/Build/Workers/{chunk-XZZNKIEV.js → chunk-O5SSW3B3.js} +6 -6
- package/Build/Workers/{chunk-S3PI2KFM.js → chunk-OC4MYPVW.js} +2 -2
- package/Build/Workers/{chunk-XLTOBCDI.js → chunk-OOA6GXKD.js} +7 -7
- package/Build/Workers/{chunk-GPJR7MPQ.js → chunk-OSCHEWSG.js} +7 -7
- package/Build/Workers/{chunk-RZLZWKFN.js → chunk-QGT2GMOK.js} +4 -4
- package/Build/Workers/{chunk-OWGTMVDB.js → chunk-RFQYEYAL.js} +17 -17
- package/Build/Workers/{chunk-LSSWVB2X.js → chunk-RJF5ZP76.js} +4 -4
- package/Build/Workers/{chunk-EB7PNZTK.js → chunk-SIZXFNJY.js} +6 -5
- package/Build/Workers/{chunk-G5V4GPZE.js → chunk-SRZJCF7G.js} +9 -9
- package/Build/Workers/{chunk-T77JILCU.js → chunk-T4MB73MC.js} +2 -2
- package/Build/Workers/{chunk-4RMIRG6T.js → chunk-TTI2SUWJ.js} +2 -2
- package/Build/Workers/{chunk-4VFBBNQ3.js → chunk-VHJ5ESXF.js} +1 -1
- package/Build/Workers/{chunk-2J3JKXCP.js → chunk-VSFFJGTA.js} +9 -5
- package/Build/Workers/{chunk-ZU334IDQ.js → chunk-WQRXRDCZ.js} +11 -11
- package/Build/Workers/{chunk-J7MQUQJY.js → chunk-WXDGOYTT.js} +12 -7
- package/Build/Workers/{chunk-76BYYG7N.js → chunk-XLCZE6DD.js} +10 -10
- 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 +24 -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 +28 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/transcodeKTX2.js +19 -18
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
- package/Source/Core/CompressedTextureBuffer.js +11 -0
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/KTX2Transcoder.js +9 -16
- package/Source/Core/PixelFormat.js +1 -15
- package/Source/DataSources/CallbackProperty.js +8 -2
- package/Source/DataSources/CheckerboardMaterialProperty.js +7 -1
- package/Source/DataSources/ColorMaterialProperty.js +7 -1
- package/Source/DataSources/CompositeMaterialProperty.js +5 -4
- package/Source/DataSources/CompositePositionProperty.js +7 -1
- package/Source/DataSources/CompositeProperty.js +5 -5
- package/Source/DataSources/ConstantPositionProperty.js +7 -1
- package/Source/DataSources/Entity.js +1 -1
- package/Source/DataSources/GridMaterialProperty.js +7 -1
- package/Source/DataSources/ImageMaterialProperty.js +8 -1
- package/Source/DataSources/MaterialProperty.js +7 -1
- package/Source/DataSources/NodeTransformationProperty.js +7 -1
- package/Source/DataSources/PolylineArrowMaterialProperty.js +7 -1
- package/Source/DataSources/PolylineDashMaterialProperty.js +7 -1
- package/Source/DataSources/PolylineGlowMaterialProperty.js +7 -1
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +7 -1
- package/Source/DataSources/PositionProperty.js +1 -1
- package/Source/DataSources/PositionPropertyArray.js +7 -1
- package/Source/DataSources/Property.js +1 -1
- package/Source/DataSources/PropertyArray.js +5 -5
- package/Source/DataSources/PropertyBag.js +5 -4
- package/Source/DataSources/ReferenceProperty.js +7 -1
- package/Source/DataSources/SampledPositionProperty.js +7 -1
- package/Source/DataSources/SampledProperty.js +6 -4
- package/Source/DataSources/ScaledPositionProperty.js +6 -0
- package/Source/DataSources/StripeMaterialProperty.js +7 -1
- package/Source/DataSources/TerrainOffsetProperty.js +9 -0
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +7 -1
- package/Source/DataSources/TimeIntervalCollectionProperty.js +5 -5
- package/Source/DataSources/VelocityOrientationProperty.js +6 -1
- package/Source/DataSources/VelocityVectorProperty.js +3 -5
- package/Source/Renderer/AutomaticUniforms.js +2 -17
- package/Source/Renderer/Context.js +15 -0
- package/Source/Renderer/CubeMap.js +326 -348
- package/Source/Renderer/CubeMapFace.js +26 -48
- package/Source/Renderer/PixelDatatype.js +23 -0
- package/Source/Renderer/Sampler.js +7 -13
- package/Source/Renderer/ShaderProgram.js +7 -0
- package/Source/Renderer/Texture.js +396 -332
- package/Source/Renderer/UniformState.js +3 -22
- package/Source/Renderer/demodernizeShader.js +2 -0
- package/Source/Renderer/loadCubeMap.js +3 -8
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/CameraEventAggregator.js +49 -5
- package/Source/Scene/Globe.js +1 -1
- package/Source/Scene/GlobeSurfaceShaderSet.js +29 -24
- package/Source/Scene/GlobeSurfaceTileProvider.js +5 -3
- package/Source/Scene/ImageBasedLighting.js +34 -34
- package/Source/Scene/Label.js +2 -2
- package/Source/Scene/Material.js +24 -2
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +7 -15
- package/Source/Scene/PostProcessStageCollection.js +45 -15
- package/Source/Scene/PostProcessStageLibrary.js +26 -0
- package/Source/Scene/Scene.js +20 -22
- package/Source/Scene/SceneTransforms.js +0 -62
- package/Source/Scene/ScreenSpaceCameraController.js +11 -4
- package/Source/Scene/SkyBox.js +13 -19
- package/Source/Scene/SpecularEnvironmentCubeMap.js +240 -0
- package/Source/Scene/Tonemapper.js +35 -23
- package/Source/Scene/VoxelPrimitive.js +0 -29
- package/Source/Scene/VoxelRenderResources.js +0 -3
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -2
- package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/pbrLighting.js +2 -2
- package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.glsl +23 -0
- package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.js +25 -0
- package/Source/Shaders/Builtin/Functions/textureCube.glsl +21 -2
- package/Source/Shaders/Builtin/Functions/textureCube.js +21 -2
- package/Source/Shaders/Builtin/Structs/materialInput.glsl +2 -0
- package/Source/Shaders/Builtin/Structs/materialInput.js +2 -0
- package/Source/Shaders/GlobeFS.glsl +10 -4
- package/Source/Shaders/GlobeFS.js +10 -4
- package/Source/Shaders/Materials/WaterMaskMaterial.glsl +15 -0
- package/Source/Shaders/Materials/WaterMaskMaterial.js +17 -0
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -1
- package/Source/Shaders/Model/AtmosphereStageFS.js +1 -1
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +40 -29
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +40 -29
- package/Source/Shaders/Model/LightingStageFS.glsl +2 -2
- package/Source/Shaders/Model/LightingStageFS.js +2 -2
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -0
- package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.glsl +25 -0
- package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.js +27 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -0
- package/Source/Shaders/SkyAtmosphereFS.glsl +1 -1
- package/Source/Shaders/SkyAtmosphereFS.js +1 -1
- package/Source/Widget/CesiumWidget.js +1 -1
- package/index.d.ts +117 -101
- package/index.js +212 -213
- package/package.json +2 -2
- package/Build/Workers/chunk-3WUV74WM.js +0 -1800
- package/Build/Workers/chunk-4MSUJ4I7.js +0 -456
- package/Build/Workers/chunk-5KWHSZYL.js +0 -834
- package/Build/Workers/chunk-5O6JWQ4E.js +0 -398
- package/Build/Workers/chunk-6OFDHMHR.js +0 -1258
- package/Build/Workers/chunk-AA4GZKOT.js +0 -75
- package/Build/Workers/chunk-B75IEX2S.js +0 -390
- package/Build/Workers/chunk-BAVI3ZS2.js +0 -39
- package/Build/Workers/chunk-BBDZYSZB.js +0 -287
- package/Build/Workers/chunk-C45MU4GZ.js +0 -220
- package/Build/Workers/chunk-CF7P7K7E.js +0 -684
- package/Build/Workers/chunk-D4K27X2M.js +0 -305
- package/Build/Workers/chunk-DKVHRNFY.js +0 -100
- package/Build/Workers/chunk-ELI4BUOT.js +0 -963
- package/Build/Workers/chunk-FQPSOOPH.js +0 -258
- package/Build/Workers/chunk-GNHZH7HP.js +0 -37
- package/Build/Workers/chunk-GWT64LKY.js +0 -171
- package/Build/Workers/chunk-HGEEOMSC.js +0 -157
- package/Build/Workers/chunk-IUROUBPA.js +0 -300
- package/Build/Workers/chunk-JNLWLSTP.js +0 -476
- package/Build/Workers/chunk-JYQNWIQQ.js +0 -44
- package/Build/Workers/chunk-KUN2ZA5X.js +0 -138
- package/Build/Workers/chunk-KV4EQHK4.js +0 -1477
- package/Build/Workers/chunk-LXQ5QAEJ.js +0 -196
- package/Build/Workers/chunk-MBZH7YZ7.js +0 -945
- package/Build/Workers/chunk-MKXWJTFQ.js +0 -781
- package/Build/Workers/chunk-MMV6TO3P.js +0 -101
- package/Build/Workers/chunk-MSKXMXJI.js +0 -500
- package/Build/Workers/chunk-OAPA2RTG.js +0 -239
- package/Build/Workers/chunk-OE4MCOC7.js +0 -421
- package/Build/Workers/chunk-OJF4RTJG.js +0 -634
- package/Build/Workers/chunk-OXSI7N4C.js +0 -768
- package/Build/Workers/chunk-PYHLO636.js +0 -2857
- package/Build/Workers/chunk-QD4KM3GO.js +0 -138
- package/Build/Workers/chunk-QMLTCCYG.js +0 -55
- package/Build/Workers/chunk-QYQIVZBU.js +0 -117
- package/Build/Workers/chunk-R3TKLC6E.js +0 -1075
- package/Build/Workers/chunk-R4ZEWO4I.js +0 -122
- package/Build/Workers/chunk-RCK55EDX.js +0 -691
- package/Build/Workers/chunk-RHBWXX7C.js +0 -629
- package/Build/Workers/chunk-SAPFXU5X.js +0 -102
- package/Build/Workers/chunk-TBBFDFCS.js +0 -368
- package/Build/Workers/chunk-TGY6H6N6.js +0 -163
- package/Build/Workers/chunk-UOEUCKKU.js +0 -59
- package/Build/Workers/chunk-VFBNELXB.js +0 -353
- package/Build/Workers/chunk-VYWUFRRR.js +0 -1052
- package/Build/Workers/chunk-WVSELU6O.js +0 -2716
- package/Build/Workers/chunk-X43SJLQL.js +0 -10364
- package/Build/Workers/chunk-XUOJCLOH.js +0 -511
- package/Build/Workers/chunk-YLYBLJ3Y.js +0 -73
- package/Build/Workers/chunk-ZEE2EIFD.js +0 -430
- package/Build/Workers/chunk-ZIKGV7EL.js +0 -58
- package/Source/Scene/OctahedralProjectedCubeMap.js +0 -444
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +0 -78
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +0 -80
- package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +0 -89
- package/Source/Shaders/OctahedralProjectionAtlasFS.js +0 -91
- package/Source/Shaders/OctahedralProjectionFS.glsl +0 -14
- package/Source/Shaders/OctahedralProjectionFS.js +0 -16
- package/Source/Shaders/OctahedralProjectionVS.glsl +0 -10
- package/Source/Shaders/OctahedralProjectionVS.js +0 -12
|
@@ -12,7 +12,7 @@ import TextureWrap from "../Renderer/TextureWrap.js";
|
|
|
12
12
|
import PassThrough from "../Shaders/PostProcessStages/PassThrough.js";
|
|
13
13
|
import PostProcessStageLibrary from "./PostProcessStageLibrary.js";
|
|
14
14
|
import PostProcessStageTextureCache from "./PostProcessStageTextureCache.js";
|
|
15
|
-
import Tonemapper from "./Tonemapper.js";
|
|
15
|
+
import Tonemapper, { validateTonemapper } from "./Tonemapper.js";
|
|
16
16
|
|
|
17
17
|
const stackScratch = [];
|
|
18
18
|
|
|
@@ -41,11 +41,12 @@ function PostProcessStageCollection() {
|
|
|
41
41
|
// Some shaders, such as the atmosphere and ground atmosphere, output values slightly over 1.0.
|
|
42
42
|
this._autoExposureEnabled = false;
|
|
43
43
|
this._autoExposure = PostProcessStageLibrary.createAutoExposureStage();
|
|
44
|
+
this._exposure = 1.0;
|
|
44
45
|
this._tonemapping = undefined;
|
|
45
46
|
this._tonemapper = undefined;
|
|
46
47
|
|
|
47
|
-
// set tonemapper and tonemapping
|
|
48
|
-
this.tonemapper = Tonemapper.
|
|
48
|
+
// set tonemapper and tonemapping using the setter
|
|
49
|
+
this.tonemapper = Tonemapper.PBR_NEUTRAL;
|
|
49
50
|
|
|
50
51
|
const tonemapping = this._tonemapping;
|
|
51
52
|
|
|
@@ -313,11 +314,14 @@ Object.defineProperties(PostProcessStageCollection.prototype, {
|
|
|
313
314
|
},
|
|
314
315
|
|
|
315
316
|
/**
|
|
316
|
-
*
|
|
317
|
+
* Specifies the tonemapping algorithm used when rendering with high dynamic range.
|
|
318
|
+
* {@link https://sandcastle.cesium.com/?src=High%20Dynamic%20Range.html|Sandcastle Demo}
|
|
317
319
|
*
|
|
320
|
+
* @example viewer.scene.postProcessStages.tonemapper = Cesium.Tonemapper.ACES;
|
|
321
|
+
*
|
|
322
|
+
* @default Tonemapper.PBR_NEUTRAL
|
|
318
323
|
* @memberof PostProcessStageCollection.prototype
|
|
319
324
|
* @type {Tonemapper}
|
|
320
|
-
* @private
|
|
321
325
|
*/
|
|
322
326
|
tonemapper: {
|
|
323
327
|
get: function () {
|
|
@@ -328,7 +332,7 @@ Object.defineProperties(PostProcessStageCollection.prototype, {
|
|
|
328
332
|
return;
|
|
329
333
|
}
|
|
330
334
|
//>>includeStart('debug', pragmas.debug);
|
|
331
|
-
if (!
|
|
335
|
+
if (!validateTonemapper(value)) {
|
|
332
336
|
throw new DeveloperError("tonemapper was set to an invalid value.");
|
|
333
337
|
}
|
|
334
338
|
//>>includeEnd('debug');
|
|
@@ -339,26 +343,31 @@ Object.defineProperties(PostProcessStageCollection.prototype, {
|
|
|
339
343
|
}
|
|
340
344
|
|
|
341
345
|
const useAutoExposure = this._autoExposureEnabled;
|
|
342
|
-
let
|
|
346
|
+
let tonemapping;
|
|
343
347
|
|
|
344
348
|
switch (value) {
|
|
345
349
|
case Tonemapper.REINHARD:
|
|
346
|
-
|
|
350
|
+
tonemapping = PostProcessStageLibrary.createReinhardTonemappingStage(
|
|
347
351
|
useAutoExposure
|
|
348
352
|
);
|
|
349
353
|
break;
|
|
350
354
|
case Tonemapper.MODIFIED_REINHARD:
|
|
351
|
-
|
|
355
|
+
tonemapping = PostProcessStageLibrary.createModifiedReinhardTonemappingStage(
|
|
352
356
|
useAutoExposure
|
|
353
357
|
);
|
|
354
358
|
break;
|
|
355
359
|
case Tonemapper.FILMIC:
|
|
356
|
-
|
|
360
|
+
tonemapping = PostProcessStageLibrary.createFilmicTonemappingStage(
|
|
361
|
+
useAutoExposure
|
|
362
|
+
);
|
|
363
|
+
break;
|
|
364
|
+
case Tonemapper.PBR_NEUTRAL:
|
|
365
|
+
tonemapping = PostProcessStageLibrary.createPbrNeutralTonemappingStage(
|
|
357
366
|
useAutoExposure
|
|
358
367
|
);
|
|
359
368
|
break;
|
|
360
369
|
default:
|
|
361
|
-
|
|
370
|
+
tonemapping = PostProcessStageLibrary.createAcesTonemappingStage(
|
|
362
371
|
useAutoExposure
|
|
363
372
|
);
|
|
364
373
|
break;
|
|
@@ -366,22 +375,43 @@ Object.defineProperties(PostProcessStageCollection.prototype, {
|
|
|
366
375
|
|
|
367
376
|
if (useAutoExposure) {
|
|
368
377
|
const autoexposure = this._autoExposure;
|
|
369
|
-
|
|
378
|
+
tonemapping.uniforms.autoExposure = function () {
|
|
370
379
|
return autoexposure.outputTexture;
|
|
371
380
|
};
|
|
381
|
+
} else {
|
|
382
|
+
tonemapping.uniforms.exposure = this._exposure;
|
|
372
383
|
}
|
|
373
384
|
|
|
374
385
|
this._tonemapper = value;
|
|
375
|
-
this._tonemapping =
|
|
386
|
+
this._tonemapping = tonemapping;
|
|
376
387
|
|
|
377
388
|
if (defined(this._stageNames)) {
|
|
378
|
-
this._stageNames[
|
|
379
|
-
|
|
389
|
+
this._stageNames[tonemapping.name] = tonemapping;
|
|
390
|
+
tonemapping._textureCache = this._textureCache;
|
|
380
391
|
}
|
|
381
392
|
|
|
382
393
|
this._textureCacheDirty = true;
|
|
383
394
|
},
|
|
384
395
|
},
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Control the exposure when HDR is on. Less than 1.0 makes the tonemapping darker while greater than 1.0 makes it brighter.
|
|
399
|
+
*
|
|
400
|
+
* @example viewer.scene.postProcessStages.exposure = 1.0;
|
|
401
|
+
*
|
|
402
|
+
* @default 1.0
|
|
403
|
+
* @memberof PostProcessStageCollection.prototype
|
|
404
|
+
* @type {number}
|
|
405
|
+
*/
|
|
406
|
+
exposure: {
|
|
407
|
+
get: function () {
|
|
408
|
+
return this._exposure;
|
|
409
|
+
},
|
|
410
|
+
set: function (value) {
|
|
411
|
+
this._tonemapping.uniforms.exposure = value;
|
|
412
|
+
this._exposure = value;
|
|
413
|
+
},
|
|
414
|
+
},
|
|
385
415
|
});
|
|
386
416
|
|
|
387
417
|
function removeStages(collection) {
|
|
@@ -14,6 +14,7 @@ import DepthOfField from "../Shaders/PostProcessStages/DepthOfField.js";
|
|
|
14
14
|
import DepthView from "../Shaders/PostProcessStages/DepthView.js";
|
|
15
15
|
import EdgeDetection from "../Shaders/PostProcessStages/EdgeDetection.js";
|
|
16
16
|
import FilmicTonemapping from "../Shaders/PostProcessStages/FilmicTonemapping.js";
|
|
17
|
+
import PbrNeutralTonemapping from "../Shaders/PostProcessStages/PbrNeutralTonemapping.js";
|
|
17
18
|
import FXAA from "../Shaders/PostProcessStages/FXAA.js";
|
|
18
19
|
import GaussianBlur1D from "../Shaders/PostProcessStages/GaussianBlur1D.js";
|
|
19
20
|
import LensFlare from "../Shaders/PostProcessStages/LensFlare.js";
|
|
@@ -669,6 +670,7 @@ PostProcessStageLibrary.createAcesTonemappingStage = function (
|
|
|
669
670
|
fragmentShader: fs,
|
|
670
671
|
uniforms: {
|
|
671
672
|
autoExposure: undefined,
|
|
673
|
+
exposure: 1.0,
|
|
672
674
|
},
|
|
673
675
|
});
|
|
674
676
|
};
|
|
@@ -689,6 +691,28 @@ PostProcessStageLibrary.createFilmicTonemappingStage = function (
|
|
|
689
691
|
fragmentShader: fs,
|
|
690
692
|
uniforms: {
|
|
691
693
|
autoExposure: undefined,
|
|
694
|
+
exposure: 1.0,
|
|
695
|
+
},
|
|
696
|
+
});
|
|
697
|
+
};
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* Creates a post-process stage that applies filmic tonemapping operator.
|
|
701
|
+
* @param {boolean} useAutoExposure Whether or not to use auto-exposure.
|
|
702
|
+
* @return {PostProcessStage} A post-process stage that applies filmic tonemapping operator.
|
|
703
|
+
* @private
|
|
704
|
+
*/
|
|
705
|
+
PostProcessStageLibrary.createPbrNeutralTonemappingStage = function (
|
|
706
|
+
useAutoExposure
|
|
707
|
+
) {
|
|
708
|
+
let fs = useAutoExposure ? "#define AUTO_EXPOSURE\n" : "";
|
|
709
|
+
fs += PbrNeutralTonemapping;
|
|
710
|
+
return new PostProcessStage({
|
|
711
|
+
name: "czm_pbr_neutral",
|
|
712
|
+
fragmentShader: fs,
|
|
713
|
+
uniforms: {
|
|
714
|
+
autoExposure: undefined,
|
|
715
|
+
exposure: 1.0,
|
|
692
716
|
},
|
|
693
717
|
});
|
|
694
718
|
};
|
|
@@ -709,6 +733,7 @@ PostProcessStageLibrary.createReinhardTonemappingStage = function (
|
|
|
709
733
|
fragmentShader: fs,
|
|
710
734
|
uniforms: {
|
|
711
735
|
autoExposure: undefined,
|
|
736
|
+
exposure: 1.0,
|
|
712
737
|
},
|
|
713
738
|
});
|
|
714
739
|
};
|
|
@@ -730,6 +755,7 @@ PostProcessStageLibrary.createModifiedReinhardTonemappingStage = function (
|
|
|
730
755
|
uniforms: {
|
|
731
756
|
white: Color.WHITE,
|
|
732
757
|
autoExposure: undefined,
|
|
758
|
+
exposure: 1.0,
|
|
733
759
|
},
|
|
734
760
|
});
|
|
735
761
|
};
|
package/Source/Scene/Scene.js
CHANGED
|
@@ -57,7 +57,6 @@ import GlobeTranslucencyState from "./GlobeTranslucencyState.js";
|
|
|
57
57
|
import InvertClassification from "./InvertClassification.js";
|
|
58
58
|
import JobScheduler from "./JobScheduler.js";
|
|
59
59
|
import MapMode2D from "./MapMode2D.js";
|
|
60
|
-
import OctahedralProjectedCubeMap from "./OctahedralProjectedCubeMap.js";
|
|
61
60
|
import PerformanceDisplay from "./PerformanceDisplay.js";
|
|
62
61
|
import PerInstanceColorAppearance from "./PerInstanceColorAppearance.js";
|
|
63
62
|
import Picking from "./Picking.js";
|
|
@@ -69,6 +68,7 @@ import SceneTransforms from "./SceneTransforms.js";
|
|
|
69
68
|
import SceneTransitioner from "./SceneTransitioner.js";
|
|
70
69
|
import ScreenSpaceCameraController from "./ScreenSpaceCameraController.js";
|
|
71
70
|
import ShadowMap from "./ShadowMap.js";
|
|
71
|
+
import SpecularEnvironmentCubeMap from "./SpecularEnvironmentCubeMap.js";
|
|
72
72
|
import StencilConstants from "./StencilConstants.js";
|
|
73
73
|
import SunLight from "./SunLight.js";
|
|
74
74
|
import SunPostProcess from "./SunPostProcess.js";
|
|
@@ -107,7 +107,7 @@ const requestRenderAfterFrame = function (scene) {
|
|
|
107
107
|
* @param {boolean} [options.requestRenderMode=false] If true, rendering a frame will only occur when needed as determined by changes within the scene. Enabling improves performance of the application, but requires using {@link Scene#requestRender} to render a new frame explicitly in this mode. This will be necessary in many cases after making changes to the scene in other parts of the API. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
|
|
108
108
|
* @param {number} [options.maximumRenderTimeChange=0.0] If requestRenderMode is true, this value defines the maximum change in simulation time allowed before a render is requested. See {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
|
|
109
109
|
* @param {number} [options.depthPlaneEllipsoidOffset=0.0] Adjust the DepthPlane to address rendering artefacts below ellipsoid zero elevation.
|
|
110
|
-
* @param {number} [options.msaaSamples=
|
|
110
|
+
* @param {number} [options.msaaSamples=4] If provided, this value controls the rate of multisample antialiasing. Typical multisampling rates are 2, 4, and sometimes 8 samples per pixel. Higher sampling rates of MSAA may impact performance in exchange for improved visual quality. This value only applies to WebGL2 contexts that support multisample render targets. Set to 1 to disable MSAA.
|
|
111
111
|
*
|
|
112
112
|
* @see CesiumWidget
|
|
113
113
|
* @see {@link http://www.khronos.org/registry/webgl/specs/latest/#5.2|WebGLContextAttributes}
|
|
@@ -228,7 +228,7 @@ function Scene(options) {
|
|
|
228
228
|
this._minimumDisableDepthTestDistance = 0.0;
|
|
229
229
|
this._debugInspector = new DebugInspector();
|
|
230
230
|
|
|
231
|
-
this._msaaSamples = defaultValue(options.msaaSamples,
|
|
231
|
+
this._msaaSamples = defaultValue(options.msaaSamples, 4);
|
|
232
232
|
|
|
233
233
|
/**
|
|
234
234
|
* Exceptions occurring in <code>render</code> are always caught in order to raise the
|
|
@@ -738,7 +738,7 @@ function Scene(options) {
|
|
|
738
738
|
* @type {string}
|
|
739
739
|
*/
|
|
740
740
|
this.specularEnvironmentMaps = undefined;
|
|
741
|
-
this.
|
|
741
|
+
this._specularEnvironmentCubeMap = undefined;
|
|
742
742
|
|
|
743
743
|
/**
|
|
744
744
|
* The light source for shading. Defaults to a directional light from the Sun.
|
|
@@ -927,7 +927,7 @@ Object.defineProperties(Scene.prototype, {
|
|
|
927
927
|
*/
|
|
928
928
|
specularEnvironmentMapsSupported: {
|
|
929
929
|
get: function () {
|
|
930
|
-
return
|
|
930
|
+
return SpecularEnvironmentCubeMap.isSupported(this._context);
|
|
931
931
|
},
|
|
932
932
|
},
|
|
933
933
|
|
|
@@ -1630,7 +1630,7 @@ Object.defineProperties(Scene.prototype, {
|
|
|
1630
1630
|
* The sample rate of multisample antialiasing (values greater than 1 enable MSAA).
|
|
1631
1631
|
* @memberof Scene.prototype
|
|
1632
1632
|
* @type {number}
|
|
1633
|
-
* @default
|
|
1633
|
+
* @default 4
|
|
1634
1634
|
*/
|
|
1635
1635
|
msaaSamples: {
|
|
1636
1636
|
get: function () {
|
|
@@ -1964,11 +1964,11 @@ Scene.prototype.updateFrameState = function () {
|
|
|
1964
1964
|
frameState.verticalExaggerationRelativeHeight = this.verticalExaggerationRelativeHeight;
|
|
1965
1965
|
|
|
1966
1966
|
if (
|
|
1967
|
-
defined(this.
|
|
1968
|
-
this.
|
|
1967
|
+
defined(this._specularEnvironmentCubeMap) &&
|
|
1968
|
+
this._specularEnvironmentCubeMap.ready
|
|
1969
1969
|
) {
|
|
1970
|
-
frameState.specularEnvironmentMaps = this.
|
|
1971
|
-
frameState.specularEnvironmentMapsMaximumLOD = this.
|
|
1970
|
+
frameState.specularEnvironmentMaps = this._specularEnvironmentCubeMap.texture;
|
|
1971
|
+
frameState.specularEnvironmentMapsMaximumLOD = this._specularEnvironmentCubeMap.maximumMipmapLevel;
|
|
1972
1972
|
} else {
|
|
1973
1973
|
frameState.specularEnvironmentMaps = undefined;
|
|
1974
1974
|
frameState.specularEnvironmentMapsMaximumLOD = undefined;
|
|
@@ -3328,20 +3328,18 @@ Scene.prototype.updateEnvironment = function () {
|
|
|
3328
3328
|
);
|
|
3329
3329
|
|
|
3330
3330
|
const envMaps = this.specularEnvironmentMaps;
|
|
3331
|
-
let
|
|
3332
|
-
if (
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
envMapAtlas.destroy();
|
|
3340
|
-
this._specularEnvironmentMapAtlas = undefined;
|
|
3331
|
+
let specularEnvironmentCubeMap = this._specularEnvironmentCubeMap;
|
|
3332
|
+
if (defined(envMaps) && specularEnvironmentCubeMap?.url !== envMaps) {
|
|
3333
|
+
specularEnvironmentCubeMap =
|
|
3334
|
+
specularEnvironmentCubeMap && specularEnvironmentCubeMap.destroy();
|
|
3335
|
+
this._specularEnvironmentCubeMap = new SpecularEnvironmentCubeMap(envMaps);
|
|
3336
|
+
} else if (!defined(envMaps) && defined(specularEnvironmentCubeMap)) {
|
|
3337
|
+
specularEnvironmentCubeMap.destroy();
|
|
3338
|
+
this._specularEnvironmentCubeMap = undefined;
|
|
3341
3339
|
}
|
|
3342
3340
|
|
|
3343
|
-
if (defined(this.
|
|
3344
|
-
this.
|
|
3341
|
+
if (defined(this._specularEnvironmentCubeMap)) {
|
|
3342
|
+
this._specularEnvironmentCubeMap.update(frameState);
|
|
3345
3343
|
}
|
|
3346
3344
|
};
|
|
3347
3345
|
|
|
@@ -4,7 +4,6 @@ import Cartesian3 from "../Core/Cartesian3.js";
|
|
|
4
4
|
import Cartesian4 from "../Core/Cartesian4.js";
|
|
5
5
|
import Cartographic from "../Core/Cartographic.js";
|
|
6
6
|
import defined from "../Core/defined.js";
|
|
7
|
-
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
8
7
|
import DeveloperError from "../Core/DeveloperError.js";
|
|
9
8
|
import CesiumMath from "../Core/Math.js";
|
|
10
9
|
import Matrix4 from "../Core/Matrix4.js";
|
|
@@ -53,33 +52,6 @@ SceneTransforms.worldToWindowCoordinates = function (scene, position, result) {
|
|
|
53
52
|
);
|
|
54
53
|
};
|
|
55
54
|
|
|
56
|
-
/**
|
|
57
|
-
* Transforms a position in WGS84 coordinates to window coordinates. This is commonly used to place an
|
|
58
|
-
* HTML element at the same screen position as an object in the scene.
|
|
59
|
-
*
|
|
60
|
-
* @param {Scene} scene The scene.
|
|
61
|
-
* @param {Cartesian3} position The position in WGS84 (world) coordinates.
|
|
62
|
-
* @param {Cartesian2} [result] An optional object to return the input position transformed to window coordinates.
|
|
63
|
-
* @returns {Cartesian2|undefined} The modified result parameter or a new Cartesian2 instance if one was not provided. This may be <code>undefined</code> if the input position is near the center of the ellipsoid.
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* // Output the window position of longitude/latitude (0, 0) every time the mouse moves.
|
|
67
|
-
* const scene = widget.scene;
|
|
68
|
-
* const ellipsoid = scene.ellipsoid;
|
|
69
|
-
* const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
|
|
70
|
-
* const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
|
|
71
|
-
* handler.setInputAction(function(movement) {
|
|
72
|
-
* console.log(Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, position));
|
|
73
|
-
* }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
74
|
-
*/
|
|
75
|
-
SceneTransforms.wgs84ToWindowCoordinates = function (scene, position, result) {
|
|
76
|
-
deprecationWarning(
|
|
77
|
-
"SceneTransforms.wgs84ToWindowCoordinates",
|
|
78
|
-
"SceneTransforms.wgs84ToWindowCoordinates has been deprecated. It will be removed in 1.21. Use SceneTransforms.worldToWindowCoordinates instead."
|
|
79
|
-
);
|
|
80
|
-
return SceneTransforms.worldToWindowCoordinates(scene, position, result);
|
|
81
|
-
};
|
|
82
|
-
|
|
83
55
|
const scratchCartesian4 = new Cartesian4();
|
|
84
56
|
const scratchEyeOffset = new Cartesian3();
|
|
85
57
|
|
|
@@ -320,40 +292,6 @@ SceneTransforms.worldToDrawingBufferCoordinates = function (
|
|
|
320
292
|
return SceneTransforms.transformWindowToDrawingBuffer(scene, result, result);
|
|
321
293
|
};
|
|
322
294
|
|
|
323
|
-
/**
|
|
324
|
-
* Transforms a position in world coordinates to drawing buffer coordinates. This may produce different
|
|
325
|
-
* results from SceneTransforms.wgs84ToWindowCoordinates when the browser zoom is not 100%, or on high-DPI displays.
|
|
326
|
-
*
|
|
327
|
-
* @param {Scene} scene The scene.
|
|
328
|
-
* @param {Cartesian3} position The position in world (WGS84 or alternative ellipsoid) coordinates.
|
|
329
|
-
* @param {Cartesian2} [result] An optional object to return the input position transformed to window coordinates.
|
|
330
|
-
* @returns {Cartesian2|undefined} The modified result parameter or a new Cartesian2 instance if one was not provided. This may be <code>undefined</code> if the input position is near the center of the ellipsoid.
|
|
331
|
-
*
|
|
332
|
-
* @example
|
|
333
|
-
* // Output the window position of longitude/latitude (0, 0) every time the mouse moves.
|
|
334
|
-
* const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
|
|
335
|
-
* const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
|
|
336
|
-
* handler.setInputAction(function(movement) {
|
|
337
|
-
* console.log(Cesium.SceneTransforms.wgs84ToWindowCoordinates(scene, position));
|
|
338
|
-
* }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
339
|
-
*/
|
|
340
|
-
SceneTransforms.wgs84ToDrawingBufferCoordinates = function (
|
|
341
|
-
scene,
|
|
342
|
-
position,
|
|
343
|
-
result
|
|
344
|
-
) {
|
|
345
|
-
deprecationWarning(
|
|
346
|
-
"SceneTransforms.wgs84ToDrawingBufferCoordinates",
|
|
347
|
-
"SceneTransforms.wgs84ToDrawingBufferCoordinates has been deprecated. It will be removed in 1.21. Use SceneTransforms.worldToDrawingBufferCoordinates instead."
|
|
348
|
-
);
|
|
349
|
-
|
|
350
|
-
return SceneTransforms.worldToDrawingBufferCoordinates(
|
|
351
|
-
scene,
|
|
352
|
-
position,
|
|
353
|
-
result
|
|
354
|
-
);
|
|
355
|
-
};
|
|
356
|
-
|
|
357
295
|
const projectedPosition = new Cartesian3();
|
|
358
296
|
const positionInCartographic = new Cartographic();
|
|
359
297
|
|
|
@@ -137,6 +137,14 @@ function ScreenSpaceCameraController(scene) {
|
|
|
137
137
|
* @default {@link Number.POSITIVE_INFINITY}
|
|
138
138
|
*/
|
|
139
139
|
this.maximumZoomDistance = Number.POSITIVE_INFINITY;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* A multiplier for the speed at which the camera will zoom.
|
|
143
|
+
* @type {Number}
|
|
144
|
+
* @default 5.0
|
|
145
|
+
*/
|
|
146
|
+
this.zoomFactor = 5.0;
|
|
147
|
+
|
|
140
148
|
/**
|
|
141
149
|
* The input that allows the user to pan around the map. This only applies in 2D and Columbus view modes.
|
|
142
150
|
* <p>
|
|
@@ -324,7 +332,6 @@ function ScreenSpaceCameraController(scene) {
|
|
|
324
332
|
);
|
|
325
333
|
|
|
326
334
|
// Constants, Make any of these public?
|
|
327
|
-
this._zoomFactor = 5.0;
|
|
328
335
|
this._rotateFactor = undefined;
|
|
329
336
|
this._rotateRateRangeAdjustment = undefined;
|
|
330
337
|
this._maximumRotateRate = 1.77;
|
|
@@ -1005,7 +1012,7 @@ function zoom2D(controller, startPosition, movement) {
|
|
|
1005
1012
|
controller,
|
|
1006
1013
|
startPosition,
|
|
1007
1014
|
movement,
|
|
1008
|
-
controller.
|
|
1015
|
+
controller.zoomFactor,
|
|
1009
1016
|
camera.getMagnitude()
|
|
1010
1017
|
);
|
|
1011
1018
|
}
|
|
@@ -1763,7 +1770,7 @@ function zoomCV(controller, startPosition, movement) {
|
|
|
1763
1770
|
controller,
|
|
1764
1771
|
startPosition,
|
|
1765
1772
|
movement,
|
|
1766
|
-
controller.
|
|
1773
|
+
controller.zoomFactor,
|
|
1767
1774
|
distance
|
|
1768
1775
|
);
|
|
1769
1776
|
}
|
|
@@ -2363,7 +2370,7 @@ function zoom3D(controller, startPosition, movement) {
|
|
|
2363
2370
|
controller,
|
|
2364
2371
|
startPosition,
|
|
2365
2372
|
movement,
|
|
2366
|
-
controller.
|
|
2373
|
+
controller.zoomFactor,
|
|
2367
2374
|
distance,
|
|
2368
2375
|
Cartesian3.dot(unitPosition, camera.direction)
|
|
2369
2376
|
);
|
package/Source/Scene/SkyBox.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import buildModuleUrl from "../Core/buildModuleUrl.js";
|
|
2
2
|
import BoxGeometry from "../Core/BoxGeometry.js";
|
|
3
3
|
import Cartesian3 from "../Core/Cartesian3.js";
|
|
4
|
+
import Check from "../Core/Check.js";
|
|
4
5
|
import defaultValue from "../Core/defaultValue.js";
|
|
5
6
|
import defined from "../Core/defined.js";
|
|
6
7
|
import destroyObject from "../Core/destroyObject.js";
|
|
@@ -95,49 +96,42 @@ function SkyBox(options) {
|
|
|
95
96
|
*/
|
|
96
97
|
SkyBox.prototype.update = function (frameState, useHdr) {
|
|
97
98
|
const that = this;
|
|
99
|
+
const { mode, passes, context } = frameState;
|
|
98
100
|
|
|
99
101
|
if (!this.show) {
|
|
100
102
|
return undefined;
|
|
101
103
|
}
|
|
102
104
|
|
|
103
|
-
if (
|
|
104
|
-
frameState.mode !== SceneMode.SCENE3D &&
|
|
105
|
-
frameState.mode !== SceneMode.MORPHING
|
|
106
|
-
) {
|
|
105
|
+
if (mode !== SceneMode.SCENE3D && mode !== SceneMode.MORPHING) {
|
|
107
106
|
return undefined;
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
// The sky box is only rendered during the render pass; it is not pickable, it doesn't cast shadows, etc.
|
|
111
|
-
if (!
|
|
110
|
+
if (!passes.render) {
|
|
112
111
|
return undefined;
|
|
113
112
|
}
|
|
114
113
|
|
|
115
|
-
const context = frameState.context;
|
|
116
|
-
|
|
117
114
|
if (this._sources !== this.sources) {
|
|
118
115
|
this._sources = this.sources;
|
|
119
116
|
const sources = this.sources;
|
|
120
117
|
|
|
121
118
|
//>>includeStart('debug', pragmas.debug);
|
|
119
|
+
Check.defined("this.sources", sources);
|
|
122
120
|
if (
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
!defined(sources.negativeY) ||
|
|
127
|
-
!defined(sources.positiveZ) ||
|
|
128
|
-
!defined(sources.negativeZ)
|
|
121
|
+
Object.values(CubeMap.FaceName).some(
|
|
122
|
+
(faceName) => !defined(sources[faceName])
|
|
123
|
+
)
|
|
129
124
|
) {
|
|
130
125
|
throw new DeveloperError(
|
|
131
|
-
"this.sources
|
|
126
|
+
"this.sources must have positiveX, negativeX, positiveY, negativeY, positiveZ, and negativeZ properties."
|
|
132
127
|
);
|
|
133
128
|
}
|
|
134
129
|
|
|
130
|
+
const sourceType = typeof sources.positiveX;
|
|
135
131
|
if (
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
typeof sources.positiveX !== typeof sources.positiveZ ||
|
|
140
|
-
typeof sources.positiveX !== typeof sources.negativeZ
|
|
132
|
+
Object.values(CubeMap.FaceName).some(
|
|
133
|
+
(faceName) => typeof sources[faceName] !== sourceType
|
|
134
|
+
)
|
|
141
135
|
) {
|
|
142
136
|
throw new DeveloperError(
|
|
143
137
|
"this.sources properties must all be the same type."
|