Google Earth Ported to Browsers with WebAssembly
infoq.com
infoq.com
I doubt the web-based versions (whether JS/WebAssembly/Nacl, etc) will ever have the feature-set of the standalone Google Earth (nor is there much monetary reason for Google to do so).
In this list, I see more than 40 ARM-based models. This is very, very much compared to the list of commercially available M$ Surface. In comparison with the number of Android devices it's a drop in the sea.
https://softwareengineeringdaily.com/2019/07/02/google-earth...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... says that SharedArrayBuffer was readded in chrome (behind a flag?) in v67, not 74. Is that the same? Is SharedArrayBuffer equivalent to the support for multi-threading or were other parts disabled due to spectre – or not yet implemented in 2018?
This whole wasm/threading/spectre mitigation situation is difficult to follow
What is the state of this in July 2019. Do you know about a benchmark/good example project that gives a good overview of what's currently possible?
context: I want to build a tile based view (tiles in x/y dimensions + zoom levels). The content of the tiles is loaded from server (shapes mostly) and rendered into tile images client side. I also want the same tiles prerendered as identical images on the server.
For this I have a feeling that something like skia is the way to go. Skia can be used via wasm bindings. How I would fetch the shapes and render the tiles (or fetch the prerendered ones) transparently and then where to render the tiles into, that is what I am trying to figure out. It feels like multithreading could be very useful here. Right now only chrome appears to support OffscreenCanvas (which can be accessed from webworkers), hence the idea of using skia directly and possibly going a level higher to write whatever kind of multithreaded render logic in rust and run it with wasm and a single "canvas output". Whether skia is the right choice here or not is also something I have yet to figure out
The ultimate goal is quick startup (prerendered tiles) while simultaneously high performance when updating the entire view (=multiple tiles in parallel). This is mostly a learning project for me
[0] https://developers.google.com/web/updates/2018/10/wasm-threa...
[1] https://chromium-review.googlesource.com/c/chromium/src/+/14...
The original Google Earth Plugin worked well on even Core Duo laptops with very modest GPUs. I used it to do a technical Web front-end project that pushed the limits of the Plugin. At the time, there was no other viable way to do what was needed (with the requirement that it run in particular Web browsers, as part of a larger Web system).
In my project, I did have to do a cute little multi-step camera movement at the start of an interactive animation, to keep the Plugin from culling one of the objects I'd added to the scene. I still wonder how many people using that thought the camera movement was just zooming around for gee-whiz effect, or for spatial context, rather out of necessity that the core functionality work at all.
I'm disappointed by that, but I guess the desktop app also never was smooth to begin with.
Is there some reason why WebGL applications never seem to make proper use of my VRAM? Most of the data in these views are persistent, but they keep loading them over and over again even though I have 16GiB of VRAM. I'm guessing WebGL doesn't expose queries for that, so the applications play it safe?