@openglobus/og 0.17.2 → 0.18.1
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/README.md +76 -47
- package/lib/@openglobus/og.esm.js +2 -0
- package/lib/@openglobus/og.esm.js.map +1 -0
- package/lib/@openglobus/og.umd.js +2 -0
- package/lib/@openglobus/og.umd.js.map +1 -0
- package/lib/@openglobus/res/fonts/Karla-Bold.json +5252 -0
- package/lib/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
- package/lib/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
- package/lib/@openglobus/res/fonts/Karla-Light.json +5252 -0
- package/lib/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
- package/lib/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
- package/lib/@openglobus/res/fonts/Karla-Medium.json +5252 -0
- package/lib/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
- package/lib/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
- package/lib/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
- package/lib/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
- package/lib/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
- package/lib/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
- package/lib/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
- package/lib/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
- package/lib/@openglobus/res/fonts/arial.json +4321 -0
- package/lib/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
- package/lib/@openglobus/res/fonts/arial.ttf.png +0 -0
- package/lib/@openglobus/res/night-4326.png +0 -0
- package/lib/@openglobus/res/night.png +0 -0
- package/lib/@openglobus/res/spec.png +0 -0
- package/lib/js/Clock.d.ts +106 -0
- package/lib/js/Clock.js +141 -0
- package/lib/js/Deferred.d.ts +6 -0
- package/lib/js/Deferred.js +13 -0
- package/lib/js/Events.d.ts +90 -0
- package/lib/js/Events.js +145 -0
- package/lib/js/Extent.d.ts +145 -0
- package/lib/js/Extent.js +278 -0
- package/lib/js/Globe.d.ts +132 -0
- package/lib/js/Globe.js +265 -0
- package/lib/js/ImageCanvas.d.ts +128 -0
- package/lib/js/ImageCanvas.js +203 -0
- package/lib/js/Lock.d.ts +15 -0
- package/lib/js/Lock.js +27 -0
- package/lib/js/LonLat.d.ts +128 -0
- package/lib/js/LonLat.js +192 -0
- package/lib/js/Object3d.d.ts +49 -0
- package/lib/js/Object3d.js +309 -0
- package/lib/js/Popup.d.ts +46 -0
- package/lib/js/Popup.js +160 -0
- package/lib/js/QueueArray.d.ts +16 -0
- package/lib/js/QueueArray.js +63 -0
- package/lib/js/Rectangle.d.ts +76 -0
- package/lib/js/Rectangle.js +77 -0
- package/lib/js/Stack.d.ts +20 -0
- package/lib/js/Stack.js +42 -0
- package/lib/js/astro/astro.d.ts +39 -0
- package/lib/js/astro/astro.js +43 -0
- package/lib/js/astro/earth.d.ts +8 -0
- package/lib/js/astro/earth.js +75 -0
- package/lib/js/astro/jd.d.ts +234 -0
- package/lib/js/astro/jd.js +416 -0
- package/lib/js/astro/orbit.d.ts +5 -0
- package/lib/js/astro/orbit.js +104 -0
- package/lib/js/astro/rotation.d.ts +2 -0
- package/lib/js/astro/rotation.js +25 -0
- package/lib/js/bv/Box.d.ts +32 -0
- package/lib/js/bv/Box.js +53 -0
- package/lib/js/bv/Sphere.d.ts +37 -0
- package/lib/js/bv/Sphere.js +31 -0
- package/lib/js/bv/index.d.ts +3 -0
- package/lib/js/bv/index.js +3 -0
- package/lib/js/camera/Camera.d.ts +314 -0
- package/lib/js/camera/Camera.js +453 -0
- package/lib/js/camera/Frustum.d.ts +139 -0
- package/lib/js/camera/Frustum.js +238 -0
- package/lib/js/camera/PlanetCamera.d.ts +234 -0
- package/lib/js/camera/PlanetCamera.js +465 -0
- package/lib/js/camera/index.d.ts +3 -0
- package/lib/js/camera/index.js +3 -0
- package/lib/js/cons.d.ts +40 -0
- package/lib/js/cons.js +92 -0
- package/lib/js/control/Atmosphere.d.ts +16 -0
- package/lib/js/control/Atmosphere.js +334 -0
- package/lib/js/control/CompassButton.d.ts +16 -0
- package/lib/js/control/CompassButton.js +118 -0
- package/lib/js/control/Control.d.ts +100 -0
- package/lib/js/control/Control.js +137 -0
- package/lib/js/control/DebugInfo.d.ts +25 -0
- package/lib/js/control/DebugInfo.js +281 -0
- package/lib/js/control/DrawingSwitcher.d.ts +13 -0
- package/lib/js/control/DrawingSwitcher.js +94 -0
- package/lib/js/control/EarthCoordinates.d.ts +41 -0
- package/lib/js/control/EarthCoordinates.js +161 -0
- package/lib/js/control/EarthNavigation.d.ts +50 -0
- package/lib/js/control/EarthNavigation.js +202 -0
- package/lib/js/control/GeoImageDragControl.d.ts +22 -0
- package/lib/js/control/GeoImageDragControl.js +102 -0
- package/lib/js/control/KeyboardNavigation.d.ts +28 -0
- package/lib/js/control/KeyboardNavigation.js +143 -0
- package/lib/js/control/LayerAnimation.d.ts +71 -0
- package/lib/js/control/LayerAnimation.js +283 -0
- package/lib/js/control/LayerSwitcher.d.ts +21 -0
- package/lib/js/control/LayerSwitcher.js +51 -0
- package/lib/js/control/Lighting.d.ts +49 -0
- package/lib/js/control/Lighting.js +412 -0
- package/lib/js/control/MouseNavigation.d.ts +62 -0
- package/lib/js/control/MouseNavigation.js +362 -0
- package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
- package/lib/js/control/MouseWheelZoomControl.js +181 -0
- package/lib/js/control/RulerSwitcher.d.ts +17 -0
- package/lib/js/control/RulerSwitcher.js +57 -0
- package/lib/js/control/ScaleControl.d.ts +24 -0
- package/lib/js/control/ScaleControl.js +91 -0
- package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
- package/lib/js/control/SegmentBoundVisualization.js +37 -0
- package/lib/js/control/ShowFps.d.ts +9 -0
- package/lib/js/control/ShowFps.js +20 -0
- package/lib/js/control/SimpleNavigation.d.ts +25 -0
- package/lib/js/control/SimpleNavigation.js +96 -0
- package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
- package/lib/js/control/SimpleSkyBackground.js +177 -0
- package/lib/js/control/Sun.d.ts +33 -0
- package/lib/js/control/Sun.js +117 -0
- package/lib/js/control/ToggleWireframe.d.ts +14 -0
- package/lib/js/control/ToggleWireframe.js +28 -0
- package/lib/js/control/TouchNavigation.d.ts +52 -0
- package/lib/js/control/TouchNavigation.js +263 -0
- package/lib/js/control/ZoomControl.d.ts +27 -0
- package/lib/js/control/ZoomControl.js +86 -0
- package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
- package/lib/js/control/drawing/DrawingControl.js +35 -0
- package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
- package/lib/js/control/drawing/LineStringDrawingScene.js +139 -0
- package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
- package/lib/js/control/drawing/PolygonDrawingScene.js +534 -0
- package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
- package/lib/js/control/elevationProfile/ElevationProfile.js +217 -0
- package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
- package/lib/js/control/heightRuler/HeightRuler.js +11 -0
- package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
- package/lib/js/control/heightRuler/HeightRulerScene.js +181 -0
- package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
- package/lib/js/control/heightRuler/HeightRulerSwitcher.js +13 -0
- package/lib/js/control/index.d.ts +28 -0
- package/lib/js/control/index.js +28 -0
- package/lib/js/control/ruler/Ruler.d.ts +13 -0
- package/lib/js/control/ruler/Ruler.js +23 -0
- package/lib/js/control/ruler/RulerScene.d.ts +88 -0
- package/lib/js/control/ruler/RulerScene.js +324 -0
- package/lib/js/control/selection/Selection.d.ts +55 -0
- package/lib/js/control/selection/Selection.js +78 -0
- package/lib/js/control/selection/SelectionScene.d.ts +44 -0
- package/lib/js/control/selection/SelectionScene.js +272 -0
- package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
- package/lib/js/control/timeline/TimelineControl.js +79 -0
- package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
- package/lib/js/control/timeline/TimelineModel.js +104 -0
- package/lib/js/control/timeline/TimelineView.d.ts +85 -0
- package/lib/js/control/timeline/TimelineView.js +363 -0
- package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
- package/lib/js/control/timeline/timelineUtils.js +112 -0
- package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
- package/lib/js/control/visibleExtent/Segment.js +1301 -0
- package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
- package/lib/js/control/visibleExtent/VisibleExtent.js +56 -0
- package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
- package/lib/js/control/visibleExtent/drawnode.js +718 -0
- package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
- package/lib/js/ellipsoid/Ellipsoid.js +434 -0
- package/lib/js/ellipsoid/index.d.ts +3 -0
- package/lib/js/ellipsoid/index.js +3 -0
- package/lib/js/ellipsoid/wgs84.d.ts +6 -0
- package/lib/js/ellipsoid/wgs84.js +6 -0
- package/lib/js/entity/BaseBillboard.d.ts +222 -0
- package/lib/js/entity/BaseBillboard.js +284 -0
- package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
- package/lib/js/entity/BaseBillboardHandler.js +546 -0
- package/lib/js/entity/Billboard.d.ts +113 -0
- package/lib/js/entity/Billboard.js +127 -0
- package/lib/js/entity/BillboardHandler.d.ts +15 -0
- package/lib/js/entity/BillboardHandler.js +103 -0
- package/lib/js/entity/Entity.d.ts +354 -0
- package/lib/js/entity/Entity.js +515 -0
- package/lib/js/entity/EntityCollection.d.ts +364 -0
- package/lib/js/entity/EntityCollection.js +621 -0
- package/lib/js/entity/GeoObject.d.ts +138 -0
- package/lib/js/entity/GeoObject.js +194 -0
- package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
- package/lib/js/entity/GeoObjectHandler.js +558 -0
- package/lib/js/entity/Geometry.d.ts +111 -0
- package/lib/js/entity/Geometry.js +283 -0
- package/lib/js/entity/GeometryHandler.d.ts +84 -0
- package/lib/js/entity/GeometryHandler.js +687 -0
- package/lib/js/entity/Label.d.ts +207 -0
- package/lib/js/entity/Label.js +291 -0
- package/lib/js/entity/LabelHandler.d.ts +65 -0
- package/lib/js/entity/LabelHandler.js +696 -0
- package/lib/js/entity/LabelWorker.d.ts +15 -0
- package/lib/js/entity/LabelWorker.js +163 -0
- package/lib/js/entity/PointCloud.d.ts +179 -0
- package/lib/js/entity/PointCloud.js +327 -0
- package/lib/js/entity/PointCloudHandler.d.ts +42 -0
- package/lib/js/entity/PointCloudHandler.js +82 -0
- package/lib/js/entity/Polyline.d.ts +337 -0
- package/lib/js/entity/Polyline.js +1546 -0
- package/lib/js/entity/PolylineHandler.d.ts +22 -0
- package/lib/js/entity/PolylineHandler.js +78 -0
- package/lib/js/entity/Ray.d.ts +133 -0
- package/lib/js/entity/Ray.js +171 -0
- package/lib/js/entity/RayHandler.d.ts +70 -0
- package/lib/js/entity/RayHandler.js +496 -0
- package/lib/js/entity/Strip.d.ts +127 -0
- package/lib/js/entity/Strip.js +401 -0
- package/lib/js/entity/StripHandler.d.ts +42 -0
- package/lib/js/entity/StripHandler.js +110 -0
- package/lib/js/entity/index.d.ts +11 -0
- package/lib/js/entity/index.js +11 -0
- package/lib/js/index.d.ts +33 -0
- package/lib/js/index.js +33 -0
- package/lib/js/input/KeyboardHandler.d.ts +33 -0
- package/lib/js/input/KeyboardHandler.js +157 -0
- package/lib/js/input/MouseHandler.d.ts +16 -0
- package/lib/js/input/MouseHandler.js +81 -0
- package/lib/js/input/TouchHandler.d.ts +11 -0
- package/lib/js/input/TouchHandler.js +42 -0
- package/lib/js/input/input.d.ts +3 -0
- package/lib/js/input/input.js +42 -0
- package/lib/js/layer/BaseGeoImage.d.ts +145 -0
- package/lib/js/layer/BaseGeoImage.js +382 -0
- package/lib/js/layer/CanvasTiles.d.ts +103 -0
- package/lib/js/layer/CanvasTiles.js +302 -0
- package/lib/js/layer/GeoImage.d.ts +61 -0
- package/lib/js/layer/GeoImage.js +130 -0
- package/lib/js/layer/GeoTexture2d.d.ts +17 -0
- package/lib/js/layer/GeoTexture2d.js +37 -0
- package/lib/js/layer/GeoVideo.d.ts +68 -0
- package/lib/js/layer/GeoVideo.js +157 -0
- package/lib/js/layer/KML.d.ts +72 -0
- package/lib/js/layer/KML.js +303 -0
- package/lib/js/layer/Layer.d.ts +401 -0
- package/lib/js/layer/Layer.js +732 -0
- package/lib/js/layer/Material.d.ts +34 -0
- package/lib/js/layer/Material.js +69 -0
- package/lib/js/layer/Vector.d.ts +244 -0
- package/lib/js/layer/Vector.js +849 -0
- package/lib/js/layer/WMS.d.ts +75 -0
- package/lib/js/layer/WMS.js +112 -0
- package/lib/js/layer/XYZ.d.ts +149 -0
- package/lib/js/layer/XYZ.js +299 -0
- package/lib/js/layer/index.d.ts +11 -0
- package/lib/js/layer/index.js +11 -0
- package/lib/js/light/LightSource.d.ts +174 -0
- package/lib/js/light/LightSource.js +292 -0
- package/lib/js/math/Line2.d.ts +11 -0
- package/lib/js/math/Line2.js +21 -0
- package/lib/js/math/Line3.d.ts +28 -0
- package/lib/js/math/Line3.js +85 -0
- package/lib/js/math/Mat3.d.ts +77 -0
- package/lib/js/math/Mat3.js +139 -0
- package/lib/js/math/Mat4.d.ts +195 -0
- package/lib/js/math/Mat4.js +470 -0
- package/lib/js/math/Plane.d.ts +20 -0
- package/lib/js/math/Plane.js +108 -0
- package/lib/js/math/Quat.d.ts +373 -0
- package/lib/js/math/Quat.js +783 -0
- package/lib/js/math/Ray.d.ts +76 -0
- package/lib/js/math/Ray.js +188 -0
- package/lib/js/math/Vec2.d.ts +310 -0
- package/lib/js/math/Vec2.js +463 -0
- package/lib/js/math/Vec3.d.ts +472 -0
- package/lib/js/math/Vec3.js +799 -0
- package/lib/js/math/Vec4.d.ts +163 -0
- package/lib/js/math/Vec4.js +211 -0
- package/lib/js/math/coder.d.ts +51 -0
- package/lib/js/math/coder.js +101 -0
- package/lib/js/math/index.d.ts +11 -0
- package/lib/js/math/index.js +11 -0
- package/lib/js/math.d.ts +266 -0
- package/lib/js/math.js +379 -0
- package/lib/js/mercator.d.ts +92 -0
- package/lib/js/mercator.js +119 -0
- package/lib/js/proj/EPSG3857.d.ts +9 -0
- package/lib/js/proj/EPSG3857.js +9 -0
- package/lib/js/proj/EPSG4326.d.ts +9 -0
- package/lib/js/proj/EPSG4326.js +9 -0
- package/lib/js/proj/Proj.d.ts +43 -0
- package/lib/js/proj/Proj.js +38 -0
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
- package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
- package/lib/js/quadTree/EntityCollectionNode.js +328 -0
- package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/Node.d.ts +61 -0
- package/lib/js/quadTree/Node.js +660 -0
- package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
- package/lib/js/quadTree/QuadTreeStrategy.js +69 -0
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
- package/lib/js/quadTree/index.d.ts +12 -0
- package/lib/js/quadTree/index.js +12 -0
- package/lib/js/quadTree/quadTree.d.ts +40 -0
- package/lib/js/quadTree/quadTree.js +66 -0
- package/lib/js/renderer/Renderer.d.ts +311 -0
- package/lib/js/renderer/Renderer.js +899 -0
- package/lib/js/renderer/RendererEvents.d.ts +237 -0
- package/lib/js/renderer/RendererEvents.js +848 -0
- package/lib/js/scene/Axes.d.ts +12 -0
- package/lib/js/scene/Axes.js +59 -0
- package/lib/js/scene/BaseNode.d.ts +61 -0
- package/lib/js/scene/BaseNode.js +69 -0
- package/lib/js/scene/Planet.d.ts +623 -0
- package/lib/js/scene/Planet.js +1431 -0
- package/lib/js/scene/RenderNode.d.ts +150 -0
- package/lib/js/scene/RenderNode.js +301 -0
- package/lib/js/scene/SkyBox.d.ts +13 -0
- package/lib/js/scene/SkyBox.js +87 -0
- package/lib/js/scene/index.d.ts +5 -0
- package/lib/js/scene/index.js +5 -0
- package/lib/js/segment/Segment.d.ts +278 -0
- package/lib/js/segment/Segment.js +1142 -0
- package/lib/js/segment/SegmentLonLat.d.ts +48 -0
- package/lib/js/segment/SegmentLonLat.js +214 -0
- package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
- package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
- package/lib/js/segment/Slice.d.ts +13 -0
- package/lib/js/segment/Slice.js +33 -0
- package/lib/js/segment/segmentHelper.d.ts +18 -0
- package/lib/js/segment/segmentHelper.js +180 -0
- package/lib/js/shaders/atmos.d.ts +4 -0
- package/lib/js/shaders/atmos.js +312 -0
- package/lib/js/shaders/billboard.d.ts +3 -0
- package/lib/js/shaders/billboard.js +214 -0
- package/lib/js/shaders/bloom.d.ts +2 -0
- package/lib/js/shaders/bloom.js +32 -0
- package/lib/js/shaders/blur.d.ts +3 -0
- package/lib/js/shaders/blur.js +68 -0
- package/lib/js/shaders/depth.d.ts +2 -0
- package/lib/js/shaders/depth.js +43 -0
- package/lib/js/shaders/drawnode.d.ts +8 -0
- package/lib/js/shaders/drawnode.js +986 -0
- package/lib/js/shaders/geoObject.d.ts +3 -0
- package/lib/js/shaders/geoObject.js +256 -0
- package/lib/js/shaders/label.d.ts +4 -0
- package/lib/js/shaders/label.js +589 -0
- package/lib/js/shaders/lumFilter.d.ts +2 -0
- package/lib/js/shaders/lumFilter.js +36 -0
- package/lib/js/shaders/pickingMask.d.ts +2 -0
- package/lib/js/shaders/pickingMask.js +22 -0
- package/lib/js/shaders/pointCloud.d.ts +2 -0
- package/lib/js/shaders/pointCloud.js +32 -0
- package/lib/js/shaders/polyline.d.ts +3 -0
- package/lib/js/shaders/polyline.js +345 -0
- package/lib/js/shaders/ray.d.ts +2 -0
- package/lib/js/shaders/ray.js +76 -0
- package/lib/js/shaders/screenFrame.d.ts +2 -0
- package/lib/js/shaders/screenFrame.js +26 -0
- package/lib/js/shaders/skybox.d.ts +2 -0
- package/lib/js/shaders/skybox.js +28 -0
- package/lib/js/shaders/toneMapping.d.ts +2 -0
- package/lib/js/shaders/toneMapping.js +85 -0
- package/lib/js/shaders/utils.d.ts +1 -0
- package/lib/js/shaders/utils.js +86 -0
- package/lib/js/terrain/BilTerrain.d.ts +18 -0
- package/lib/js/terrain/BilTerrain.js +152 -0
- package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
- package/lib/js/terrain/EmptyTerrain.js +106 -0
- package/lib/js/terrain/Geoid.d.ts +33 -0
- package/lib/js/terrain/Geoid.js +191 -0
- package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
- package/lib/js/terrain/GlobusTerrain.js +332 -0
- package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
- package/lib/js/terrain/MapboxTerrain.js +298 -0
- package/lib/js/terrain/index.d.ts +5 -0
- package/lib/js/terrain/index.js +5 -0
- package/lib/js/ui/Button.d.ts +32 -0
- package/lib/js/ui/Button.js +78 -0
- package/lib/js/ui/ButtonGroup.d.ts +16 -0
- package/lib/js/ui/ButtonGroup.js +41 -0
- package/lib/js/ui/Dialog.d.ts +55 -0
- package/lib/js/ui/Dialog.js +173 -0
- package/lib/js/ui/Slider.d.ts +38 -0
- package/lib/js/ui/Slider.js +129 -0
- package/lib/js/ui/ToggleButton.d.ts +20 -0
- package/lib/js/ui/ToggleButton.js +42 -0
- package/lib/js/ui/View.d.ts +37 -0
- package/lib/js/ui/View.js +151 -0
- package/lib/js/ui/icons.d.ts +1 -0
- package/lib/js/ui/icons.js +3 -0
- package/lib/js/utils/BaseWorker.d.ts +14 -0
- package/lib/js/utils/BaseWorker.js +47 -0
- package/lib/js/utils/FontAtlas.d.ts +82 -0
- package/lib/js/utils/FontAtlas.js +220 -0
- package/lib/js/utils/GeoImageCreator.d.ts +34 -0
- package/lib/js/utils/GeoImageCreator.js +163 -0
- package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
- package/lib/js/utils/ImagesCacheManager.js +63 -0
- package/lib/js/utils/Loader.d.ts +63 -0
- package/lib/js/utils/Loader.js +156 -0
- package/lib/js/utils/NormalMapCreator.d.ts +52 -0
- package/lib/js/utils/NormalMapCreator.js +310 -0
- package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
- package/lib/js/utils/PlainSegmentWorker.js +383 -0
- package/lib/js/utils/TerrainWorker.d.ts +28 -0
- package/lib/js/utils/TerrainWorker.js +551 -0
- package/lib/js/utils/TextureAtlas.d.ts +113 -0
- package/lib/js/utils/TextureAtlas.js +231 -0
- package/lib/js/utils/VectorTileCreator.d.ts +18 -0
- package/lib/js/utils/VectorTileCreator.js +320 -0
- package/lib/js/utils/colorTable.d.ts +3 -0
- package/lib/js/utils/colorTable.js +143 -0
- package/lib/js/utils/earcut.d.ts +7 -0
- package/lib/js/utils/earcut.js +536 -0
- package/lib/js/utils/objParser.d.ts +24 -0
- package/lib/js/utils/objParser.js +201 -0
- package/lib/js/utils/shared.d.ts +267 -0
- package/lib/js/utils/shared.js +893 -0
- package/lib/js/utils/units.d.ts +16 -0
- package/lib/js/utils/units.js +61 -0
- package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
- package/lib/js/webgl/BaseFramebuffer.js +88 -0
- package/lib/js/webgl/Framebuffer.d.ts +69 -0
- package/lib/js/webgl/Framebuffer.js +149 -0
- package/lib/js/webgl/Handler.d.ts +473 -0
- package/lib/js/webgl/Handler.js +1003 -0
- package/lib/js/webgl/Multisample.d.ts +27 -0
- package/lib/js/webgl/Multisample.js +77 -0
- package/lib/js/webgl/Program.d.ts +159 -0
- package/lib/js/webgl/Program.js +314 -0
- package/lib/js/webgl/ProgramController.d.ts +86 -0
- package/lib/js/webgl/ProgramController.js +110 -0
- package/lib/js/webgl/index.d.ts +6 -0
- package/lib/js/webgl/index.js +6 -0
- package/lib/js/webgl/types.d.ts +9 -0
- package/lib/js/webgl/types.js +26 -0
- package/lib/js/webgl/variableHandlers.d.ts +22 -0
- package/lib/js/webgl/variableHandlers.js +78 -0
- package/package.json +29 -38
- package/dist/@openglobus/og.esm.js +0 -21
- package/dist/@openglobus/og.esm.js.map +0 -1
- package/dist/@openglobus/og.umd.js +0 -21
- package/dist/@openglobus/og.umd.js.map +0 -1
- package/src/og/Clock.js +0 -214
- package/src/og/Deferred.js +0 -11
- package/src/og/Events.js +0 -185
- package/src/og/Extent.js +0 -352
- package/src/og/Globe.js +0 -342
- package/src/og/ImageCanvas.js +0 -236
- package/src/og/Lock.js +0 -44
- package/src/og/LonLat.js +0 -220
- package/src/og/Object3d.js +0 -395
- package/src/og/Popup.js +0 -187
- package/src/og/QueueArray.js +0 -75
- package/src/og/Rectangle.js +0 -111
- package/src/og/Stack.js +0 -49
- package/src/og/astro/astro.js +0 -51
- package/src/og/astro/earth.js +0 -112
- package/src/og/astro/jd.js +0 -514
- package/src/og/astro/orbit.js +0 -119
- package/src/og/astro/rotation.js +0 -36
- package/src/og/bv/Box.js +0 -77
- package/src/og/bv/Sphere.js +0 -57
- package/src/og/bv/index.js +0 -4
- package/src/og/camera/Camera.js +0 -645
- package/src/og/camera/Frustum.js +0 -331
- package/src/og/camera/PlanetCamera.js +0 -674
- package/src/og/camera/index.js +0 -4
- package/src/og/cons.js +0 -108
- package/src/og/control/Atmosphere.js +0 -387
- package/src/og/control/CompassButton.js +0 -146
- package/src/og/control/Control.js +0 -198
- package/src/og/control/DebugInfo.js +0 -259
- package/src/og/control/DrawingSwitcher.js +0 -117
- package/src/og/control/EarthCoordinates.js +0 -214
- package/src/og/control/EarthNavigation.js +0 -258
- package/src/og/control/GeoImageDragControl.js +0 -117
- package/src/og/control/KeyboardNavigation.js +0 -172
- package/src/og/control/LayerAnimation.js +0 -379
- package/src/og/control/LayerSwitcher.js +0 -424
- package/src/og/control/Lighting.js +0 -487
- package/src/og/control/MouseNavigation.js +0 -436
- package/src/og/control/MouseWheelZoomControl.js +0 -253
- package/src/og/control/RulerSwitcher.js +0 -74
- package/src/og/control/ScaleControl.js +0 -119
- package/src/og/control/SegmentBoundVisualization.js +0 -54
- package/src/og/control/ShowFps.js +0 -40
- package/src/og/control/SimpleNavigation.js +0 -123
- package/src/og/control/SimpleSkyBackground.js +0 -206
- package/src/og/control/Sun.js +0 -176
- package/src/og/control/ToggleWireframe.js +0 -35
- package/src/og/control/TouchNavigation.js +0 -350
- package/src/og/control/ZoomControl.js +0 -115
- package/src/og/control/drawing/DrawingControl.js +0 -51
- package/src/og/control/drawing/LineStringDrawingScene.js +0 -203
- package/src/og/control/drawing/PolygonDrawingScene.js +0 -785
- package/src/og/control/elevationProfile/ElevationProfile.js +0 -275
- package/src/og/control/heightRuler/HeightRuler.js +0 -12
- package/src/og/control/heightRuler/HeightRulerScene.js +0 -228
- package/src/og/control/heightRuler/HeightRulerSwitcher.js +0 -15
- package/src/og/control/index.js +0 -56
- package/src/og/control/ruler/Ruler.js +0 -39
- package/src/og/control/ruler/RulerScene.js +0 -395
- package/src/og/control/selection/Selection.js +0 -95
- package/src/og/control/selection/SelectionScene.js +0 -345
- package/src/og/control/timeline/TimelineControl.js +0 -100
- package/src/og/control/timeline/TimelineModel.js +0 -137
- package/src/og/control/timeline/TimelineView.js +0 -462
- package/src/og/control/timeline/timelineUtils.js +0 -132
- package/src/og/control/visibleExtent/Segment.js +0 -1854
- package/src/og/control/visibleExtent/VisibleExtent.js +0 -80
- package/src/og/control/visibleExtent/drawnode.js +0 -747
- package/src/og/ellipsoid/Ellipsoid.js +0 -565
- package/src/og/ellipsoid/index.js +0 -4
- package/src/og/ellipsoid/wgs84.js +0 -9
- package/src/og/entity/BaseBillboard.js +0 -375
- package/src/og/entity/Billboard.js +0 -161
- package/src/og/entity/BillboardHandler.js +0 -883
- package/src/og/entity/Entity.js +0 -728
- package/src/og/entity/EntityCollection.js +0 -830
- package/src/og/entity/GeoObject.js +0 -244
- package/src/og/entity/GeoObjectHandler.js +0 -744
- package/src/og/entity/Geometry.js +0 -320
- package/src/og/entity/GeometryHandler.js +0 -1340
- package/src/og/entity/Label.js +0 -345
- package/src/og/entity/LabelHandler.js +0 -895
- package/src/og/entity/LabelWorker.js +0 -194
- package/src/og/entity/PointCloud.js +0 -491
- package/src/og/entity/PointCloudHandler.js +0 -122
- package/src/og/entity/Polyline.js +0 -2203
- package/src/og/entity/PolylineHandler.js +0 -105
- package/src/og/entity/Ray.js +0 -262
- package/src/og/entity/RayHandler.js +0 -841
- package/src/og/entity/Strip.js +0 -628
- package/src/og/entity/StripHandler.js +0 -158
- package/src/og/entity/index.js +0 -9
- package/src/og/index.js +0 -112
- package/src/og/input/KeyboardHandler.js +0 -195
- package/src/og/input/MouseHandler.js +0 -94
- package/src/og/input/TouchHandler.js +0 -59
- package/src/og/input/input.js +0 -44
- package/src/og/layer/BaseGeoImage.js +0 -480
- package/src/og/layer/CanvasTiles.js +0 -360
- package/src/og/layer/GeoImage.js +0 -150
- package/src/og/layer/GeoTexture2d.js +0 -50
- package/src/og/layer/GeoVideo.js +0 -187
- package/src/og/layer/KML.js +0 -358
- package/src/og/layer/Layer.js +0 -907
- package/src/og/layer/Material.js +0 -98
- package/src/og/layer/Vector.js +0 -1068
- package/src/og/layer/WMS.js +0 -182
- package/src/og/layer/XYZ.js +0 -374
- package/src/og/layer/index.js +0 -11
- package/src/og/light/LightSource.js +0 -362
- package/src/og/math/Line2.js +0 -28
- package/src/og/math/Line3.js +0 -140
- package/src/og/math/Mat3.js +0 -152
- package/src/og/math/Mat4.js +0 -603
- package/src/og/math/Plane.js +0 -117
- package/src/og/math/Quat.js +0 -980
- package/src/og/math/Ray.js +0 -237
- package/src/og/math/Vec2.js +0 -520
- package/src/og/math/Vec3.js +0 -931
- package/src/og/math/Vec4.js +0 -256
- package/src/og/math/coder.js +0 -104
- package/src/og/math/index.js +0 -23
- package/src/og/math.js +0 -430
- package/src/og/mercator.js +0 -149
- package/src/og/proj/EPSG3857.js +0 -13
- package/src/og/proj/EPSG4326.js +0 -13
- package/src/og/proj/Proj.js +0 -59
- package/src/og/quadTree/EPSG4326QuadTreeStrategy.js +0 -27
- package/src/og/quadTree/EarthQuadTreeStrategy.js +0 -30
- package/src/og/quadTree/EntityCollectionNode.js +0 -391
- package/src/og/quadTree/MarsQuadTreeStrategy.js +0 -28
- package/src/og/quadTree/Node.js +0 -785
- package/src/og/quadTree/QuadTreeStrategy.js +0 -94
- package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
- package/src/og/quadTree/index.js +0 -14
- package/src/og/quadTree/quadTree.js +0 -77
- package/src/og/renderer/Renderer.js +0 -1185
- package/src/og/renderer/RendererEvents.js +0 -1094
- package/src/og/res/images.js +0 -8
- package/src/og/scene/Axes.js +0 -74
- package/src/og/scene/BaseNode.js +0 -109
- package/src/og/scene/Planet.js +0 -1931
- package/src/og/scene/RenderNode.js +0 -392
- package/src/og/scene/SkyBox.js +0 -104
- package/src/og/scene/index.js +0 -5
- package/src/og/segment/Segment.js +0 -1687
- package/src/og/segment/SegmentLonLat.js +0 -294
- package/src/og/segment/SegmentLonLatWgs84.js +0 -40
- package/src/og/segment/Slice.js +0 -45
- package/src/og/segment/segmentHelper.js +0 -230
- package/src/og/shaders/atmos.js +0 -332
- package/src/og/shaders/billboard.js +0 -225
- package/src/og/shaders/bloom.js +0 -37
- package/src/og/shaders/blur.js +0 -79
- package/src/og/shaders/depth.js +0 -48
- package/src/og/shaders/drawnode.js +0 -1040
- package/src/og/shaders/geoObject.js +0 -270
- package/src/og/shaders/label.js +0 -604
- package/src/og/shaders/lumFilter.js +0 -41
- package/src/og/shaders/pickingMask.js +0 -27
- package/src/og/shaders/pointCloud.js +0 -38
- package/src/og/shaders/polyline.js +0 -557
- package/src/og/shaders/ray.js +0 -81
- package/src/og/shaders/screenFrame.js +0 -31
- package/src/og/shaders/skybox.js +0 -33
- package/src/og/shaders/toneMapping.js +0 -90
- package/src/og/shaders/utils.js +0 -88
- package/src/og/terrain/BilTerrain.js +0 -243
- package/src/og/terrain/EmptyTerrain.js +0 -174
- package/src/og/terrain/Geoid.js +0 -247
- package/src/og/terrain/GlobusTerrain.js +0 -483
- package/src/og/terrain/MapboxTerrain.js +0 -470
- package/src/og/terrain/index.js +0 -6
- package/src/og/ui/Button.js +0 -107
- package/src/og/ui/ButtonGroup.js +0 -57
- package/src/og/ui/Dialog.js +0 -239
- package/src/og/ui/Slider.js +0 -170
- package/src/og/ui/ToggleButton.js +0 -51
- package/src/og/ui/UIhelpers.js +0 -155
- package/src/og/ui/View.js +0 -190
- package/src/og/ui/icons.js +0 -3
- package/src/og/utils/BaseWorker.js +0 -46
- package/src/og/utils/FontAtlas.js +0 -218
- package/src/og/utils/GeoImageCreator.js +0 -204
- package/src/og/utils/ImagesCacheManager.js +0 -70
- package/src/og/utils/Loader.js +0 -188
- package/src/og/utils/NormalMapCreator.js +0 -404
- package/src/og/utils/PlainSegmentWorker.js +0 -398
- package/src/og/utils/TerrainWorker.js +0 -573
- package/src/og/utils/TextureAtlas.js +0 -291
- package/src/og/utils/VectorTileCreator.js +0 -391
- package/src/og/utils/colorTable.js +0 -145
- package/src/og/utils/earcut.js +0 -661
- package/src/og/utils/functionComposition.js +0 -13
- package/src/og/utils/objParser.js +0 -227
- package/src/og/utils/shared.js +0 -989
- package/src/og/utils/units.js +0 -78
- package/src/og/webgl/Framebuffer.js +0 -311
- package/src/og/webgl/Handler.js +0 -1170
- package/src/og/webgl/Multisample.js +0 -275
- package/src/og/webgl/Program.js +0 -407
- package/src/og/webgl/ProgramController.js +0 -143
- package/src/og/webgl/callbacks.js +0 -98
- package/src/og/webgl/index.js +0 -13
- package/src/og/webgl/types.js +0 -31
- package/src/og.jsdoc +0 -3
- package/types/Clock.d.ts +0 -99
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -78
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -108
- package/types/ImageCanvas.d.ts +0 -128
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -127
- package/types/Object3d.d.ts +0 -35
- package/types/Popup.d.ts +0 -29
- package/types/QueueArray.d.ts +0 -19
- package/types/Rectangle.d.ts +0 -80
- package/types/Stack.d.ts +0 -19
- package/types/arial.d.ts +0 -49
- package/types/astro/astro.d.ts +0 -38
- package/types/astro/earth.d.ts +0 -7
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -30
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -314
- package/types/camera/Frustum.d.ts +0 -133
- package/types/camera/PlanetCamera.d.ts +0 -219
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/Atmosphere.d.ts +0 -15
- package/types/control/CompassButton.d.ts +0 -16
- package/types/control/Control.d.ts +0 -104
- package/types/control/DebugInfo.d.ts +0 -19
- package/types/control/DrawingSwitcher.d.ts +0 -13
- package/types/control/EarthCoordinates.d.ts +0 -44
- package/types/control/EarthNavigation.d.ts +0 -43
- package/types/control/GeoImageDragControl.d.ts +0 -14
- package/types/control/KeyboardNavigation.d.ts +0 -24
- package/types/control/LayerAnimation.d.ts +0 -73
- package/types/control/LayerSwitcher.d.ts +0 -64
- package/types/control/Lighting.d.ts +0 -41
- package/types/control/MouseNavigation.d.ts +0 -49
- package/types/control/MouseWheelZoomControl.d.ts +0 -46
- package/types/control/ScaleControl.d.ts +0 -23
- package/types/control/ShowFps.d.ts +0 -11
- package/types/control/SimpleNavigation.d.ts +0 -26
- package/types/control/SimpleSkyBackground.d.ts +0 -15
- package/types/control/Sun.d.ts +0 -53
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -54
- package/types/control/ZoomControl.d.ts +0 -26
- package/types/control/drawing/DrawingControl.d.ts +0 -14
- package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
- package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
- package/types/control/heightRuler/HeightRuler.d.ts +0 -6
- package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
- package/types/control/index.d.ts +0 -27
- package/types/control/ruler/Ruler.d.ts +0 -13
- package/types/control/ruler/RulerScene.d.ts +0 -51
- package/types/control/selection/Selection.d.ts +0 -49
- package/types/control/selection/SelectionScene.d.ts +0 -32
- package/types/control/timeline/TimelineControl.d.ts +0 -10
- package/types/control/timeline/TimelineModel.d.ts +0 -33
- package/types/control/timeline/TimelineView.d.ts +0 -57
- package/types/control/timeline/timelineUtils.d.ts +0 -9
- package/types/ellipsoid/Ellipsoid.d.ts +0 -170
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -6
- package/types/entity/BaseBillboard.d.ts +0 -215
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -75
- package/types/entity/Entity.d.ts +0 -340
- package/types/entity/EntityCollection.d.ts +0 -303
- package/types/entity/GeoObject.d.ts +0 -117
- package/types/entity/GeoObjectHandler.d.ts +0 -41
- package/types/entity/Geometry.d.ts +0 -79
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -190
- package/types/entity/LabelHandler.d.ts +0 -31
- package/types/entity/LabelWorker.d.ts +0 -9
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -307
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -122
- package/types/entity/RayHandler.d.ts +0 -63
- package/types/entity/Strip.d.ts +0 -119
- package/types/entity/StripHandler.d.ts +0 -38
- package/types/entity/index.d.ts +0 -8
- package/types/index.d.ts +0 -53
- package/types/input/KeyboardHandler.d.ts +0 -17
- package/types/input/MouseHandler.d.ts +0 -5
- package/types/input/TouchHandler.d.ts +0 -5
- package/types/input/input.d.ts +0 -42
- package/types/layer/BaseGeoImage.d.ts +0 -116
- package/types/layer/CanvasTiles.d.ts +0 -73
- package/types/layer/GeoImage.d.ts +0 -51
- package/types/layer/GeoTexture2d.d.ts +0 -7
- package/types/layer/GeoVideo.d.ts +0 -47
- package/types/layer/KML.d.ts +0 -93
- package/types/layer/Layer.d.ts +0 -320
- package/types/layer/Material.d.ts +0 -45
- package/types/layer/Vector.d.ts +0 -211
- package/types/layer/WMS.d.ts +0 -66
- package/types/layer/XYZ.d.ts +0 -122
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -178
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -65
- package/types/math/Mat4.d.ts +0 -176
- package/types/math/Plane.d.ts +0 -18
- package/types/math/Quat.d.ts +0 -379
- package/types/math/Ray.d.ts +0 -82
- package/types/math/Vec2.d.ts +0 -309
- package/types/math/Vec3.d.ts +0 -472
- package/types/math/Vec4.d.ts +0 -161
- package/types/math/coder.d.ts +0 -43
- package/types/math/index.d.ts +0 -11
- package/types/math.d.ts +0 -268
- package/types/mercator.d.ts +0 -92
- package/types/proj/EPSG3857.d.ts +0 -6
- package/types/proj/EPSG4326.d.ts +0 -6
- package/types/proj/Proj.d.ts +0 -42
- package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/EntityCollectionNode.d.ts +0 -41
- package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/Node.d.ts +0 -58
- package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
- package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/index.d.ts +0 -12
- package/types/quadTree/quadTree.d.ts +0 -40
- package/types/renderer/Renderer.d.ts +0 -291
- package/types/renderer/RendererEvents.d.ts +0 -241
- package/types/res/images.d.ts +0 -2
- package/types/scene/Axes.d.ts +0 -10
- package/types/scene/BaseNode.d.ts +0 -60
- package/types/scene/Planet.d.ts +0 -594
- package/types/scene/RenderNode.d.ts +0 -152
- package/types/scene/SkyBox.d.ts +0 -9
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -273
- package/types/segment/SegmentLonLat.d.ts +0 -22
- package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
- package/types/segment/Slice.d.ts +0 -10
- package/types/segment/segmentHelper.d.ts +0 -13
- package/types/shaders/atmos.d.ts +0 -4
- package/types/shaders/billboard.d.ts +0 -3
- package/types/shaders/depth.d.ts +0 -2
- package/types/shaders/drawnode.d.ts +0 -8
- package/types/shaders/geoObject.d.ts +0 -3
- package/types/shaders/label.d.ts +0 -4
- package/types/shaders/pickingMask.d.ts +0 -2
- package/types/shaders/pointCloud.d.ts +0 -2
- package/types/shaders/polyline.d.ts +0 -3
- package/types/shaders/ray.d.ts +0 -2
- package/types/shaders/screenFrame.d.ts +0 -2
- package/types/shaders/skybox.d.ts +0 -2
- package/types/shaders/toneMapping.d.ts +0 -2
- package/types/shaders/utils.d.ts +0 -1
- package/types/terrain/BilTerrain.d.ts +0 -14
- package/types/terrain/EmptyTerrain.d.ts +0 -87
- package/types/terrain/Geoid.d.ts +0 -17
- package/types/terrain/GlobusTerrain.d.ts +0 -122
- package/types/terrain/MapboxTerrain.d.ts +0 -14
- package/types/terrain/index.d.ts +0 -5
- package/types/ui/Button.d.ts +0 -21
- package/types/ui/ButtonGroup.d.ts +0 -12
- package/types/ui/Dialog.d.ts +0 -41
- package/types/ui/Slider.d.ts +0 -33
- package/types/ui/ToggleButton.d.ts +0 -10
- package/types/ui/UIhelpers.d.ts +0 -13
- package/types/ui/View.d.ts +0 -33
- package/types/ui/icons.d.ts +0 -1
- package/types/utils/BaseWorker.d.ts +0 -14
- package/types/utils/FontAtlas.d.ts +0 -16
- package/types/utils/GeoImageCreator.d.ts +0 -30
- package/types/utils/ImagesCacheManager.d.ts +0 -10
- package/types/utils/Loader.d.ts +0 -31
- package/types/utils/NormalMapCreator.d.ts +0 -39
- package/types/utils/PlainSegmentWorker.d.ts +0 -8
- package/types/utils/TerrainWorker.d.ts +0 -7
- package/types/utils/TextureAtlas.d.ts +0 -113
- package/types/utils/VectorTileCreator.d.ts +0 -14
- package/types/utils/colorTable.d.ts +0 -143
- package/types/utils/earcut.d.ts +0 -6
- package/types/utils/functionComposition.d.ts +0 -5
- package/types/utils/objParser.d.ts +0 -8
- package/types/utils/shared.d.ts +0 -241
- package/types/utils/units.d.ts +0 -20
- package/types/webgl/Framebuffer.d.ts +0 -134
- package/types/webgl/Handler.d.ts +0 -403
- package/types/webgl/Multisample.d.ts +0 -91
- package/types/webgl/Program.d.ts +0 -163
- package/types/webgl/ProgramController.d.ts +0 -89
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
- /package/{dist → lib}/@openglobus/og.css +0 -0
- /package/{src/og → lib/@openglobus/res/fonts}/arial.js +0 -0
|
@@ -0,0 +1,986 @@
|
|
|
1
|
+
import * as atmos from "./atmos";
|
|
2
|
+
import { Program } from "../webgl/Program";
|
|
3
|
+
import { UTILS } from './utils';
|
|
4
|
+
// REMEMBER!
|
|
5
|
+
// src*(1)+dest*(1-src.alpha)
|
|
6
|
+
// glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
|
7
|
+
// src*(src.alpha)+dest*(1-src.alpha)
|
|
8
|
+
// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
9
|
+
const NIGHT = `const vec3 nightStep = 10.0 * vec3(0.58, 0.48, 0.25);`;
|
|
10
|
+
const DEF_BLEND = `#define blend(DEST, SAMPLER, OFFSET, OPACITY) \
|
|
11
|
+
src = texture( SAMPLER, OFFSET.xy + vTextureCoord.xy * OFFSET.zw );\
|
|
12
|
+
DEST = DEST * (1.0 - src.a * OPACITY) + src * OPACITY;`;
|
|
13
|
+
const DEF_BLEND_WEBGL1 = `#define blend(DEST, SAMPLER, OFFSET, OPACITY) \
|
|
14
|
+
src = texture2D( SAMPLER, OFFSET.xy + vTextureCoord.xy * OFFSET.zw ); \
|
|
15
|
+
DEST = DEST * (1.0 - src.a * OPACITY) + src * OPACITY;`;
|
|
16
|
+
const DEF_BLEND_PICKING = `#define blendPicking(DEST, OFFSET, SAMPLER, MASK, COLOR, OPACITY) \
|
|
17
|
+
tc = OFFSET.xy + vTextureCoord.xy * OFFSET.zw; \
|
|
18
|
+
t = texture2D(SAMPLER, tc); \
|
|
19
|
+
p = texture2D(MASK, tc); \
|
|
20
|
+
DEST = mix(DEST, vec4(max(COLOR.rgb, p.rgb), OPACITY), (t.a == 0.0 ? 0.0 : 1.0) * COLOR.a);`;
|
|
21
|
+
const SLICE_SIZE = 4;
|
|
22
|
+
export function drawnode_screen_nl() {
|
|
23
|
+
return new Program("drawnode_screen_nl", {
|
|
24
|
+
uniforms: {
|
|
25
|
+
projectionMatrix: "mat4",
|
|
26
|
+
viewMatrix: "mat4",
|
|
27
|
+
eyePositionHigh: "vec3",
|
|
28
|
+
eyePositionLow: "vec3",
|
|
29
|
+
samplerCount: "int",
|
|
30
|
+
tileOffsetArr: "vec4",
|
|
31
|
+
layerOpacityArr: "float",
|
|
32
|
+
samplerArr: "sampler2darray",
|
|
33
|
+
defaultTexture: "sampler2d",
|
|
34
|
+
height: "float"
|
|
35
|
+
}, attributes: {
|
|
36
|
+
aVertexPositionHigh: "vec3",
|
|
37
|
+
aVertexPositionLow: "vec3",
|
|
38
|
+
aTextureCoord: "vec2"
|
|
39
|
+
},
|
|
40
|
+
vertexShader: `precision highp float;
|
|
41
|
+
|
|
42
|
+
attribute vec3 aVertexPositionHigh;
|
|
43
|
+
attribute vec3 aVertexPositionLow;
|
|
44
|
+
attribute vec2 aTextureCoord;
|
|
45
|
+
|
|
46
|
+
uniform mat4 projectionMatrix;
|
|
47
|
+
uniform mat4 viewMatrix;
|
|
48
|
+
uniform vec3 eyePositionHigh;
|
|
49
|
+
uniform vec3 eyePositionLow;
|
|
50
|
+
uniform float height;
|
|
51
|
+
|
|
52
|
+
varying vec2 vTextureCoord;
|
|
53
|
+
|
|
54
|
+
void main(void) {
|
|
55
|
+
|
|
56
|
+
vTextureCoord = aTextureCoord;
|
|
57
|
+
vec3 nh = height * normalize(aVertexPositionHigh + aVertexPositionLow);
|
|
58
|
+
|
|
59
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
60
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
61
|
+
mat4 m = projectionMatrix * viewMatrixRTE;
|
|
62
|
+
|
|
63
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
64
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
65
|
+
|
|
66
|
+
// This is works for Mac Chrome, prevent some weird optimization I suppose
|
|
67
|
+
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
68
|
+
}`,
|
|
69
|
+
fragmentShader: `precision highp float;
|
|
70
|
+
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
71
|
+
uniform vec4 tileOffsetArr[SLICE_SIZE];
|
|
72
|
+
uniform float layerOpacityArr[SLICE_SIZE];
|
|
73
|
+
uniform sampler2D defaultTexture;
|
|
74
|
+
uniform sampler2D samplerArr[SLICE_SIZE];
|
|
75
|
+
uniform int samplerCount;
|
|
76
|
+
varying vec2 vTextureCoord;
|
|
77
|
+
|
|
78
|
+
${DEF_BLEND_WEBGL1}
|
|
79
|
+
|
|
80
|
+
void main(void) {
|
|
81
|
+
gl_FragColor = texture2D( defaultTexture, vTextureCoord );
|
|
82
|
+
if( samplerCount == 0 ) return;
|
|
83
|
+
|
|
84
|
+
vec4 src;
|
|
85
|
+
|
|
86
|
+
blend(gl_FragColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);
|
|
87
|
+
if( samplerCount == 1 ) return;
|
|
88
|
+
|
|
89
|
+
blend(gl_FragColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);
|
|
90
|
+
if( samplerCount == 2 ) return;
|
|
91
|
+
|
|
92
|
+
blend(gl_FragColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);
|
|
93
|
+
if( samplerCount == 3 ) return;
|
|
94
|
+
|
|
95
|
+
blend(gl_FragColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);
|
|
96
|
+
if( samplerCount == 4 ) return;
|
|
97
|
+
|
|
98
|
+
blend(gl_FragColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);
|
|
99
|
+
}`
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
export function drawnode_screen_wl_webgl1NoAtmos() {
|
|
103
|
+
return new Program("drawnode_screen_wl", {
|
|
104
|
+
uniforms: {
|
|
105
|
+
projectionMatrix: "mat4",
|
|
106
|
+
viewMatrix: "mat4",
|
|
107
|
+
eyePositionHigh: "vec3",
|
|
108
|
+
eyePositionLow: "vec3",
|
|
109
|
+
height: "float",
|
|
110
|
+
uGlobalTextureCoord: "vec4",
|
|
111
|
+
uNormalMapBias: "vec3",
|
|
112
|
+
samplerCount: "int",
|
|
113
|
+
tileOffsetArr: "vec4",
|
|
114
|
+
layerOpacityArr: "float",
|
|
115
|
+
samplerArr: "sampler2darray",
|
|
116
|
+
defaultTexture: "sampler2d",
|
|
117
|
+
uNormalMap: "sampler2d",
|
|
118
|
+
nightTexture: "sampler2d",
|
|
119
|
+
specularTexture: "sampler2d",
|
|
120
|
+
lightsPositions: "vec3",
|
|
121
|
+
diffuse: "vec3",
|
|
122
|
+
ambient: "vec3",
|
|
123
|
+
specular: "vec4",
|
|
124
|
+
camHeight: "float",
|
|
125
|
+
nightTextureCoefficient: "float"
|
|
126
|
+
}, attributes: {
|
|
127
|
+
aVertexPositionHigh: "vec3",
|
|
128
|
+
aVertexPositionLow: "vec3",
|
|
129
|
+
aTextureCoord: "vec2"
|
|
130
|
+
},
|
|
131
|
+
vertexShader: `
|
|
132
|
+
attribute vec3 aVertexPositionHigh;
|
|
133
|
+
attribute vec3 aVertexPositionLow;
|
|
134
|
+
attribute vec2 aTextureCoord;
|
|
135
|
+
|
|
136
|
+
uniform mat4 projectionMatrix;
|
|
137
|
+
uniform mat4 viewMatrix;
|
|
138
|
+
uniform vec4 uGlobalTextureCoord;
|
|
139
|
+
uniform vec3 uNormalMapBias;
|
|
140
|
+
uniform vec3 eyePositionHigh;
|
|
141
|
+
uniform vec3 eyePositionLow;
|
|
142
|
+
uniform float height;
|
|
143
|
+
|
|
144
|
+
varying vec4 vTextureCoord;
|
|
145
|
+
varying vec3 v_vertex;
|
|
146
|
+
varying vec3 cameraPosition;
|
|
147
|
+
varying vec2 vGlobalTextureCoord;
|
|
148
|
+
varying float v_height;
|
|
149
|
+
|
|
150
|
+
void main(void) {
|
|
151
|
+
|
|
152
|
+
// I replace it here (from the bottom) because it
|
|
153
|
+
// somehow affects on float precision on MacPC Chrome
|
|
154
|
+
vTextureCoord.xy = aTextureCoord;
|
|
155
|
+
vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;
|
|
156
|
+
vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );
|
|
157
|
+
|
|
158
|
+
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
159
|
+
vec3 nh = height * normalize(aVertexPosition);
|
|
160
|
+
cameraPosition = eyePositionHigh + eyePositionLow;
|
|
161
|
+
|
|
162
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
163
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
164
|
+
|
|
165
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
166
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
167
|
+
|
|
168
|
+
v_height = height;
|
|
169
|
+
v_vertex = aVertexPosition + nh;
|
|
170
|
+
|
|
171
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
172
|
+
}`,
|
|
173
|
+
fragmentShader: `
|
|
174
|
+
precision highp float;
|
|
175
|
+
|
|
176
|
+
#define MAX_POINT_LIGHTS 1
|
|
177
|
+
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
178
|
+
|
|
179
|
+
uniform vec4 specular;
|
|
180
|
+
uniform vec3 diffuse;
|
|
181
|
+
uniform vec3 ambient;
|
|
182
|
+
|
|
183
|
+
uniform sampler2D uNormalMap;
|
|
184
|
+
uniform sampler2D nightTexture;
|
|
185
|
+
uniform sampler2D specularTexture;
|
|
186
|
+
uniform sampler2D defaultTexture;
|
|
187
|
+
uniform sampler2D samplerArr[SLICE_SIZE];
|
|
188
|
+
|
|
189
|
+
uniform vec4 tileOffsetArr[SLICE_SIZE];
|
|
190
|
+
uniform vec3 lightsPositions[MAX_POINT_LIGHTS];
|
|
191
|
+
uniform float layerOpacityArr[SLICE_SIZE];
|
|
192
|
+
|
|
193
|
+
uniform int samplerCount;
|
|
194
|
+
uniform float nightTextureCoefficient;
|
|
195
|
+
uniform float camHeight;
|
|
196
|
+
|
|
197
|
+
varying vec4 vTextureCoord;
|
|
198
|
+
varying vec3 v_vertex;
|
|
199
|
+
varying vec3 cameraPosition;
|
|
200
|
+
varying vec2 vGlobalTextureCoord;
|
|
201
|
+
varying float v_height;
|
|
202
|
+
|
|
203
|
+
vec3 sunPos;
|
|
204
|
+
|
|
205
|
+
${NIGHT}
|
|
206
|
+
|
|
207
|
+
${DEF_BLEND_WEBGL1}
|
|
208
|
+
|
|
209
|
+
${UTILS}
|
|
210
|
+
|
|
211
|
+
void main(void) {
|
|
212
|
+
|
|
213
|
+
sunPos = lightsPositions[0];
|
|
214
|
+
|
|
215
|
+
vec3 texNormal = texture2D(uNormalMap, vTextureCoord.zw).rgb;
|
|
216
|
+
vec3 normal = normalize((texNormal - 0.5) * 2.0);
|
|
217
|
+
|
|
218
|
+
float minH = 1200000.0;
|
|
219
|
+
float maxH = minH * 3.0;
|
|
220
|
+
float nightCoef = getLerpValue(minH, maxH, camHeight) * nightTextureCoefficient;
|
|
221
|
+
|
|
222
|
+
if(camHeight > 6000000.0)
|
|
223
|
+
{
|
|
224
|
+
normal = normalize(v_vertex);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
vec3 lightDir = normalize(sunPos);
|
|
228
|
+
vec3 viewDir = normalize(cameraPosition - v_vertex);
|
|
229
|
+
|
|
230
|
+
float overGround = 1.0 - step(0.1, v_height);
|
|
231
|
+
|
|
232
|
+
float shininess = texture2D( specularTexture, vGlobalTextureCoord.st ).r * 255.0 * overGround;
|
|
233
|
+
vec3 reflectionDirection = reflect(-lightDir, normal);
|
|
234
|
+
float reflection = max( dot(reflectionDirection, viewDir), 0.0);
|
|
235
|
+
vec3 spec = specular.rgb * pow( reflection, specular.w) * shininess;
|
|
236
|
+
float diffuseLightWeighting = max(dot(normal, lightDir), 0.0);
|
|
237
|
+
vec4 nightImageColor = texture2D( nightTexture, vGlobalTextureCoord.st );
|
|
238
|
+
vec3 night = nightStep * (.18 - diffuseLightWeighting * 3.0) * nightImageColor.rgb * nightCoef;
|
|
239
|
+
night *= overGround * step(0.0, night);
|
|
240
|
+
vec4 lightWeighting = vec4(ambient + diffuse * diffuseLightWeighting + night, 1.0);
|
|
241
|
+
|
|
242
|
+
gl_FragColor = texture2D( defaultTexture, vTextureCoord.xy );
|
|
243
|
+
if( samplerCount == 0 ) {
|
|
244
|
+
gl_FragColor = gl_FragColor * lightWeighting + vec4(spec, 0.0);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
vec4 src;
|
|
249
|
+
|
|
250
|
+
blend(gl_FragColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);
|
|
251
|
+
if( samplerCount == 1 ) {
|
|
252
|
+
gl_FragColor = gl_FragColor * lightWeighting + vec4(spec, 0.0);
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
blend(gl_FragColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);
|
|
257
|
+
if( samplerCount == 2 ) {
|
|
258
|
+
gl_FragColor = gl_FragColor * lightWeighting + vec4(spec, 0.0);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
blend(gl_FragColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);
|
|
263
|
+
if( samplerCount == 3 ) {
|
|
264
|
+
gl_FragColor = gl_FragColor * lightWeighting + vec4(spec, 0.0);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
blend(gl_FragColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);
|
|
269
|
+
if( samplerCount == 4 ) {
|
|
270
|
+
gl_FragColor = gl_FragColor * lightWeighting + vec4(spec, 0.0);
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
blend(gl_FragColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);
|
|
275
|
+
gl_FragColor = gl_FragColor * lightWeighting + vec4(spec, 0.0);
|
|
276
|
+
}`
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
export function drawnode_screen_wl_webgl2NoAtmos() {
|
|
280
|
+
return new Program("drawnode_screen_wl", {
|
|
281
|
+
uniforms: {
|
|
282
|
+
projectionMatrix: "mat4",
|
|
283
|
+
viewMatrix: "mat4",
|
|
284
|
+
eyePositionHigh: "vec3",
|
|
285
|
+
eyePositionLow: "vec3",
|
|
286
|
+
height: "float",
|
|
287
|
+
uGlobalTextureCoord: "vec4",
|
|
288
|
+
uNormalMapBias: "vec3",
|
|
289
|
+
samplerCount: "int",
|
|
290
|
+
tileOffsetArr: "vec4",
|
|
291
|
+
layerOpacityArr: "float",
|
|
292
|
+
samplerArr: "sampler2darray",
|
|
293
|
+
defaultTexture: "sampler2d",
|
|
294
|
+
uNormalMap: "sampler2d",
|
|
295
|
+
nightTexture: "sampler2d",
|
|
296
|
+
specularTexture: "sampler2d",
|
|
297
|
+
lightsPositions: "vec3",
|
|
298
|
+
diffuse: "vec3",
|
|
299
|
+
ambient: "vec3",
|
|
300
|
+
specular: "vec4",
|
|
301
|
+
camHeight: "float",
|
|
302
|
+
nightTextureCoefficient: "float"
|
|
303
|
+
}, attributes: {
|
|
304
|
+
aVertexPositionHigh: "vec3",
|
|
305
|
+
aVertexPositionLow: "vec3",
|
|
306
|
+
aTextureCoord: "vec2"
|
|
307
|
+
},
|
|
308
|
+
vertexShader: `#version 300 es
|
|
309
|
+
|
|
310
|
+
precision highp float;
|
|
311
|
+
|
|
312
|
+
in vec3 aVertexPositionHigh;
|
|
313
|
+
in vec3 aVertexPositionLow;
|
|
314
|
+
in vec2 aTextureCoord;
|
|
315
|
+
|
|
316
|
+
uniform mat4 projectionMatrix;
|
|
317
|
+
uniform mat4 viewMatrix;
|
|
318
|
+
uniform vec4 uGlobalTextureCoord;
|
|
319
|
+
uniform vec3 uNormalMapBias;
|
|
320
|
+
uniform vec3 eyePositionHigh;
|
|
321
|
+
uniform vec3 eyePositionLow;
|
|
322
|
+
uniform float height;
|
|
323
|
+
|
|
324
|
+
out vec4 vTextureCoord;
|
|
325
|
+
out vec3 v_vertex;
|
|
326
|
+
out vec3 cameraPosition;
|
|
327
|
+
out vec2 vGlobalTextureCoord;
|
|
328
|
+
out float v_height;
|
|
329
|
+
|
|
330
|
+
void main(void) {
|
|
331
|
+
|
|
332
|
+
// I replace it here (from the bottom) because it
|
|
333
|
+
// somehow affects on float precision on MacPC Chrome
|
|
334
|
+
vTextureCoord.xy = aTextureCoord;
|
|
335
|
+
vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;
|
|
336
|
+
vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );
|
|
337
|
+
|
|
338
|
+
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
339
|
+
vec3 nh = height * normalize(aVertexPosition);
|
|
340
|
+
cameraPosition = eyePositionHigh + eyePositionLow;
|
|
341
|
+
|
|
342
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
343
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
344
|
+
|
|
345
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
346
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
347
|
+
|
|
348
|
+
v_height = height;
|
|
349
|
+
v_vertex = aVertexPosition + nh;
|
|
350
|
+
|
|
351
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
352
|
+
}`,
|
|
353
|
+
fragmentShader: `#version 300 es
|
|
354
|
+
|
|
355
|
+
precision highp float;
|
|
356
|
+
|
|
357
|
+
#define MAX_POINT_LIGHTS 1
|
|
358
|
+
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
359
|
+
|
|
360
|
+
uniform vec4 specular;
|
|
361
|
+
uniform vec3 diffuse;
|
|
362
|
+
uniform vec3 ambient;
|
|
363
|
+
|
|
364
|
+
uniform sampler2D uNormalMap;
|
|
365
|
+
uniform sampler2D nightTexture;
|
|
366
|
+
uniform sampler2D specularTexture;
|
|
367
|
+
uniform sampler2D defaultTexture;
|
|
368
|
+
uniform sampler2D samplerArr[SLICE_SIZE];
|
|
369
|
+
|
|
370
|
+
uniform vec4 tileOffsetArr[SLICE_SIZE];
|
|
371
|
+
uniform vec3 lightsPositions[MAX_POINT_LIGHTS];
|
|
372
|
+
uniform float layerOpacityArr[SLICE_SIZE];
|
|
373
|
+
|
|
374
|
+
uniform int samplerCount;
|
|
375
|
+
uniform float nightTextureCoefficient;
|
|
376
|
+
|
|
377
|
+
uniform float camHeight;
|
|
378
|
+
|
|
379
|
+
in vec4 vTextureCoord;
|
|
380
|
+
in vec3 v_vertex;
|
|
381
|
+
in vec3 cameraPosition;
|
|
382
|
+
in vec2 vGlobalTextureCoord;
|
|
383
|
+
in float v_height;
|
|
384
|
+
|
|
385
|
+
vec3 sunPos;
|
|
386
|
+
|
|
387
|
+
layout(location = 0) out vec4 diffuseColor;
|
|
388
|
+
|
|
389
|
+
${NIGHT}
|
|
390
|
+
|
|
391
|
+
${DEF_BLEND}
|
|
392
|
+
|
|
393
|
+
${UTILS}
|
|
394
|
+
|
|
395
|
+
void main(void) {
|
|
396
|
+
|
|
397
|
+
sunPos = lightsPositions[0];
|
|
398
|
+
|
|
399
|
+
vec3 texNormal = texture(uNormalMap, vTextureCoord.zw).rgb;
|
|
400
|
+
vec3 normal = normalize((texNormal - 0.5) * 2.0);
|
|
401
|
+
|
|
402
|
+
float minH = 1200000.0;
|
|
403
|
+
float maxH = minH * 3.0;
|
|
404
|
+
float nightCoef = getLerpValue(minH, maxH, camHeight) * nightTextureCoefficient;
|
|
405
|
+
|
|
406
|
+
if(camHeight > 6000000.0)
|
|
407
|
+
{
|
|
408
|
+
normal = normalize(v_vertex);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
vec3 lightDir = normalize(sunPos);
|
|
412
|
+
vec3 viewDir = normalize(cameraPosition - v_vertex);
|
|
413
|
+
|
|
414
|
+
float overGround = 1.0 - step(0.1, v_height);
|
|
415
|
+
|
|
416
|
+
float shininess = texture( specularTexture, vGlobalTextureCoord.st ).r * 255.0 * overGround;
|
|
417
|
+
vec3 reflectionDirection = reflect(-lightDir, normal);
|
|
418
|
+
float reflection = max( dot(reflectionDirection, viewDir), 0.0);
|
|
419
|
+
vec3 spec = specular.rgb * pow( reflection, specular.w) * shininess;
|
|
420
|
+
float diffuseLightWeighting = max(dot(normal, lightDir), 0.0);
|
|
421
|
+
vec4 nightImageColor = texture( nightTexture, vGlobalTextureCoord.st );
|
|
422
|
+
vec3 night = nightStep * (.18 - diffuseLightWeighting * 3.0) * nightImageColor.rgb * nightCoef;
|
|
423
|
+
night *= overGround * step(0.0, night);
|
|
424
|
+
vec4 lightWeighting = vec4(ambient + diffuse * diffuseLightWeighting + night, 1.0);
|
|
425
|
+
|
|
426
|
+
diffuseColor = texture( defaultTexture, vTextureCoord.xy );
|
|
427
|
+
if( samplerCount == 0 ) {
|
|
428
|
+
diffuseColor = diffuseColor * lightWeighting + vec4(spec, 0.0);
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
vec4 src;
|
|
433
|
+
|
|
434
|
+
blend(diffuseColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);
|
|
435
|
+
if( samplerCount == 1 ) {
|
|
436
|
+
diffuseColor = diffuseColor * lightWeighting + vec4(spec, 0.0);
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
blend(diffuseColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);
|
|
441
|
+
if( samplerCount == 2 ) {
|
|
442
|
+
diffuseColor = diffuseColor * lightWeighting + vec4(spec, 0.0);
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
blend(diffuseColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);
|
|
447
|
+
if( samplerCount == 3 ) {
|
|
448
|
+
diffuseColor = diffuseColor * lightWeighting + vec4(spec, 0.0);
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
blend(diffuseColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);
|
|
453
|
+
if( samplerCount == 4 ) {
|
|
454
|
+
diffuseColor = diffuseColor * lightWeighting + vec4(spec, 0.0);
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
blend(diffuseColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);
|
|
459
|
+
diffuseColor = diffuseColor * lightWeighting + vec4(spec, 0.0);
|
|
460
|
+
}`
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
export function drawnode_screen_wl_webgl2Atmos() {
|
|
464
|
+
return new Program("drawnode_screen_wl", {
|
|
465
|
+
uniforms: {
|
|
466
|
+
projectionMatrix: "mat4",
|
|
467
|
+
viewMatrix: "mat4",
|
|
468
|
+
eyePositionHigh: "vec3",
|
|
469
|
+
eyePositionLow: "vec3",
|
|
470
|
+
height: "float",
|
|
471
|
+
uGlobalTextureCoord: "vec4",
|
|
472
|
+
uNormalMapBias: "vec3",
|
|
473
|
+
samplerCount: "int",
|
|
474
|
+
tileOffsetArr: "vec4",
|
|
475
|
+
layerOpacityArr: "float",
|
|
476
|
+
samplerArr: "sampler2darray",
|
|
477
|
+
defaultTexture: "sampler2d",
|
|
478
|
+
uNormalMap: "sampler2d",
|
|
479
|
+
nightTexture: "sampler2d",
|
|
480
|
+
specularTexture: "sampler2d",
|
|
481
|
+
lightsPositions: "vec3",
|
|
482
|
+
diffuse: "vec3",
|
|
483
|
+
ambient: "vec3",
|
|
484
|
+
specular: "vec4",
|
|
485
|
+
transmittanceTexture: "sampler2D",
|
|
486
|
+
scatteringTexture: "sampler2D",
|
|
487
|
+
camHeight: "float",
|
|
488
|
+
nightTextureCoefficient: "float",
|
|
489
|
+
maxMinOpacity: "vec2"
|
|
490
|
+
}, attributes: {
|
|
491
|
+
aVertexPositionHigh: "vec3",
|
|
492
|
+
aVertexPositionLow: "vec3",
|
|
493
|
+
aTextureCoord: "vec2"
|
|
494
|
+
},
|
|
495
|
+
vertexShader: `#version 300 es
|
|
496
|
+
|
|
497
|
+
precision highp float;
|
|
498
|
+
|
|
499
|
+
in vec3 aVertexPositionHigh;
|
|
500
|
+
in vec3 aVertexPositionLow;
|
|
501
|
+
in vec2 aTextureCoord;
|
|
502
|
+
|
|
503
|
+
uniform mat4 projectionMatrix;
|
|
504
|
+
uniform mat4 viewMatrix;
|
|
505
|
+
uniform vec4 uGlobalTextureCoord;
|
|
506
|
+
uniform vec3 uNormalMapBias;
|
|
507
|
+
uniform vec3 eyePositionHigh;
|
|
508
|
+
uniform vec3 eyePositionLow;
|
|
509
|
+
uniform float height;
|
|
510
|
+
|
|
511
|
+
out vec4 vTextureCoord;
|
|
512
|
+
out vec3 v_vertex;
|
|
513
|
+
out vec3 cameraPosition;
|
|
514
|
+
out vec2 vGlobalTextureCoord;
|
|
515
|
+
out float v_height;
|
|
516
|
+
|
|
517
|
+
void main(void) {
|
|
518
|
+
|
|
519
|
+
// I replace it here (from the bottom) because it
|
|
520
|
+
// somehow affects on float precision on MacPC Chrome
|
|
521
|
+
vTextureCoord.xy = aTextureCoord;
|
|
522
|
+
vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;
|
|
523
|
+
vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );
|
|
524
|
+
|
|
525
|
+
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
526
|
+
vec3 nh = height * normalize(aVertexPosition);
|
|
527
|
+
cameraPosition = eyePositionHigh + eyePositionLow;
|
|
528
|
+
|
|
529
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
530
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
531
|
+
|
|
532
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
533
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
534
|
+
|
|
535
|
+
v_height = height;
|
|
536
|
+
v_vertex = aVertexPosition + nh;
|
|
537
|
+
|
|
538
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
539
|
+
}`,
|
|
540
|
+
fragmentShader: `#version 300 es
|
|
541
|
+
|
|
542
|
+
precision highp float;
|
|
543
|
+
|
|
544
|
+
#define MAX_POINT_LIGHTS 1
|
|
545
|
+
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
546
|
+
|
|
547
|
+
uniform vec4 specular;
|
|
548
|
+
uniform vec3 diffuse;
|
|
549
|
+
uniform vec3 ambient;
|
|
550
|
+
|
|
551
|
+
uniform vec3 lightsPositions[MAX_POINT_LIGHTS];
|
|
552
|
+
|
|
553
|
+
uniform sampler2D uNormalMap;
|
|
554
|
+
uniform sampler2D nightTexture;
|
|
555
|
+
uniform sampler2D specularTexture;
|
|
556
|
+
uniform sampler2D transmittanceTexture;
|
|
557
|
+
uniform sampler2D scatteringTexture;
|
|
558
|
+
uniform sampler2D defaultTexture;
|
|
559
|
+
uniform sampler2D samplerArr[SLICE_SIZE];
|
|
560
|
+
|
|
561
|
+
uniform vec4 tileOffsetArr[SLICE_SIZE];
|
|
562
|
+
uniform float layerOpacityArr[SLICE_SIZE];
|
|
563
|
+
|
|
564
|
+
uniform int samplerCount;
|
|
565
|
+
uniform float nightTextureCoefficient;
|
|
566
|
+
|
|
567
|
+
uniform vec2 maxMinOpacity;
|
|
568
|
+
uniform float camHeight;
|
|
569
|
+
|
|
570
|
+
in vec4 vTextureCoord;
|
|
571
|
+
in vec3 v_vertex;
|
|
572
|
+
in vec3 cameraPosition;
|
|
573
|
+
in vec2 vGlobalTextureCoord;
|
|
574
|
+
in float v_height;
|
|
575
|
+
|
|
576
|
+
vec3 sunPos;
|
|
577
|
+
|
|
578
|
+
layout(location = 0) out vec4 diffuseColor;
|
|
579
|
+
|
|
580
|
+
${NIGHT}
|
|
581
|
+
|
|
582
|
+
${DEF_BLEND}
|
|
583
|
+
|
|
584
|
+
${atmos.COMMON}
|
|
585
|
+
|
|
586
|
+
vec3 transmittanceFromTexture(float height, float angle)
|
|
587
|
+
{
|
|
588
|
+
float u = (angle + 1.0) * 0.5;
|
|
589
|
+
float v = height / ATMOS_HEIGHT;
|
|
590
|
+
return texture(transmittanceTexture, vec2(u, v)).xyz;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
vec3 multipleScatteringContributionFromTexture(float height, float angle)
|
|
594
|
+
{
|
|
595
|
+
float u = (angle + 1.0) * 0.5;
|
|
596
|
+
float v = height / ATMOS_HEIGHT;
|
|
597
|
+
return texture(scatteringTexture, vec2(u, v)).xyz;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
void getSunIlluminance(in vec3 point, in vec3 lightDir, out vec3 sunIlluminance)
|
|
601
|
+
{
|
|
602
|
+
// float r = length(point);
|
|
603
|
+
// float mu_s = dot(point, sun_direction) / r;
|
|
604
|
+
// float height = r - BOTTOM_RADIUS;
|
|
605
|
+
|
|
606
|
+
float mu_s = dot(normalize(point), lightDir);
|
|
607
|
+
float height = length(point) - BOTTOM_RADIUS;
|
|
608
|
+
sunIlluminance = SUN_INTENSITY * transmittanceFromTexture(height, mu_s);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
void atmosGroundColor(out vec4 fragColor, in vec3 normal)
|
|
612
|
+
{
|
|
613
|
+
vec3 rayDirection = normalize(v_vertex - cameraPosition);
|
|
614
|
+
vec3 lightDir = normalize(sunPos);
|
|
615
|
+
|
|
616
|
+
rayDirection = normalize(rayDirection * SPHERE_TO_ELLIPSOID_SCALE);
|
|
617
|
+
vec3 camPos = cameraPosition * SPHERE_TO_ELLIPSOID_SCALE;
|
|
618
|
+
lightDir = normalize(lightDir * SPHERE_TO_ELLIPSOID_SCALE);
|
|
619
|
+
|
|
620
|
+
vec3 light = vec3(0.0);
|
|
621
|
+
vec3 transmittanceFromCameraToSpace = vec3(1.0);
|
|
622
|
+
float offset = 0.0;
|
|
623
|
+
float distanceToSpace = 0.0;
|
|
624
|
+
|
|
625
|
+
intersectSphere(camPos, rayDirection, TOP_RADIUS, offset, distanceToSpace);
|
|
626
|
+
|
|
627
|
+
vec3 rayOrigin = camPos;
|
|
628
|
+
|
|
629
|
+
// above atmosphere
|
|
630
|
+
if (offset > 0.0)
|
|
631
|
+
{
|
|
632
|
+
// intersection of camera ray with atmosphere
|
|
633
|
+
rayOrigin += rayDirection * offset;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
float height = length(rayOrigin) - BOTTOM_RADIUS;
|
|
637
|
+
float rayAngle = dot(rayOrigin, rayDirection) / length(rayOrigin);
|
|
638
|
+
bool cameraBelow = rayAngle < 0.0;
|
|
639
|
+
|
|
640
|
+
transmittanceFromCameraToSpace = transmittanceFromTexture(height, cameraBelow ? -rayAngle : rayAngle);
|
|
641
|
+
|
|
642
|
+
float phaseAngle = dot(lightDir, rayDirection);
|
|
643
|
+
float rayleighPhase = rayleighPhase(phaseAngle);
|
|
644
|
+
float miePhase = miePhase(phaseAngle);
|
|
645
|
+
|
|
646
|
+
float distanceToGround = 0.0;
|
|
647
|
+
|
|
648
|
+
bool hitGround = intersectSphere(camPos, rayDirection, BOTTOM_RADIUS, distanceToGround) && distanceToGround > 0.0;
|
|
649
|
+
|
|
650
|
+
// Fix black dots on the edge of atmosphere
|
|
651
|
+
if(camHeight < 700000.0 || !hitGround)
|
|
652
|
+
{
|
|
653
|
+
distanceToGround = distance(camPos, v_vertex * SPHERE_TO_ELLIPSOID_SCALE);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
float segmentLength = (distanceToGround - max(offset, 0.0)) / float(SAMPLE_COUNT);
|
|
657
|
+
|
|
658
|
+
float t = segmentLength * 0.5;
|
|
659
|
+
|
|
660
|
+
vec3 transmittanceCamera;
|
|
661
|
+
vec3 transmittanceLight;
|
|
662
|
+
|
|
663
|
+
for (int i = 0; i < SAMPLE_COUNT; i++)
|
|
664
|
+
{
|
|
665
|
+
vec3 position = rayOrigin + t * rayDirection;
|
|
666
|
+
float height = length(position) - BOTTOM_RADIUS;
|
|
667
|
+
vec3 up = position / length(position);
|
|
668
|
+
float rayAngle = dot(up, rayDirection);
|
|
669
|
+
float lightAngle = dot(up, lightDir);
|
|
670
|
+
vec3 transmittanceToSpace = transmittanceFromTexture(height, cameraBelow ? -rayAngle : rayAngle);
|
|
671
|
+
transmittanceCamera = cameraBelow ? (transmittanceToSpace / transmittanceFromCameraToSpace) : (transmittanceFromCameraToSpace / transmittanceToSpace);
|
|
672
|
+
transmittanceLight = transmittanceFromTexture(height, lightAngle);
|
|
673
|
+
vec2 opticalDensity = exp(-height / rayleighMieHeights);
|
|
674
|
+
vec3 scatteredLight = transmittanceLight * (rayleighScatteringCoefficient * opticalDensity.x * rayleighPhase + mieScatteringCoefficient * opticalDensity.y * miePhase);
|
|
675
|
+
scatteredLight += multipleScatteringContributionFromTexture(height, lightAngle) * (rayleighScatteringCoefficient * opticalDensity.x + mieScatteringCoefficient * opticalDensity.y);
|
|
676
|
+
light += transmittanceCamera * scatteredLight * segmentLength;
|
|
677
|
+
t += segmentLength;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
light *= SUN_INTENSITY;
|
|
681
|
+
|
|
682
|
+
vec3 hitPoint = camPos + rayDirection * distanceToGround;
|
|
683
|
+
vec3 up = normalize(hitPoint);
|
|
684
|
+
float diffuseAngle = max(dot(up, lightDir), 0.0);
|
|
685
|
+
|
|
686
|
+
float lightAngle = dot(normal, lightDir);
|
|
687
|
+
vec3 tA = transmittanceCamera * GROUND_ALBEDO * SUN_INTENSITY;
|
|
688
|
+
vec3 scatteringLight = multipleScatteringContributionFromTexture(height, lightAngle);
|
|
689
|
+
vec3 diffuseTransmittanceLight = transmittanceLight * diffuseAngle;
|
|
690
|
+
light += tA * (scatteringLight + diffuseTransmittanceLight);
|
|
691
|
+
|
|
692
|
+
fragColor = vec4(pow(light * 8.0, vec3(1.0 / 2.2)), 1.0);
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
void getAtmosFadingOpacity(out float opacity)
|
|
696
|
+
{
|
|
697
|
+
float c = length(cameraPosition);
|
|
698
|
+
float maxDist = sqrt(c * c - BOTTOM_RADIUS * BOTTOM_RADIUS);
|
|
699
|
+
float minDist = c - BOTTOM_RADIUS;
|
|
700
|
+
float vertDist = distance(cameraPosition, v_vertex);
|
|
701
|
+
opacity = clamp(maxMinOpacity.y + ( maxMinOpacity.x - maxMinOpacity.y) * getLerpValue(minDist, maxDist, vertDist), 0.0, 1.0);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
void main(void) {
|
|
705
|
+
|
|
706
|
+
sunPos = lightsPositions[0];
|
|
707
|
+
|
|
708
|
+
vec3 texNormal = texture(uNormalMap, vTextureCoord.zw).rgb;
|
|
709
|
+
vec3 normal = normalize((texNormal - 0.5) * 2.0);
|
|
710
|
+
|
|
711
|
+
float minH = 1200000.0;
|
|
712
|
+
float maxH = minH * 3.0;
|
|
713
|
+
float nightCoef = getLerpValue(minH, maxH, camHeight) * nightTextureCoefficient;
|
|
714
|
+
|
|
715
|
+
if(camHeight > 6000000.0)
|
|
716
|
+
{
|
|
717
|
+
normal = normalize(v_vertex);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
vec3 lightDir = normalize(sunPos);
|
|
721
|
+
vec3 viewDir = normalize(cameraPosition - v_vertex);
|
|
722
|
+
|
|
723
|
+
vec4 atmosColor;
|
|
724
|
+
atmosGroundColor(atmosColor, normal);
|
|
725
|
+
|
|
726
|
+
vec3 sunIlluminance;
|
|
727
|
+
getSunIlluminance(v_vertex * SPHERE_TO_ELLIPSOID_SCALE, lightDir * SPHERE_TO_ELLIPSOID_SCALE, sunIlluminance);
|
|
728
|
+
|
|
729
|
+
float overGround = 1.0 - step(0.1, v_height);
|
|
730
|
+
|
|
731
|
+
float shininess = texture( specularTexture, vGlobalTextureCoord.st ).r * 255.0 * overGround;
|
|
732
|
+
vec3 reflectionDirection = reflect(-lightDir, normal);
|
|
733
|
+
float reflection = max( dot(reflectionDirection, viewDir), 0.0);
|
|
734
|
+
vec3 spec = sunIlluminance * specular.rgb * pow( reflection, specular.w) * shininess;
|
|
735
|
+
float diffuseLightWeighting = max(dot(normal, lightDir), 0.0);
|
|
736
|
+
|
|
737
|
+
vec4 nightImageColor = texture( nightTexture, vGlobalTextureCoord.st );
|
|
738
|
+
vec3 night = nightStep * (.18 - diffuseLightWeighting * 3.0) * nightImageColor.rgb * nightCoef;
|
|
739
|
+
night *= overGround * step(0.0, night);
|
|
740
|
+
vec4 lightWeighting = vec4(ambient + sunIlluminance * diffuse * diffuseLightWeighting + night, 1.0);
|
|
741
|
+
|
|
742
|
+
float fadingOpacity;
|
|
743
|
+
getAtmosFadingOpacity(fadingOpacity);
|
|
744
|
+
|
|
745
|
+
getSunIlluminance(cameraPosition, viewDir * SPHERE_TO_ELLIPSOID_SCALE, sunIlluminance);
|
|
746
|
+
|
|
747
|
+
spec *= sunIlluminance;
|
|
748
|
+
|
|
749
|
+
diffuseColor = texture( defaultTexture, vTextureCoord.xy );
|
|
750
|
+
if( samplerCount == 0 ) {
|
|
751
|
+
diffuseColor = mix(diffuseColor * lightWeighting, atmosColor, fadingOpacity) + vec4(spec, 0.0);
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
vec4 src;
|
|
756
|
+
|
|
757
|
+
blend(diffuseColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);
|
|
758
|
+
if( samplerCount == 1 ) {
|
|
759
|
+
diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
blend(diffuseColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);
|
|
764
|
+
if( samplerCount == 2 ) {
|
|
765
|
+
diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
blend(diffuseColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);
|
|
770
|
+
if( samplerCount == 3 ) {
|
|
771
|
+
diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
blend(diffuseColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);
|
|
776
|
+
if( samplerCount == 4 ) {
|
|
777
|
+
diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
|
|
778
|
+
return;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
blend(diffuseColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);
|
|
782
|
+
diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
|
|
783
|
+
}`
|
|
784
|
+
});
|
|
785
|
+
}
|
|
786
|
+
export function drawnode_colorPicking() {
|
|
787
|
+
return new Program("drawnode_colorPicking", {
|
|
788
|
+
uniforms: {
|
|
789
|
+
projectionMatrix: "mat4",
|
|
790
|
+
viewMatrix: "mat4",
|
|
791
|
+
eyePositionHigh: "vec3",
|
|
792
|
+
eyePositionLow: "vec3",
|
|
793
|
+
samplerCount: "int",
|
|
794
|
+
tileOffsetArr: "vec4",
|
|
795
|
+
samplerArr: "sampler2darray",
|
|
796
|
+
pickingMaskArr: "sampler2darray",
|
|
797
|
+
pickingColorArr: "vec4",
|
|
798
|
+
height: "float"
|
|
799
|
+
}, attributes: {
|
|
800
|
+
aVertexPositionHigh: "vec3", aVertexPositionLow: "vec3", aTextureCoord: "vec2"
|
|
801
|
+
},
|
|
802
|
+
vertexShader: `precision highp float;
|
|
803
|
+
|
|
804
|
+
attribute vec3 aVertexPositionHigh;
|
|
805
|
+
attribute vec3 aVertexPositionLow;
|
|
806
|
+
attribute vec2 aTextureCoord;
|
|
807
|
+
|
|
808
|
+
uniform mat4 projectionMatrix;
|
|
809
|
+
uniform mat4 viewMatrix;
|
|
810
|
+
uniform vec3 eyePositionHigh;
|
|
811
|
+
uniform vec3 eyePositionLow;
|
|
812
|
+
uniform float height;
|
|
813
|
+
|
|
814
|
+
varying vec2 vTextureCoord;
|
|
815
|
+
|
|
816
|
+
void main(void) {
|
|
817
|
+
|
|
818
|
+
vTextureCoord = aTextureCoord;
|
|
819
|
+
|
|
820
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
821
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
822
|
+
|
|
823
|
+
mat4 m = projectionMatrix * viewMatrixRTE;
|
|
824
|
+
|
|
825
|
+
vec3 nh = height * normalize(aVertexPositionHigh + aVertexPositionLow);
|
|
826
|
+
|
|
827
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
828
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
829
|
+
|
|
830
|
+
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
831
|
+
}`,
|
|
832
|
+
fragmentShader: `precision highp float;
|
|
833
|
+
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
834
|
+
uniform vec4 tileOffsetArr[SLICE_SIZE];
|
|
835
|
+
uniform vec4 pickingColorArr[SLICE_SIZE];
|
|
836
|
+
uniform sampler2D samplerArr[SLICE_SIZE];
|
|
837
|
+
uniform sampler2D pickingMaskArr[SLICE_SIZE];
|
|
838
|
+
uniform int samplerCount;
|
|
839
|
+
varying vec2 vTextureCoord;
|
|
840
|
+
|
|
841
|
+
${DEF_BLEND_PICKING}
|
|
842
|
+
|
|
843
|
+
void main(void) {
|
|
844
|
+
gl_FragColor = vec4(0.0);
|
|
845
|
+
if( samplerCount == 0 ) return;
|
|
846
|
+
|
|
847
|
+
vec2 tc;
|
|
848
|
+
vec4 t;
|
|
849
|
+
vec4 p;
|
|
850
|
+
|
|
851
|
+
blendPicking(gl_FragColor, tileOffsetArr[0], samplerArr[0], pickingMaskArr[0], pickingColorArr[0], 1.0);
|
|
852
|
+
if( samplerCount == 1 ) return;
|
|
853
|
+
|
|
854
|
+
blendPicking(gl_FragColor, tileOffsetArr[1], samplerArr[1], pickingMaskArr[1], pickingColorArr[1], 1.0);
|
|
855
|
+
if( samplerCount == 2 ) return;
|
|
856
|
+
|
|
857
|
+
blendPicking(gl_FragColor, tileOffsetArr[2], samplerArr[2], pickingMaskArr[2], pickingColorArr[2], 1.0);
|
|
858
|
+
if( samplerCount == 3 ) return;
|
|
859
|
+
|
|
860
|
+
blendPicking(gl_FragColor, tileOffsetArr[3], samplerArr[3], pickingMaskArr[3], pickingColorArr[3], 1.0);
|
|
861
|
+
if( samplerCount == 4 ) return;
|
|
862
|
+
|
|
863
|
+
blendPicking(gl_FragColor, tileOffsetArr[4], samplerArr[4], pickingMaskArr[4], pickingColorArr[4], 1.0);
|
|
864
|
+
}`
|
|
865
|
+
});
|
|
866
|
+
}
|
|
867
|
+
export function drawnode_heightPicking() {
|
|
868
|
+
return new Program("drawnode_heightPicking", {
|
|
869
|
+
uniforms: {
|
|
870
|
+
projectionMatrix: "mat4",
|
|
871
|
+
viewMatrix: "mat4",
|
|
872
|
+
height: "float",
|
|
873
|
+
eyePositionHigh: "vec3",
|
|
874
|
+
eyePositionLow: "vec3"
|
|
875
|
+
}, attributes: {
|
|
876
|
+
aVertexPositionHigh: "vec3", aVertexPositionLow: "vec3"
|
|
877
|
+
},
|
|
878
|
+
vertexShader: `precision highp float;
|
|
879
|
+
|
|
880
|
+
attribute vec3 aVertexPositionHigh;
|
|
881
|
+
attribute vec3 aVertexPositionLow;
|
|
882
|
+
|
|
883
|
+
uniform mat4 projectionMatrix;
|
|
884
|
+
uniform mat4 viewMatrix;
|
|
885
|
+
uniform vec3 eyePositionHigh;
|
|
886
|
+
uniform vec3 eyePositionLow;
|
|
887
|
+
uniform float height;
|
|
888
|
+
|
|
889
|
+
varying vec3 eyePosition;
|
|
890
|
+
varying vec3 vertexPosition;
|
|
891
|
+
|
|
892
|
+
void main(void) {
|
|
893
|
+
|
|
894
|
+
// This code is works for Mac Chrome and Safari
|
|
895
|
+
// any other code probably will produce jittering
|
|
896
|
+
|
|
897
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
898
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
899
|
+
|
|
900
|
+
mat4 m = projectionMatrix * viewMatrixRTE;
|
|
901
|
+
|
|
902
|
+
vec3 nh = height * normalize(aVertexPositionHigh + aVertexPositionLow);
|
|
903
|
+
|
|
904
|
+
eyePosition = eyePositionHigh + eyePositionLow;
|
|
905
|
+
vertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
906
|
+
|
|
907
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
908
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
909
|
+
|
|
910
|
+
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
911
|
+
}`,
|
|
912
|
+
fragmentShader: `precision highp float;
|
|
913
|
+
|
|
914
|
+
varying vec3 eyePosition;
|
|
915
|
+
varying vec3 vertexPosition;
|
|
916
|
+
|
|
917
|
+
vec3 encode24(highp float f) {
|
|
918
|
+
float F = abs(f);
|
|
919
|
+
float s = step( 0.0, -f );
|
|
920
|
+
float e = floor( log2(F) );
|
|
921
|
+
float m = exp2(- e) * F;
|
|
922
|
+
e = floor( log2(F) + 127.0 ) + floor( log2(m) );
|
|
923
|
+
return vec3(
|
|
924
|
+
( 128.0 * s + floor( e * exp2(-1.0) ) ) / 255.0,
|
|
925
|
+
( 128.0 * mod( e, 2.0 ) + mod( floor( m * 128.0 ), 128.0 ) ) / 255.0,
|
|
926
|
+
floor( mod( floor( m * exp2( 23.0 - 8.0) ), exp2(8.0) ) ) / 255.0);
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
void main(void) {
|
|
930
|
+
float range = distance(eyePosition, vertexPosition);
|
|
931
|
+
gl_FragColor = vec4(encode24(range), 1.0);
|
|
932
|
+
}`
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
export function drawnode_depth() {
|
|
936
|
+
return new Program("drawnode_depth", {
|
|
937
|
+
uniforms: {
|
|
938
|
+
projectionMatrix: "mat4",
|
|
939
|
+
viewMatrix: "mat4",
|
|
940
|
+
height: "float",
|
|
941
|
+
eyePositionHigh: "vec3",
|
|
942
|
+
eyePositionLow: "vec3",
|
|
943
|
+
frustumPickingColor: "vec3"
|
|
944
|
+
}, attributes: {
|
|
945
|
+
aVertexPositionHigh: "vec3", aVertexPositionLow: "vec3"
|
|
946
|
+
},
|
|
947
|
+
vertexShader: `precision highp float;
|
|
948
|
+
|
|
949
|
+
attribute vec3 aVertexPositionHigh;
|
|
950
|
+
attribute vec3 aVertexPositionLow;
|
|
951
|
+
|
|
952
|
+
uniform mat4 projectionMatrix;
|
|
953
|
+
uniform mat4 viewMatrix;
|
|
954
|
+
uniform vec3 eyePositionHigh;
|
|
955
|
+
uniform vec3 eyePositionLow;
|
|
956
|
+
uniform float height;
|
|
957
|
+
|
|
958
|
+
void main(void) {
|
|
959
|
+
|
|
960
|
+
// @hack
|
|
961
|
+
// This code is works for Mac Chrome and Safari
|
|
962
|
+
// any other code probably will produce jittering
|
|
963
|
+
|
|
964
|
+
mat4 viewMatrixRTE = viewMatrix;
|
|
965
|
+
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
966
|
+
|
|
967
|
+
mat4 m = projectionMatrix * viewMatrixRTE;
|
|
968
|
+
|
|
969
|
+
vec3 nh = height * normalize(aVertexPositionHigh + aVertexPositionLow);
|
|
970
|
+
|
|
971
|
+
vec3 eyePosition = eyePositionHigh + eyePositionLow;
|
|
972
|
+
vec3 vertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
973
|
+
|
|
974
|
+
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
975
|
+
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
976
|
+
|
|
977
|
+
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
978
|
+
}`,
|
|
979
|
+
fragmentShader: `precision highp float;
|
|
980
|
+
uniform vec3 frustumPickingColor;
|
|
981
|
+
|
|
982
|
+
void main(void) {
|
|
983
|
+
gl_FragColor = vec4(frustumPickingColor, 1.0);
|
|
984
|
+
} `
|
|
985
|
+
});
|
|
986
|
+
}
|