-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Comparing changes
Open a pull request
base repository: mapbox/mapbox-gl-js
base: v1.13.3
head repository: mapbox/mapbox-gl-js
compare: v2.0.0
Commits on Nov 18, 2020
-
ensure imag datauri is released (#10118)
Co-authored-by: Vladimir Agafonkin <agafonkin@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 59c5425 - Browse repository at this point
Copy the full SHA 59c5425View commit details
Commits on Nov 21, 2020
-
CP changelog changes from 1.13 release (#10125)
Arindam Bose authoredNov 21, 2020 Configuration menu - View commit details
-
Copy full SHA for 3136a53 - Browse repository at this point
Copy the full SHA 3136a53View commit details
Commits on Dec 8, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 85f124d - Browse repository at this point
Copy the full SHA 85f124dView commit details -
DEM terrain: specification and implementation (internal-4)
* DEM terrain: spec and support for raster. * Terrain render tests. Source cache used only for terrain loads lower res. - Fix the code making the source cache be reused for hillshade and terrain: If reused, load only hillshade required resolution. If only for terrain, load lower resolution sufficient for terrain. To be tweaked. - Render tests that use terrain (no hillshade) need lower res tiles. Added to the tests. - Orthogonal issue: test getImage request didn't have cancel() (should as it is of type Cancellable). * Map.setTerrain API * 3d terrain: DEM error and lower tile zoom overlap render test * 3D terrain render test: reproducible overlap issue Current approach is problematic as it doesn't resolve low zoom tiles error overlapping on top of near zoom in every case. Different type of rendering terrain is needed - to be copied from draped approach. * Terrain render to texture For each rasterized tile, multiple framebuffers are used: while the prototype implemented rendering all the rasterized layers first to one framebuffer and then rendering all the non rasterized layers on top of it, to the approach here keeps the order of layers: continuous sequence of rasterized layers gets rendered to the same framebuffer, the framebuffer gets rendered to the screen, after that one or more non-rasterized layers get rendered and so on... This keeps the layer order but requires 6 time more GPU memory for color attachments for street style used in debug terrain-debug.html page. Although this approach is not final and benchmarking will tell if it is production code candidate, it is following style order and needs to be implemented and analyzed. * Raster and render-tests/terrain/error-overlap fixes. Fix raster shader: - raster render to texture and drape over terrain fixed not to have holes and issues with satellite.html and render tests. - remove hacky stencil approach in draw_raster (stencil out > 3 tile zoom levels) to disable overlap. Instead, one proxy tile gets one raster piece and proxy tiles are not overlapping. - append deeper tile cover to disable holes while zooming out. - split u_tl_scale_dd_dem to self documenting uniforms. render-tests/terrain/error-overlap: Test verifies fix for multiple overlap issues when children have significantly different values compared to parent. Also, it verifies tile skirt as data is setup so that we would see holes if no tile skirts are used. * Remove multiple framebuffers used for one tile The approach taken was to cache every tile framebuffer and one tile could have multiple: for every continuous segment of layers that get draped to texture. Measurements show this to be extremelly slow as e.g. street style would result to 7 framebuffers per tile (e.g. road, bridge symbols divide draped layers to segments). This is removed here as well as any attempt to cache tile rendering results with idea to avoid tile rendering if it didn't change. This will get introduced in later patches. * Hillshade support After proxy implementation, it got simple compared to prototype: 2d ortho mapping of hillshade tile to proxy tile is defined in proxy.posMatrix and that is sufficient for rendering prepred hillshade texture to proty tile's fbo. * Line layer support Order of layers defined in style is preserved when rendering.non-draped layers (e.g. symbols) split layer list to draped layers sublists that get rasterized and then composited to existing tile render over terrain. After such, draped sublist, symbol draw to screen follows and the new draped layers raster. * Testing and fix for render to texture & line-translate using zero elevation Added render tests use 0 elevation and we expect to get the same result when render to texture is used as without terrain. Expectations are created using style without terrain. Render tests expose issue with aligned matrix usage in raster: added render tests, without fix in draw_raster.js, were suffering from pixel fraction offset. Another issue (incorrect line width is still noticeable) and tests are failing. * Fix issue with failing render test on Intel non-terrain shader was created with terrain define in painrter.js, nothing HW dependent. Update expectations given that previous patcvh stopped using aligned matrix for terrain. * Line layer fix width and opacity Disable distant line fade (v_gamma_scale) aliasing approach when using render to texture. This way we et almost identical results when rendering to texture vs immediate render mode for lines. Cleanup in terrain.js (symbol related code from prototype should not be included in this PR). * Rebase terrain render tests following the explanation here: internal-4#issuecomment-597844847 * Refactor terrain source update Terrain source cache update shopuld happen before style driven update (as update there is skipped if terrain updates source cache). This ensure also that visible coordinates are not altered from within terrain cache update, as it was before: no need to check if tile is present. Additional deep cover for terrain is marked as covered (SourceCache._coveredTiles) to avoid hillshade prepare preparing these coordinates, too. * ProxySourceCache documentation Extend mapping of higher zoom level coordinates to proxy coordinates to all types of souerce caches. * overlap handling approach not needed anymore * Stencil mode for raster overlap and raster transparency support * Processed review comments Processed comments mapbox-gl-js-internal/4#discussion_r393836986. Thanks @karimnaaji. * Review comments processed Comments internal-4#pullrequestreview-375999464 processed. Thanks @mpulkki-mapbox. * Performance fix on zoom > 20 Making proxy source cache to have maxzoom equal to map's maxzoom ensures that framebuffers always get the same size. * Review comments fix.
Configuration menu - View commit details
-
Copy full SHA for b879f83 - Browse repository at this point
Copy the full SHA b879f83View commit details -
Elevate camera over terrain (internal-9)
* Elevation: CPU side access internal API. Unit test creates DEM tiles programatically, covers wrap, tile loading and elevation interpolation. * Elevate camera for camera center elevation Enable variable Z tile cover for terrain, regardless the pitch. Modify far plane calculation to avoid clipping the content. Modify LOD to include all the tiles between camera and center (no holes in near) by using MAX_VALUE for height in all collision bounding boxes. Temporarily as it is to be replaced by height. Render tests had tile 15 in back replaced by tile 14 as it gets out of tile cover otherwise. * Fix initial state If terain tiles get loaded when map is already displayed, it is needed to run Transform._calcMatrices. Move center calculation and recalculate matrices is center elevation changed.
Configuration menu - View commit details
-
Copy full SHA for a4ed58c - Browse repository at this point
Copy the full SHA a4ed58cView commit details -
Symbols placement and rendering on terrain. Terrain exaggeration. (in…
…ternal-10) * box collision and aligned to viewport symbols Placement on terrain for symbols aligned to viewport. CollisionBox gets elevation of anchor. TODO: occlusions of symbols by terrain. Render test added is to be changed after occlusion by terrain work. * Road label placement and rendering Doesn't support labels that are map aligned (pitch with map). Those are to be draped. * road label placement render test. Exaggeration styling property. Terrain exaggeration is implemented here as it simplified work on tweaking hand drawn terrain elevation and occlusion of road labels. Unit test for terrain styling and validation. * Occlusion for symbols Render depth to texture and sample depth texture to check if symbol anchor is occluded or not. If ocludded, move all symbol vertices out of view volume. Helper code used to develop this: https://gist.github.com/astojilj/abd2fd384e084ec5233cc09e59deab76 is not included in code base as additional "debugging" code: behavior is covered by render-tests and depth framebuffer render to color texture can be inspected using external tools. Assert that elevation is taken into account for all placement. * Fix review comments, flakiness issues with render tests on CI. Added render test exposed assert with vertical text placement. * collision render test: reduce complexity
Configuration menu - View commit details
-
Copy full SHA for 3806371 - Browse repository at this point
Copy the full SHA 3806371View commit details -
Sky layer implementation and spec (internal-5)
Add sky layer, using both gradient and atmosphere sky types. * Add scattering shader and offscreen capture render pipeline - Add cubemap geometry and UVs - Add demo page * Enable face culling during skybox passes * WIP style spec skybox layer * v0 of skybox style layer * v0 of horizontal skybox gradients * Enforce depth fail on fragment covered by the ground plane - Setup depth states for skybox rendering - Reorder draw calls for skyboxes to be drawn after opaque and before translucent: This forces the skybox drawn fragment to be discarded during depth testing, since the skybox vertices depth is the maximum possible depth value * Dither gradient shader * azimuth gradients * v0 of radial gradients * Remove linear gradients and associated properties * Frustum culling for skybox * Prefix stylespec props with sky- instead of skybox- - Rename skybox-radial-extent to sky-radial-progress for consistency with line-progress - Rename skybox-center-* to sky-sun, to be more explicit about what it represents - Rename SkyboxLayer to SkyLayer for consistency with specs properties - Rename cubemap to skybox for consistency * Rename 'atmospheric' style specs to 'atmosphere' * Add a dedicated debug page for skybox * Add style specs prop 'sky-opacity' * Reduce memory footprint of atmospheric skybox capture Change the format from RGBA to RGB, since the alpha channel is unused * skybox.html: Fade out sky as zooming out * Consolidate sun direction calculation - Same code path for gradient and scattering shader capture - Normalize direction in the CPU instead of fragment shader for gradient - Remove SunCalc dependency: We decided that the user can directly use that library outside of mapbox gl, and plug the results in the style spec * Add degToRad, radToDeg helper functions * Move sun disk and dithering to runtime scattering shader - Moving this in the runtime shader allows us to vastly reduce the size of the framebuffers used to render the scattering algorithm (1024x1024 -> 128x128); this is a reduction of ~64 in pixel processing * Test adding sky to the terrain demo * Increase default max pitch to 85 to allow for skybox render tests * Add sky-atmosphere-* style spec * Better mix sun disk with sky color - Document sun angular angle - Improve smoothstep antialiasing * Collapse azimuth and angle into a singular sky-sun-direction property * Add some unit tests Add render and some unit tests Update render tests * Make better utilization of texture space Prevent wasting texture space for areas that are not visible after the cubemap generation * Increase threshold for fragile terrain test * Temporal and chromatic dithering * Render tests for gradients * Adjust precision qualifiers for mobile * Premultiply sky-opacity to prevent blending overflow * Revised docs * Wrap frame counter Co-authored-by: Arindam Bose <arindam.bose@mapbox.com>
Configuration menu - View commit details
-
Copy full SHA for 6ce2de8 - Browse repository at this point
Copy the full SHA 6ce2de8View commit details -
Terrain rendering optimizations. Vector tiles clipping. (internal-12)
* Depth first tile enumeration and rendering. Optional optimization drape all and then place symbols while zooming/panning the map. * Overlap handling / clipping for vector tiles * terrain-debug.html debug option for drape first. simplify occlusion render-test (orthogonal change). * Terrain RTT framebuffer pool size: 20 -> 5 as it behaves the best on desktop and iPhone X. * Simple FPS counter for terrain-debug. Continuous repaint option ad FPS count in UI. * A quick attempt to fix flaky collision-occlusion render test.
Configuration menu - View commit details
-
Copy full SHA for 77f5306 - Browse repository at this point
Copy the full SHA 77f5306View commit details -
Fix horizon frustum culling for skybox
Cleanup to always use frustum ray-intersections Address review comments Use vertical half-fov that accounts for padding Add unit tests Fix lint errors
Configuration menu - View commit details
-
Copy full SHA for 6cb8def - Browse repository at this point
Copy the full SHA 6cb8defView commit details -
fixing the precision qualifiers and also adding the terrain prelude f…
…or all uniforms (internal-26)
Configuration menu - View commit details
-
Copy full SHA for de194e0 - Browse repository at this point
Copy the full SHA de194e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8b32625 - Browse repository at this point
Copy the full SHA 8b32625View commit details -
Configuration menu - View commit details
-
Copy full SHA for cef95aa - Browse repository at this point
Copy the full SHA cef95aaView commit details -
Fill extrusions: terrain and flat roofs
For each building, centroid coordinate is calculated and fed to vertex shader, for each vertex. If vertex is on top (roof or wall top), sample centroid elevation. If centroid elevation lower than vertex elevation, roof at least 2.5 meters height above base. Additional check for isEntirelyOutside also for roof area to hide occasional artefacts. The most advanced part is handling behavior on tile edges: In such case, both pieces of the building need to have the same centroid (in order to have uniform roof elevation). Instead of calculating centroid, selected point is center of the area on tile edge where both building parts overlap (intersect tile edge). While sampling for roof, use ruggedness to decide on roof elevation dem to meter and terrain slope. Roof per feature, not ring. Fixes issue on borders when buildings have multiple disconnected pieces (and that happens when on border). Free 3 bits of centroid x and y, to be used for building size in follow up patch. Pass building size for centroid roof calculation Lower bottom edge (if on ground) 5m to hide space under walls. Get wider sample, if there is space, to get better slope estimate. pattern and render tests Abandon flast roofs on tile border approach It is complicated, expensive, leading to unpredictive results. This would need to include joinging pieces of buildings and sampling dem on cpu side Make centroid vertex array optional Enable flat roof calculation and use the memory storage only if and when terrain gets enabled. Render tests enable terrain on start or dynamically after load. Ensure 0 during a_centroid_pos attribute buffer initialization When activating terrain, or for fill extrusions that don't need flat roofs, centroidVertexBuffer is null and vertex attrib array is disabled. Setup the generic state when the vertex attrib array is disabled: ensure it is 0 as it could be reset by 3rd party custom layer. Codegen for fill extrusion centroid attributes
Configuration menu - View commit details
-
Copy full SHA for 1422c33 - Browse repository at this point
Copy the full SHA 1422c33View commit details -
Terrain LOD, based on distance to camera
First version is sampling center of every tile, no AABB for tiles yet. WIP. 2D LOD also changed to use distance to camera. Sharper LOD drop for distant tiles. 3rd coordinate is in meters: updated frustum clipping. Debug draw: when terrain is enabled, draw proxy tiles, separatelly elevating square corners. _findTileCoveringTileID changed to use visible and loaded tiles. Optimizations with key calculation and lookup bring updateTileBinding from 5ms -> less than 2ms for the benchmark. Further optimizations (reusing previous pass binding) are possible. LOD: batch elevation for tile. Lint, flow and tests fixes. Fetch elevation for five tile points in one call. No additional buffer: Minor render test modifications, partly orthogonal: use lower tilt where possible for performance reasons. Extreme ruggedness > 900m for 1km tile is rare: https://download.osgeo.org/qgis/doc/reference-docs/Terrain_Ruggedness_Index.pdf We could use const maxRuggedness = 0.1 / meterToTile additionally: for now, sampling tile corners and center with no additional buffer: the idea is to identify cases and amount of maxRuggedness buffer needed in follow up patches. LOD retain logic: use lower than cover zoom children + various tests Unit test tile cover test when using elevation data (transform_test.js). Toggling terrain on off fix and render test. Earlier, sourcecache._cache tiles were also used and there was no case that center elevation is not up to date due to sourceCache not updated. terrain/raster verifies toggling on off. Document tile cover and cut off for distance angles. Remove shortcuts / premature optimization. Document and refactor distToSplitScale Also revert expectation change for some of the terrain render tests - works like in original patch.
Configuration menu - View commit details
-
Copy full SHA for 9e2b094 - Browse repository at this point
Copy the full SHA 9e2b094View commit details -
Cleanup shader caching code and define handling, allow for injection …
…of custom defines for a given layer Add some documentation Refactor circle to use dynamic defines Fix lint errors Flow: 1 Arindam: 0 Dont use .includes docs-lint rules are weird Update src/render/painter.js Co-authored-by: Karim Naaji <karim.naaji@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 819333d - Browse repository at this point
Copy the full SHA 819333dView commit details -
fix limited camera movement with terrain (internal-33)
Setting lower zoom to transform sometimes leads to center change (in constrain function). Instead, clone transform instead of restoring the same object to avoid side effects. Remove unecessary _calcMatrices invocation from Transform.clone(). Fixes: mapbox-gl-js-internal/issues/32
Configuration menu - View commit details
-
Copy full SHA for 46aa03e - Browse repository at this point
Copy the full SHA 46aa03eView commit details -
Fix flickering 3d terrain internal-31
The cause was in broken logic of _findTileCoveringTileID: in one of the paths it didn't check if returned tile is loaded (as it should lookup for renderable tiles only). Moved proxy source update from updateTileBinding (happens on every render frame) to update (called when all other sources are updated). Couldn't figure out economical way to make useful and reproducile test for this. Instead assert inconsistencies in lookup cache. Measured and this even seems beneficial (as proxy cache is not reset on every render call). Fixes: internal-31
Configuration menu - View commit details
-
Copy full SHA for bf1b4d1 - Browse repository at this point
Copy the full SHA bf1b4d1View commit details -
Include coordinate elevation in calculating point proxymity: even points that are distant horizontally, could get close due to pitch and their different elevation. Heatmap circles are porallel to ground (following terrain for every fragment withing the radius seemed wrong and performance sensitive). The result looks nice (anyway better than to have the coordinates anchored to sea level) and it follow 3d terrain.
Configuration menu - View commit details
-
Copy full SHA for fb1a8d4 - Browse repository at this point
Copy the full SHA fb1a8d4View commit details -
ImageSource 3D terrain support
- [x] render test for image - [x] image over wrap line render test, with and without terrain - [x] video and image debug page Fixes: internal-3d-67
Configuration menu - View commit details
-
Copy full SHA for d6154c6 - Browse repository at this point
Copy the full SHA d6154c6View commit details -
Performance, lookup and distance to center sorting fixes (internal-42)
* Performance, lookup and distance to center sorting fixes Performance: use elevation when calculating cover for all sources. This reduces nubler of tiles processed. Lookup: reset lookup cache after every source cache update: tiles might get removed and lookup cache state is invalid. This caused issue if using getElevation during update. Distance to center sorting fixes: distance to center didn't take wrap into account and case when tile zoom < max zoom: distance to center sorting was working in most of the cases except in the one here: thanks @mpulkki-mapbox. * Disable tilecover elevation usage for the elevation ... this is moved to a separate PR. Requires removal of deep cover, backfill of holles, morphing while loading etc. flaky and failing render test fixes. * A bit less tile to load around 60-73 (the heaviest range) pitch.
Configuration menu - View commit details
-
Copy full SHA for 6a55793 - Browse repository at this point
Copy the full SHA 6a55793View commit details -
Configuration menu - View commit details
-
Copy full SHA for 081f7dc - Browse repository at this point
Copy the full SHA 081f7dcView commit details -
Fix broken shader statement on specific hardware (internal-45)
* Fix broken shader statement on arm mali architecture internal-38 For unknown reason exp(vec2) did not work on arm mali-t760 This is fixed by replacing for exp(float) instead. * Fix incorrect comment * Add comment about the issue
Configuration menu - View commit details
-
Copy full SHA for f03dbbd - Browse repository at this point
Copy the full SHA f03dbbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for b5b7389 - Browse repository at this point
Copy the full SHA b5b7389View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9788623 - Browse repository at this point
Copy the full SHA 9788623View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6672b7b - Browse repository at this point
Copy the full SHA 6672b7bView commit details -
symbols that pitch with map: rendering and collision (internal-48)
* symbols that pitch with map: rendering and collision Sample elevation per vertex when rendering. This makes every glyph aligned to terrain surface. Pass inverted label plane matrix to convert vertex pos from label plane to tile coordinates. Return and interpolate elevation along path for each glyph. This is done only for pitchwithMap case for proper collision calculation. Debug render (delayed update) is not covered here: that has low priority. Fixes: internal-3d-81 * terrain: fix regression with overscaled tile id returned in cover. This was submitted in internal-16 Revert original expectations for collision-lines-occlusion and line-pattern/pitch-terrain. text-pitch-alignment/map-text-rotation-alignment-map-terrain is modified to expose the regression (otherwise mopst of the overscale symbols are not visible).
Configuration menu - View commit details
-
Copy full SHA for 9c62d41 - Browse repository at this point
Copy the full SHA 9c62d41View commit details -
Configuration menu - View commit details
-
Copy full SHA for dbc378b - Browse repository at this point
Copy the full SHA dbc378bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2160667 - Browse repository at this point
Copy the full SHA 2160667View commit details -
Optimize DEM cover, clear render tests (internal-52)
* Couple terrain dem cover to proxy cover Reduce number of DEM tiles loaded: previously used deep cover wasn't only there to hide holes when zooming in out but was also masking the issue that for dem tiles of size 256 and 128 we were not loading optimal tile cover that corresponds to grid size (as deep cover covered range whole zoom range). Deep cover is here removed. Couple proxy and terrain tile cover: this should be a minimum od dem tiles needed for given grid size. To make sure it is the same always, make roundZoom (false) behavior of terrain tile to act the same as for proxy cover. Remove complexity of approach that was sharing high res hillshade also for terrain: it is never the case that the same tile used for hillshade is optimal tile for terrain and while deep cover was enabling this, there is no saving if using same source cache for both terrain and hillshade. The approach / feature would be formulated like this: 1. if using same dem source for terrain and hillshade, hillshade comes for free but uses terrain dem zoom level (terrain-debug.html page is modified to demo this). 2. if defining separate raster-dem sources in style for hillshade and terrain, hillshade would use the same zoom level as in 2D map. Add missing dem tiles to render tests. Remove unecessary error-overlap const tiles, remove their color profile, to prevent inconsistencies when running render test in browser. Fix occasional flakyness by using dedicated set of tiles for 14.5 and 15 zoom tests. * Remove approach promoting dem source cache tiles from _cache to _tiles. Hacky approach was altering cover used for hillshade rendering and causing artifacts. cover should be managed only by source cache.
Configuration menu - View commit details
-
Copy full SHA for b84d9ab - Browse repository at this point
Copy the full SHA b84d9abView commit details -
Add tile coverage freeze debug toggle (internal-46)
* Add tile coverage freeze debug toggle Useful to debug an navigate around LOD in distant tiles as well as surrounding area
Configuration menu - View commit details
-
Copy full SHA for e71c3ca - Browse repository at this point
Copy the full SHA e71c3caView commit details -
Configuration menu - View commit details
-
Copy full SHA for a2e792d - Browse repository at this point
Copy the full SHA a2e792dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8adc5f2 - Browse repository at this point
Copy the full SHA 8adc5f2View commit details -
Add 3d playground demo code (internal-59)
* Add 3d playground demo code in repository * Fix lint
Configuration menu - View commit details
-
Copy full SHA for 4bf7589 - Browse repository at this point
Copy the full SHA 4bf7589View commit details -
Hybrid render cache approach (internal-61)
* Hybrid render cache approach Refactor render cache internal-54 approach to: - Enabled only while moving so that steady state follows style layer order. In follow ups, caching tiles in back in steady state. - Reuse previous render from cache always when there was no change of content that was used to render proxy tile. This enables caching in overscale space and caching all the tile (no need to wait for optimal tile to be loaded). - When tile reloads, clear cache. - Enable caching for raster layers - caching is disabled only for set of tiles tiles during fade. symbol-translucent--hillshade-translucent-terrain and symbol-translucent--line-translucent-terrain are render tests verifying proper style layer order with terrain (in stead, non-drape-first mode). Raster tests suport for forceDrapeFirst mode. symbol-translucent--line-translucent-terrain-draped verifies terrainDrapeFirst option: it is the same as symbol-translucent--line-translucent-terrain with expectation that symbols render is moved after all draped layers. real-world/sanfrancisco-terrain-draped verifies caching in multiple render calls. * dealloc render cache * Adapated version of e2e741f3f0f4f2859431341a91973ebccf2ed65e Co-authored-by: Karim Naaji <karim.naaji@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 995de42 - Browse repository at this point
Copy the full SHA 995de42View commit details -
Move symbols behind camera (internal-67)
Joining with occlusion approach. In future, occlusion approach to join fade, after sampling multiple points.
Configuration menu - View commit details
-
Copy full SHA for 5f5ba4a - Browse repository at this point
Copy the full SHA 5f5ba4aView commit details -
Add render tests for text shaping related changes that needs to be ba…
…ck ported to gl-js (internal-66) * Add new render tests * Update test ignore list
Configuration menu - View commit details
-
Copy full SHA for fe909ff - Browse repository at this point
Copy the full SHA fe909ffView commit details -
Optimize sky layer (internal-72)
- Reduce number of ray marching steps right before seeing any noticeable difference - Non-linear UV parameterization: .Increase event and concentrate rays around horizon events .Allows to reduce texture cubemap sizes to 32x32 pixesl
Configuration menu - View commit details
-
Copy full SHA for 585b25f - Browse repository at this point
Copy the full SHA 585b25fView commit details -
Dashed and pattern lines with line-metrics enabled sources (internal-62)
* a_linesofar is a separate float attribute for line programs Thus we're keeping it accurate. * [render tests] Add line-dasharray/line-metrics * [render tests] Add line-dasharray/zoom-history-line-metrics * [render tests] Add line-pattern/line-metrics * [render tests] Update results * Simplification Co-authored-by: Karim Naaji <karim.naaji@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 74d05bb - Browse repository at this point
Copy the full SHA 74d05bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e10c32 - Browse repository at this point
Copy the full SHA 7e10c32View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e5bae8 - Browse repository at this point
Copy the full SHA 2e5bae8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e463f6 - Browse repository at this point
Copy the full SHA 1e463f6View commit details -
Fix collision and placement for line labels (internal-65)
Interpolating along long line segment on terrain was not implemented correctly: - along line, viewport aligned: When on terrain, long segments need to be truncated to handle terrain curvature. Earlier handling in placeCollisionCircles when anchor point is behind camera. When calculating for first and last glyph (endGlyph === true) screen position is not interpolated (as it is not correct) - instead segment is truncated to exact end glyphs positions and elevation is sampled there. - pitchWithMap: placeFirstAndLastGlyph don't need to sample elevation: placement is done in scaled/rotated tile coordinates (label plane for pitch with map) and getElevation is unecessary overhead. returnElevartion along path was interpolating elevation of line vertices. Instead, it is important to interpolate tile coordinates and sample on exact position. returnElevationAlongPath approach is changed to returnPathInTileCoords to return interpolated tile coordinates. collision code is then sampling elevation when placing collision circles. At the end, pitchwithmap implementation is explicitelly made the same as for 2D mode, using getElevation === null and sampling responsibility is moved out to collision circles calculation. Fixes: internal-3d-101
Configuration menu - View commit details
-
Copy full SHA for f43b348 - Browse repository at this point
Copy the full SHA f43b348View commit details -
Revise atmosphere color contribution, better artistic controls (inter…
…nal-58) Previously, color contribution was also affecting the extinction factor. This extinction factor highly influences how the participating media equation converges when accumulating lighting. It should only be modified by the 'intensity' factor for each of the rayleigh and mie component, which is stored in the alpha channel of the color inputs. Instead, this commit applies the color contribution + alpha intensity factor at the end of the atmosphere color accumulation, which gives a lot more variance of the sky color through artistic controls.
Configuration menu - View commit details
-
Copy full SHA for 2f9d248 - Browse repository at this point
Copy the full SHA 2f9d248View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc4ab8a - Browse repository at this point
Copy the full SHA cc4ab8aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c245b2a - Browse repository at this point
Copy the full SHA c245b2aView commit details -
Add geojson_update debug page with continuosly updating GeoJSON sourc…
…e and Terrain (internal-69)
Configuration menu - View commit details
-
Copy full SHA for 0954379 - Browse repository at this point
Copy the full SHA 0954379View commit details -
Configuration menu - View commit details
-
Copy full SHA for fabd82c - Browse repository at this point
Copy the full SHA fabd82cView commit details -
fix getPerformanceMetrics() for non-chrome browsers (internal-88)
We were relying on performance.measure(...) returning the entry it creates. This was non-standard behavior.
Configuration menu - View commit details
-
Copy full SHA for 03c1d23 - Browse repository at this point
Copy the full SHA 03c1d23View commit details -
Update terrain as soon as style changes (internal-90)
Terrain update is deferred to render (after zoom related recalculation). When style is changed or source removed, source cache used by terrain could be used before render (though camera API using elevation data) and it is important to update terrain immediatelly after changing sources. Fixes: internal-84
Configuration menu - View commit details
-
Copy full SHA for 6eb3cf2 - Browse repository at this point
Copy the full SHA 6eb3cf2View commit details -
Terrain: invalidate render cache on setPaintProperty (internal-100)
Since render cache considers only visible tiles, it is enough to invalidate render cache for the next frame only, after the changed event. internal-93
Configuration menu - View commit details
-
Copy full SHA for 6f0bc66 - Browse repository at this point
Copy the full SHA 6f0bc66View commit details
There are no files selected for viewing