Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build system #4

Closed
kkaefer opened this issue Apr 19, 2013 · 1 comment
Closed

Build system #4

kkaefer opened this issue Apr 19, 2013 · 1 comment

Comments

@kkaefer
Copy link
Contributor

kkaefer commented Apr 19, 2013

@springmeyer any reason we shouldn't use gyp? (it's not a node js plugin)

@springmeyer
Copy link
Contributor

gyp seems just fine, node plugin or not.

@kkaefer kkaefer closed this as completed Sep 9, 2013
bensleveritt pushed a commit to bensleveritt/mapbox-gl-js that referenced this issue Oct 24, 2016
featuresIn, mass edits, and restructure a bunch of things - closes mapbox#4 mapbox#69
lucaswoj pushed a commit that referenced this issue Jan 11, 2017
jessisena pushed a commit to jessisena/mapbox-gl-js that referenced this issue Sep 26, 2017
Adds an animation to the fill extrusion
jessisena pushed a commit to jessisena/mapbox-gl-js that referenced this issue Sep 26, 2017
Update fork to last version
astojilj added a commit that referenced this issue May 7, 2020
* 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: mapbox/mapbox-gl-js-internal#4 (comment)

* 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/mapbox-gl-js-internal#4 (comment). Thanks @karimnaaji.

* Review comments processed

Comments mapbox/mapbox-gl-js-internal#4 (review) 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants