Hacker News new | past | comments | ask | show | jobs | submit login

The dots in 3d are certainly the best-looking solution of the ones they mention, but most likely also significantly slower than a texture-based approach. It makes their website extremely janky for me when scrolling, on an upper-midrange laptop.



> slower than a texture-based approach

Try to rotate the globe with a mouse, and you'll see an effect very hard to achieve with a texture.

> makes their website extremely janky for me when scrolling, on an upper-midrange laptop.

Probably a software issue with your laptop, not with the web site. Works fine on my low-range laptop (i3-6157u, 16GB RAM, Windows 10, MS Edge).


This mostly depends on the graphics chip (and drivers, obviously). What I'm saying is that it shouldn't be necessary to have powerful graphics processing just in order to see a marketing website, but YMMV.


> This mostly depends on the graphics chip

That laptop only has Intel GPU, albeit a good one (Iris 550, 800 GFlops).

> it shouldn't be necessary to have powerful graphics processing just in order to see a marketing website

I generally agree. If I would be making that web site, I would have tested on the slowest Intel GPU I have in this house, I think I still have a Windows tablet with Atom Z3735G somewhere in the attic. However, I’m 100% certain it’s technically possible to implement that particular thing in a way so it works even there.

One obvious improvement, merge all dots into a single immutable mesh, for mouse dragging effect displace them in vertex shader. Each dot needs 4 vertices, each vertex with XYZ relative to center of sphere, UV to apply round sprite texture, and one scalar random number for mouse drag displacements. They render 20k dots, rectangular sprites would need 80k vertices, with 6 floats per vertex that’s about 2MB of VRAM, and this way all dots will render in a single draw call. Possible to optimize further by passing less data per vertex (e.g. positions only need 2 floats for lat/lon, and texture coordinates only need 2 bits of data), and more so if WebGL supports geometry shaders in which case we only need to pass single vertex per dot without texture coordinates, and expand them into quads on GPU.

However, such low-level GPU shenanigans require skills most web developers probably don’t have.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: