High Quality Splatting demo is now online at potree.org/demo/lion/lion_takanawa.html
Loading may take a while. The model is 12mb.
This demo needs the OES_texture_float extension. Unfortunately, it seems like Chrome does not support this extension well which can result in very bad performance in Chrome.
Sourcecode is here: lion_demo.zip
The program has to be run from a webserver!
The embedded video shows a ply file from the Stanford Repository beeing loaded by dragging and dropping the file into the browser window.
The ply file contains 35947 points in ascii format. The loading and parsing happened in the main thread at first but this made the browser completely unresponsive. I decided to move the parsing part into a WebWorker which continuously informs the main thread about the progress.
I was able to load point clouds with up to 5m points(~135Mb binary ply) in Firefox. Chrome managed to load up to ~3.8 points but loading 5m always failed. At the moment, the whole file is loaded at once in one single buffer. Maybe it works if I split loading into smaller parts.
Visibility calculations are quite heavy and since this cloud has a huge amount of nodes, I had to modify the process a little. For this particular cloud, visibility will be updated after every 5th frame.
I’m thinking about moving this task to a seperate WebWorker thread. Visibility does not have to be up to date each frame. Instead, a WebWorker could check which nodes are visible and inform the main thread about changes once or twice per second.
You also have to add an entry for each cloud to potree/pointclouds.js
I’ve experienced some problems with the converter from time to time, especially with very large pointclouds(>200m). I’ll look into them the next few weeks.
This demo shows the result of the new converter:
(You can switch to fullscreen mode by double clicking anywhere)
The quality does not quite match that of the old converter, yet.
The compensate for that, I’ve increased the LOD modifier, which means more points will be displayed.
Also, nodes with invisible/unloaded children will be rendered with increased point size.
Increasing the point size for nodes with invisible children seems to improve quality quite well. I’d like to replace this quick hack I’ve added with a more thought out solution.
Add an interpolation filter. Potree had something called “Gaussian Splats” a while back and I want to reimplement them. This filter gets rid of artifacts caused by overlapping points that are close to each other. The result are amazing.
Converter improvements like support for point formats other than position&color.