@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
|
@@ -50,7 +50,7 @@ uniform vec4 u_colorsToAlpha[TEXTURE_UNITS];\n\
|
|
|
50
50
|
uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS];\n\
|
|
51
51
|
#endif\n\
|
|
52
52
|
\n\
|
|
53
|
-
#
|
|
53
|
+
#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL))\n\
|
|
54
54
|
uniform sampler2D u_waterMask;\n\
|
|
55
55
|
uniform vec4 u_waterMaskTranslationAndScale;\n\
|
|
56
56
|
uniform float u_zoomedOutOceanSpecularIntensity;\n\
|
|
@@ -363,7 +363,7 @@ void main()\n\
|
|
|
363
363
|
float fade = 0.0;\n\
|
|
364
364
|
#endif\n\
|
|
365
365
|
\n\
|
|
366
|
-
#
|
|
366
|
+
#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL))\n\
|
|
367
367
|
vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy;\n\
|
|
368
368
|
vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw;\n\
|
|
369
369
|
vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation;\n\
|
|
@@ -371,6 +371,7 @@ void main()\n\
|
|
|
371
371
|
\n\
|
|
372
372
|
float mask = texture(u_waterMask, waterMaskTextureCoordinates).r;\n\
|
|
373
373
|
\n\
|
|
374
|
+
#ifdef SHOW_REFLECTIVE_OCEAN\n\
|
|
374
375
|
if (mask > 0.0)\n\
|
|
375
376
|
{\n\
|
|
376
377
|
mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC);\n\
|
|
@@ -382,6 +383,7 @@ void main()\n\
|
|
|
382
383
|
\n\
|
|
383
384
|
color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade);\n\
|
|
384
385
|
}\n\
|
|
386
|
+
#endif\n\
|
|
385
387
|
#endif\n\
|
|
386
388
|
\n\
|
|
387
389
|
#ifdef APPLY_MATERIAL\n\
|
|
@@ -393,6 +395,10 @@ void main()\n\
|
|
|
393
395
|
materialInput.slope = v_slope;\n\
|
|
394
396
|
materialInput.height = v_height;\n\
|
|
395
397
|
materialInput.aspect = v_aspect;\n\
|
|
398
|
+
#ifdef HAS_WATER_MASK\n\
|
|
399
|
+
materialInput.waterMask = mask;\n\
|
|
400
|
+
#endif\n\
|
|
401
|
+
\n\
|
|
396
402
|
czm_material material = czm_getMaterial(materialInput);\n\
|
|
397
403
|
vec4 materialColor = vec4(material.diffuse, material.alpha);\n\
|
|
398
404
|
color = alphaBlend(materialColor, color);\n\
|
|
@@ -423,7 +429,7 @@ void main()\n\
|
|
|
423
429
|
#ifdef ENABLE_CLIPPING_POLYGONS\n\
|
|
424
430
|
vec2 clippingPosition = v_clippingPosition;\n\
|
|
425
431
|
int regionIndex = v_regionIndex;\n\
|
|
426
|
-
clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex)
|
|
432
|
+
clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex);\n\
|
|
427
433
|
#endif\n\
|
|
428
434
|
\n\
|
|
429
435
|
#ifdef HIGHLIGHT_FILL_TILE\n\
|
|
@@ -490,7 +496,7 @@ void main()\n\
|
|
|
490
496
|
#endif\n\
|
|
491
497
|
\n\
|
|
492
498
|
#ifndef HDR\n\
|
|
493
|
-
fogColor.rgb =
|
|
499
|
+
fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb);\n\
|
|
494
500
|
fogColor.rgb = czm_inverseGamma(fogColor.rgb);\n\
|
|
495
501
|
#endif\n\
|
|
496
502
|
\n\
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
uniform vec4 waterColor;
|
|
2
|
+
uniform vec4 landColor;
|
|
3
|
+
|
|
4
|
+
czm_material czm_getMaterial(czm_materialInput materialInput)
|
|
5
|
+
{
|
|
6
|
+
czm_material material = czm_getDefaultMaterial(materialInput);
|
|
7
|
+
|
|
8
|
+
vec4 outColor = mix(landColor, waterColor, materialInput.waterMask);
|
|
9
|
+
outColor = czm_gammaCorrect(outColor);
|
|
10
|
+
|
|
11
|
+
material.diffuse = outColor.rgb;
|
|
12
|
+
material.alpha = outColor.a;
|
|
13
|
+
|
|
14
|
+
return material;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "uniform vec4 waterColor;\n\
|
|
3
|
+
uniform vec4 landColor;\n\
|
|
4
|
+
\n\
|
|
5
|
+
czm_material czm_getMaterial(czm_materialInput materialInput)\n\
|
|
6
|
+
{\n\
|
|
7
|
+
czm_material material = czm_getDefaultMaterial(materialInput);\n\
|
|
8
|
+
\n\
|
|
9
|
+
vec4 outColor = mix(landColor, waterColor, materialInput.waterMask);\n\
|
|
10
|
+
outColor = czm_gammaCorrect(outColor);\n\
|
|
11
|
+
\n\
|
|
12
|
+
material.diffuse = outColor.rgb;\n\
|
|
13
|
+
material.alpha = outColor.a;\n\
|
|
14
|
+
\n\
|
|
15
|
+
return material;\n\
|
|
16
|
+
}\n\
|
|
17
|
+
";
|
|
@@ -52,7 +52,7 @@ void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection,
|
|
|
52
52
|
|
|
53
53
|
// Tonemap if HDR rendering is disabled
|
|
54
54
|
#ifndef HDR
|
|
55
|
-
fogColor.rgb =
|
|
55
|
+
fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb);
|
|
56
56
|
fogColor.rgb = czm_inverseGamma(fogColor.rgb);
|
|
57
57
|
#endif
|
|
58
58
|
|
|
@@ -53,7 +53,7 @@ void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection,
|
|
|
53
53
|
\n\
|
|
54
54
|
// Tonemap if HDR rendering is disabled\n\
|
|
55
55
|
#ifndef HDR\n\
|
|
56
|
-
fogColor.rgb =
|
|
56
|
+
fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb);\n\
|
|
57
57
|
fogColor.rgb = czm_inverseGamma(fogColor.rgb);\n\
|
|
58
58
|
#endif\n\
|
|
59
59
|
\n\
|
|
@@ -152,7 +152,7 @@ float getSunLuminance(vec3 positionWC, vec3 normalEC, vec3 lightDirectionEC)
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
#ifdef DIFFUSE_IBL
|
|
155
|
-
vec3
|
|
155
|
+
vec3 sampleDiffuseEnvironment(vec3 cubeDir)
|
|
156
156
|
{
|
|
157
157
|
#ifdef CUSTOM_SPHERICAL_HARMONICS
|
|
158
158
|
return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients);
|
|
@@ -166,13 +166,11 @@ vec3 computeDiffuseIBL(vec3 cubeDir)
|
|
|
166
166
|
vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness)
|
|
167
167
|
{
|
|
168
168
|
#ifdef CUSTOM_SPECULAR_IBL
|
|
169
|
-
float
|
|
170
|
-
|
|
171
|
-
return czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, lod, maxLod);
|
|
169
|
+
float lod = roughness * model_specularEnvironmentMapsMaximumLOD;
|
|
170
|
+
return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb;
|
|
172
171
|
#else
|
|
173
|
-
float
|
|
174
|
-
|
|
175
|
-
return czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, lod, maxLod);
|
|
172
|
+
float lod = roughness * czm_specularEnvironmentMapsMaximumLOD;
|
|
173
|
+
return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb;
|
|
176
174
|
#endif
|
|
177
175
|
}
|
|
178
176
|
vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness)
|
|
@@ -191,25 +189,43 @@ vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness)
|
|
|
191
189
|
|
|
192
190
|
#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
|
|
193
191
|
/**
|
|
194
|
-
* Compute the light contributions from environment maps and spherical harmonic coefficients
|
|
192
|
+
* Compute the light contributions from environment maps and spherical harmonic coefficients.
|
|
193
|
+
* See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation
|
|
194
|
+
* of the single- and multi-scattering terms.
|
|
195
195
|
*
|
|
196
|
-
* @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position
|
|
197
|
-
* @param {vec3} normalEC The surface normal in eye coordinates
|
|
198
|
-
* @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
|
|
196
|
+
* @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position.
|
|
197
|
+
* @param {vec3} normalEC The surface normal in eye coordinates.
|
|
199
198
|
* @param {czm_modelMaterial} The material properties.
|
|
200
|
-
* @return {vec3} The computed HDR color
|
|
199
|
+
* @return {vec3} The computed HDR color.
|
|
201
200
|
*/
|
|
202
|
-
vec3 textureIBL(
|
|
203
|
-
vec3
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
201
|
+
vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) {
|
|
202
|
+
vec3 f0 = material.specular;
|
|
203
|
+
float roughness = material.roughness;
|
|
204
|
+
float specularWeight = 1.0;
|
|
205
|
+
#ifdef USE_SPECULAR
|
|
206
|
+
specularWeight = material.specularWeight;
|
|
207
|
+
#endif
|
|
208
|
+
float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0);
|
|
209
|
+
|
|
210
|
+
// see https://bruop.github.io/ibl/ at Single Scattering Results
|
|
211
|
+
// Roughness dependent fresnel, from Fdez-Aguera
|
|
212
|
+
vec3 f90 = max(vec3(1.0 - roughness), f0);
|
|
213
|
+
vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV);
|
|
214
|
+
|
|
215
|
+
vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
|
|
216
|
+
vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y);
|
|
217
|
+
|
|
208
218
|
#ifdef DIFFUSE_IBL
|
|
209
219
|
vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC);
|
|
210
|
-
vec3
|
|
220
|
+
vec3 irradiance = sampleDiffuseEnvironment(normalMC);
|
|
221
|
+
|
|
222
|
+
vec3 averageFresnel = f0 + (1.0 - f0) / 21.0;
|
|
223
|
+
float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y);
|
|
224
|
+
vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems);
|
|
225
|
+
vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse;
|
|
226
|
+
vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering);
|
|
211
227
|
#else
|
|
212
|
-
vec3 diffuseContribution = vec3(0.0);
|
|
228
|
+
vec3 diffuseContribution = vec3(0.0);
|
|
213
229
|
#endif
|
|
214
230
|
|
|
215
231
|
#ifdef USE_ANISOTROPY
|
|
@@ -217,7 +233,7 @@ vec3 textureIBL(
|
|
|
217
233
|
vec3 anisotropyDirection = material.anisotropicB;
|
|
218
234
|
vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC);
|
|
219
235
|
vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection);
|
|
220
|
-
float bendFactor = 1.0 - material.anisotropyStrength * (1.0 -
|
|
236
|
+
float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness);
|
|
221
237
|
float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor;
|
|
222
238
|
vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4));
|
|
223
239
|
vec3 reflectEC = reflect(-viewDirectionEC, bentNormal);
|
|
@@ -227,15 +243,10 @@ vec3 textureIBL(
|
|
|
227
243
|
|
|
228
244
|
#ifdef SPECULAR_IBL
|
|
229
245
|
vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC);
|
|
230
|
-
|
|
231
|
-
vec3
|
|
232
|
-
vec3 specularContribution = computeSpecularIBL(reflectMC, NdotV, f0, material.roughness);
|
|
246
|
+
vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness);
|
|
247
|
+
vec3 specularContribution = radiance * FssEss;
|
|
233
248
|
#else
|
|
234
|
-
vec3 specularContribution = vec3(0.0);
|
|
235
|
-
#endif
|
|
236
|
-
|
|
237
|
-
#ifdef USE_SPECULAR
|
|
238
|
-
specularContribution *= material.specularWeight;
|
|
249
|
+
vec3 specularContribution = vec3(0.0);
|
|
239
250
|
#endif
|
|
240
251
|
|
|
241
252
|
return diffuseContribution + specularContribution;
|
|
@@ -153,7 +153,7 @@ float getSunLuminance(vec3 positionWC, vec3 normalEC, vec3 lightDirectionEC)\n\
|
|
|
153
153
|
}\n\
|
|
154
154
|
\n\
|
|
155
155
|
#ifdef DIFFUSE_IBL\n\
|
|
156
|
-
vec3
|
|
156
|
+
vec3 sampleDiffuseEnvironment(vec3 cubeDir)\n\
|
|
157
157
|
{\n\
|
|
158
158
|
#ifdef CUSTOM_SPHERICAL_HARMONICS\n\
|
|
159
159
|
return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); \n\
|
|
@@ -167,13 +167,11 @@ vec3 computeDiffuseIBL(vec3 cubeDir)\n\
|
|
|
167
167
|
vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness)\n\
|
|
168
168
|
{\n\
|
|
169
169
|
#ifdef CUSTOM_SPECULAR_IBL\n\
|
|
170
|
-
float
|
|
171
|
-
|
|
172
|
-
return czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, lod, maxLod);\n\
|
|
170
|
+
float lod = roughness * model_specularEnvironmentMapsMaximumLOD;\n\
|
|
171
|
+
return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb;\n\
|
|
173
172
|
#else\n\
|
|
174
|
-
float
|
|
175
|
-
|
|
176
|
-
return czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, lod, maxLod);\n\
|
|
173
|
+
float lod = roughness * czm_specularEnvironmentMapsMaximumLOD;\n\
|
|
174
|
+
return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb;\n\
|
|
177
175
|
#endif\n\
|
|
178
176
|
}\n\
|
|
179
177
|
vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness)\n\
|
|
@@ -192,25 +190,43 @@ vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness)\n\
|
|
|
192
190
|
\n\
|
|
193
191
|
#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)\n\
|
|
194
192
|
/**\n\
|
|
195
|
-
* Compute the light contributions from environment maps and spherical harmonic coefficients
|
|
193
|
+
* Compute the light contributions from environment maps and spherical harmonic coefficients.\n\
|
|
194
|
+
* See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation\n\
|
|
195
|
+
* of the single- and multi-scattering terms.\n\
|
|
196
196
|
*\n\
|
|
197
|
-
* @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position
|
|
198
|
-
* @param {vec3} normalEC The surface normal in eye coordinates
|
|
199
|
-
* @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.\n\
|
|
197
|
+
* @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position.\n\
|
|
198
|
+
* @param {vec3} normalEC The surface normal in eye coordinates.\n\
|
|
200
199
|
* @param {czm_modelMaterial} The material properties.\n\
|
|
201
|
-
* @return {vec3} The computed HDR color
|
|
200
|
+
* @return {vec3} The computed HDR color.\n\
|
|
202
201
|
*/\n\
|
|
203
|
-
vec3 textureIBL(\n\
|
|
204
|
-
vec3
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
202
|
+
vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) {\n\
|
|
203
|
+
vec3 f0 = material.specular;\n\
|
|
204
|
+
float roughness = material.roughness;\n\
|
|
205
|
+
float specularWeight = 1.0;\n\
|
|
206
|
+
#ifdef USE_SPECULAR\n\
|
|
207
|
+
specularWeight = material.specularWeight;\n\
|
|
208
|
+
#endif\n\
|
|
209
|
+
float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0);\n\
|
|
210
|
+
\n\
|
|
211
|
+
// see https://bruop.github.io/ibl/ at Single Scattering Results\n\
|
|
212
|
+
// Roughness dependent fresnel, from Fdez-Aguera\n\
|
|
213
|
+
vec3 f90 = max(vec3(1.0 - roughness), f0);\n\
|
|
214
|
+
vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV);\n\
|
|
215
|
+
\n\
|
|
216
|
+
vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;\n\
|
|
217
|
+
vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y);\n\
|
|
218
|
+
\n\
|
|
209
219
|
#ifdef DIFFUSE_IBL\n\
|
|
210
220
|
vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC);\n\
|
|
211
|
-
vec3
|
|
221
|
+
vec3 irradiance = sampleDiffuseEnvironment(normalMC);\n\
|
|
222
|
+
\n\
|
|
223
|
+
vec3 averageFresnel = f0 + (1.0 - f0) / 21.0;\n\
|
|
224
|
+
float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y);\n\
|
|
225
|
+
vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems);\n\
|
|
226
|
+
vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse;\n\
|
|
227
|
+
vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering);\n\
|
|
212
228
|
#else\n\
|
|
213
|
-
vec3 diffuseContribution = vec3(0.0)
|
|
229
|
+
vec3 diffuseContribution = vec3(0.0);\n\
|
|
214
230
|
#endif\n\
|
|
215
231
|
\n\
|
|
216
232
|
#ifdef USE_ANISOTROPY\n\
|
|
@@ -218,7 +234,7 @@ vec3 textureIBL(\n\
|
|
|
218
234
|
vec3 anisotropyDirection = material.anisotropicB;\n\
|
|
219
235
|
vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC);\n\
|
|
220
236
|
vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection);\n\
|
|
221
|
-
float bendFactor = 1.0 - material.anisotropyStrength * (1.0 -
|
|
237
|
+
float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness);\n\
|
|
222
238
|
float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor;\n\
|
|
223
239
|
vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4));\n\
|
|
224
240
|
vec3 reflectEC = reflect(-viewDirectionEC, bentNormal);\n\
|
|
@@ -228,15 +244,10 @@ vec3 textureIBL(\n\
|
|
|
228
244
|
\n\
|
|
229
245
|
#ifdef SPECULAR_IBL\n\
|
|
230
246
|
vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC);\n\
|
|
231
|
-
|
|
232
|
-
vec3
|
|
233
|
-
vec3 specularContribution = computeSpecularIBL(reflectMC, NdotV, f0, material.roughness);\n\
|
|
247
|
+
vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness);\n\
|
|
248
|
+
vec3 specularContribution = radiance * FssEss;\n\
|
|
234
249
|
#else\n\
|
|
235
|
-
vec3 specularContribution = vec3(0.0)
|
|
236
|
-
#endif\n\
|
|
237
|
-
\n\
|
|
238
|
-
#ifdef USE_SPECULAR\n\
|
|
239
|
-
specularContribution *= material.specularWeight;\n\
|
|
250
|
+
vec3 specularContribution = vec3(0.0);\n\
|
|
240
251
|
#endif\n\
|
|
241
252
|
\n\
|
|
242
253
|
return diffuseContribution + specularContribution;\n\
|
|
@@ -4,7 +4,7 @@ vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColor
|
|
|
4
4
|
#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
|
|
5
5
|
// Environment maps were provided, use them for IBL
|
|
6
6
|
vec3 viewDirection = -normalize(position);
|
|
7
|
-
vec3 iblColor = textureIBL(viewDirection, normal,
|
|
7
|
+
vec3 iblColor = textureIBL(viewDirection, normal, material);
|
|
8
8
|
#else
|
|
9
9
|
// Use procedural IBL if there are no environment maps
|
|
10
10
|
vec3 imageBasedLighting = proceduralIBL(position, normal, lightDirection, material);
|
|
@@ -120,7 +120,7 @@ void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attribu
|
|
|
120
120
|
// tonemapping. However, if HDR is not enabled, we must tonemap else large
|
|
121
121
|
// values may be clamped to 1.0
|
|
122
122
|
#ifndef HDR
|
|
123
|
-
color =
|
|
123
|
+
color = czm_pbrNeutralTonemapping(color);
|
|
124
124
|
#endif
|
|
125
125
|
#else // unlit
|
|
126
126
|
vec3 color = material.diffuse;
|
|
@@ -5,7 +5,7 @@ vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColor
|
|
|
5
5
|
#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)\n\
|
|
6
6
|
// Environment maps were provided, use them for IBL\n\
|
|
7
7
|
vec3 viewDirection = -normalize(position);\n\
|
|
8
|
-
vec3 iblColor = textureIBL(viewDirection, normal,
|
|
8
|
+
vec3 iblColor = textureIBL(viewDirection, normal, material);\n\
|
|
9
9
|
#else\n\
|
|
10
10
|
// Use procedural IBL if there are no environment maps\n\
|
|
11
11
|
vec3 imageBasedLighting = proceduralIBL(position, normal, lightDirection, material);\n\
|
|
@@ -121,7 +121,7 @@ void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attribu
|
|
|
121
121
|
// tonemapping. However, if HDR is not enabled, we must tonemap else large\n\
|
|
122
122
|
// values may be clamped to 1.0\n\
|
|
123
123
|
#ifndef HDR\n\
|
|
124
|
-
color =
|
|
124
|
+
color = czm_pbrNeutralTonemapping(color);\n\
|
|
125
125
|
#endif\n\
|
|
126
126
|
#else // unlit\n\
|
|
127
127
|
vec3 color = material.diffuse;\n\
|
|
@@ -4,6 +4,8 @@ in vec2 v_textureCoordinates;
|
|
|
4
4
|
|
|
5
5
|
#ifdef AUTO_EXPOSURE
|
|
6
6
|
uniform sampler2D autoExposure;
|
|
7
|
+
#else
|
|
8
|
+
uniform float exposure;
|
|
7
9
|
#endif
|
|
8
10
|
|
|
9
11
|
void main()
|
|
@@ -13,6 +15,8 @@ void main()
|
|
|
13
15
|
|
|
14
16
|
#ifdef AUTO_EXPOSURE
|
|
15
17
|
color /= texture(autoExposure, vec2(0.5)).r;
|
|
18
|
+
#else
|
|
19
|
+
color *= vec3(exposure);
|
|
16
20
|
#endif
|
|
17
21
|
color = czm_acesTonemapping(color);
|
|
18
22
|
color = czm_inverseGamma(color);
|
|
@@ -5,6 +5,8 @@ in vec2 v_textureCoordinates;\n\
|
|
|
5
5
|
\n\
|
|
6
6
|
#ifdef AUTO_EXPOSURE\n\
|
|
7
7
|
uniform sampler2D autoExposure;\n\
|
|
8
|
+
#else\n\
|
|
9
|
+
uniform float exposure;\n\
|
|
8
10
|
#endif\n\
|
|
9
11
|
\n\
|
|
10
12
|
void main()\n\
|
|
@@ -14,6 +16,8 @@ void main()\n\
|
|
|
14
16
|
\n\
|
|
15
17
|
#ifdef AUTO_EXPOSURE\n\
|
|
16
18
|
color /= texture(autoExposure, vec2(0.5)).r;\n\
|
|
19
|
+
#else\n\
|
|
20
|
+
color *= vec3(exposure);\n\
|
|
17
21
|
#endif\n\
|
|
18
22
|
color = czm_acesTonemapping(color);\n\
|
|
19
23
|
color = czm_inverseGamma(color);\n\
|
|
@@ -4,6 +4,8 @@ in vec2 v_textureCoordinates;
|
|
|
4
4
|
|
|
5
5
|
#ifdef AUTO_EXPOSURE
|
|
6
6
|
uniform sampler2D autoExposure;
|
|
7
|
+
#else
|
|
8
|
+
uniform float exposure;
|
|
7
9
|
#endif
|
|
8
10
|
|
|
9
11
|
// See slides 142 and 143:
|
|
@@ -17,6 +19,8 @@ void main()
|
|
|
17
19
|
#ifdef AUTO_EXPOSURE
|
|
18
20
|
float exposure = texture(autoExposure, vec2(0.5)).r;
|
|
19
21
|
color /= exposure;
|
|
22
|
+
#else
|
|
23
|
+
color *= vec3(exposure);
|
|
20
24
|
#endif
|
|
21
25
|
|
|
22
26
|
const float A = 0.22; // shoulder strength
|
|
@@ -5,6 +5,8 @@ in vec2 v_textureCoordinates;\n\
|
|
|
5
5
|
\n\
|
|
6
6
|
#ifdef AUTO_EXPOSURE\n\
|
|
7
7
|
uniform sampler2D autoExposure;\n\
|
|
8
|
+
#else\n\
|
|
9
|
+
uniform float exposure;\n\
|
|
8
10
|
#endif\n\
|
|
9
11
|
\n\
|
|
10
12
|
// See slides 142 and 143:\n\
|
|
@@ -18,6 +20,8 @@ void main()\n\
|
|
|
18
20
|
#ifdef AUTO_EXPOSURE\n\
|
|
19
21
|
float exposure = texture(autoExposure, vec2(0.5)).r;\n\
|
|
20
22
|
color /= exposure;\n\
|
|
23
|
+
#else\n\
|
|
24
|
+
color *= vec3(exposure);\n\
|
|
21
25
|
#endif\n\
|
|
22
26
|
\n\
|
|
23
27
|
const float A = 0.22; // shoulder strength\n\
|
|
@@ -5,6 +5,8 @@ in vec2 v_textureCoordinates;
|
|
|
5
5
|
|
|
6
6
|
#ifdef AUTO_EXPOSURE
|
|
7
7
|
uniform sampler2D autoExposure;
|
|
8
|
+
#else
|
|
9
|
+
uniform float exposure;
|
|
8
10
|
#endif
|
|
9
11
|
|
|
10
12
|
// See equation 4:
|
|
@@ -17,6 +19,8 @@ void main()
|
|
|
17
19
|
#ifdef AUTO_EXPOSURE
|
|
18
20
|
float exposure = texture(autoExposure, vec2(0.5)).r;
|
|
19
21
|
color /= exposure;
|
|
22
|
+
#else
|
|
23
|
+
color *= vec3(exposure);
|
|
20
24
|
#endif
|
|
21
25
|
color = (color * (1.0 + color / white)) / (1.0 + color);
|
|
22
26
|
color = czm_inverseGamma(color);
|
|
@@ -6,6 +6,8 @@ in vec2 v_textureCoordinates;\n\
|
|
|
6
6
|
\n\
|
|
7
7
|
#ifdef AUTO_EXPOSURE\n\
|
|
8
8
|
uniform sampler2D autoExposure;\n\
|
|
9
|
+
#else\n\
|
|
10
|
+
uniform float exposure;\n\
|
|
9
11
|
#endif\n\
|
|
10
12
|
\n\
|
|
11
13
|
// See equation 4:\n\
|
|
@@ -18,6 +20,8 @@ void main()\n\
|
|
|
18
20
|
#ifdef AUTO_EXPOSURE\n\
|
|
19
21
|
float exposure = texture(autoExposure, vec2(0.5)).r;\n\
|
|
20
22
|
color /= exposure;\n\
|
|
23
|
+
#else\n\
|
|
24
|
+
color *= vec3(exposure);\n\
|
|
21
25
|
#endif\n\
|
|
22
26
|
color = (color * (1.0 + color / white)) / (1.0 + color);\n\
|
|
23
27
|
color = czm_inverseGamma(color);\n\
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
uniform sampler2D colorTexture;
|
|
2
|
+
|
|
3
|
+
in vec2 v_textureCoordinates;
|
|
4
|
+
|
|
5
|
+
#ifdef AUTO_EXPOSURE
|
|
6
|
+
uniform sampler2D autoExposure;
|
|
7
|
+
#else
|
|
8
|
+
uniform float exposure;
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
void main()
|
|
12
|
+
{
|
|
13
|
+
vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
|
|
14
|
+
vec3 color = fragmentColor.rgb;
|
|
15
|
+
|
|
16
|
+
#ifdef AUTO_EXPOSURE
|
|
17
|
+
color /= texture(autoExposure, vec2(0.5)).r;
|
|
18
|
+
#else
|
|
19
|
+
color *= vec3(exposure);
|
|
20
|
+
#endif
|
|
21
|
+
color = czm_pbrNeutralTonemapping(color);
|
|
22
|
+
color = czm_inverseGamma(color);
|
|
23
|
+
|
|
24
|
+
out_FragColor = vec4(color, fragmentColor.a);
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "uniform sampler2D colorTexture;\n\
|
|
3
|
+
\n\
|
|
4
|
+
in vec2 v_textureCoordinates;\n\
|
|
5
|
+
\n\
|
|
6
|
+
#ifdef AUTO_EXPOSURE\n\
|
|
7
|
+
uniform sampler2D autoExposure;\n\
|
|
8
|
+
#else\n\
|
|
9
|
+
uniform float exposure;\n\
|
|
10
|
+
#endif\n\
|
|
11
|
+
\n\
|
|
12
|
+
void main()\n\
|
|
13
|
+
{\n\
|
|
14
|
+
vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);\n\
|
|
15
|
+
vec3 color = fragmentColor.rgb;\n\
|
|
16
|
+
\n\
|
|
17
|
+
#ifdef AUTO_EXPOSURE\n\
|
|
18
|
+
color /= texture(autoExposure, vec2(0.5)).r;\n\
|
|
19
|
+
#else\n\
|
|
20
|
+
color *= vec3(exposure);\n\
|
|
21
|
+
#endif\n\
|
|
22
|
+
color = czm_pbrNeutralTonemapping(color);\n\
|
|
23
|
+
color = czm_inverseGamma(color);\n\
|
|
24
|
+
\n\
|
|
25
|
+
out_FragColor = vec4(color, fragmentColor.a);\n\
|
|
26
|
+
}\n\
|
|
27
|
+
";
|
|
@@ -4,6 +4,8 @@ in vec2 v_textureCoordinates;
|
|
|
4
4
|
|
|
5
5
|
#ifdef AUTO_EXPOSURE
|
|
6
6
|
uniform sampler2D autoExposure;
|
|
7
|
+
#else
|
|
8
|
+
uniform float exposure;
|
|
7
9
|
#endif
|
|
8
10
|
|
|
9
11
|
// See equation 3:
|
|
@@ -16,6 +18,8 @@ void main()
|
|
|
16
18
|
#ifdef AUTO_EXPOSURE
|
|
17
19
|
float exposure = texture(autoExposure, vec2(0.5)).r;
|
|
18
20
|
color /= exposure;
|
|
21
|
+
#else
|
|
22
|
+
color *= vec3(exposure);
|
|
19
23
|
#endif
|
|
20
24
|
color = color / (1.0 + color);
|
|
21
25
|
color = czm_inverseGamma(color);
|
|
@@ -5,6 +5,8 @@ in vec2 v_textureCoordinates;\n\
|
|
|
5
5
|
\n\
|
|
6
6
|
#ifdef AUTO_EXPOSURE\n\
|
|
7
7
|
uniform sampler2D autoExposure;\n\
|
|
8
|
+
#else\n\
|
|
9
|
+
uniform float exposure;\n\
|
|
8
10
|
#endif\n\
|
|
9
11
|
\n\
|
|
10
12
|
// See equation 3:\n\
|
|
@@ -17,6 +19,8 @@ void main()\n\
|
|
|
17
19
|
#ifdef AUTO_EXPOSURE\n\
|
|
18
20
|
float exposure = texture(autoExposure, vec2(0.5)).r;\n\
|
|
19
21
|
color /= exposure;\n\
|
|
22
|
+
#else\n\
|
|
23
|
+
color *= vec3(exposure);\n\
|
|
20
24
|
#endif\n\
|
|
21
25
|
color = color / (1.0 + color);\n\
|
|
22
26
|
color = czm_inverseGamma(color);\n\
|
|
@@ -38,7 +38,7 @@ void main (void)
|
|
|
38
38
|
vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity);
|
|
39
39
|
|
|
40
40
|
#ifndef HDR
|
|
41
|
-
color.rgb =
|
|
41
|
+
color.rgb = czm_pbrNeutralTonemapping(color.rgb);
|
|
42
42
|
color.rgb = czm_inverseGamma(color.rgb);
|
|
43
43
|
#endif
|
|
44
44
|
|
|
@@ -39,7 +39,7 @@ void main (void)\n\
|
|
|
39
39
|
vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity);\n\
|
|
40
40
|
\n\
|
|
41
41
|
#ifndef HDR\n\
|
|
42
|
-
color.rgb =
|
|
42
|
+
color.rgb = czm_pbrNeutralTonemapping(color.rgb);\n\
|
|
43
43
|
color.rgb = czm_inverseGamma(color.rgb);\n\
|
|
44
44
|
#endif\n\
|
|
45
45
|
\n\
|
|
@@ -143,7 +143,7 @@ function configureCameraFrustum(widget) {
|
|
|
143
143
|
* @param {boolean} [options.blurActiveElementOnCanvasFocus=true] If true, the active element will blur when the viewer's canvas is clicked. Setting this to false is useful for cases when the canvas is clicked only for retrieving position or an entity data without actually meaning to set the canvas to be the active element.
|
|
144
144
|
* @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}.
|
|
145
145
|
* @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}.
|
|
146
|
-
* @param {number} [options.msaaSamples=
|
|
146
|
+
* @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.
|
|
147
147
|
*
|
|
148
148
|
* @exception {DeveloperError} Element with id "container" does not exist in the document.
|
|
149
149
|
*
|