Euclideon Interviews and new video (Holoverse, Unlimited Detail tech, Games...)
On 26.9.2016 at 1:47 PM, EUD said:I asked the dev again, hope he answers how the potree works.
I am the dev of potree.
Edit:
Ok, I found your question in a youtube comment in this video (not from me) that I missed.
Streaming in potree simply means to send chunks of points with different levels of detail over the web to the client, in order to gradually increase the details. Each chunk usually contains around 1,000 to 10,000 points. UD certainly does the same thing only with voxels, and that is why you see the progressively increasing details, especially with slow connections.
Streaming from a remote source to local RAM always sends chunks of points, voxels or pixels. Sending just a single element with each packet would be way too inefficient since each packet that is being sent over the web has a significant overhead associated to it. Same if you stream data from a local disk to RAM. It's not feasible to load single points from disk. Many of the loaded voxels or points in a chunk may be invisible right now but that's okay because they are likely to become visible when moving or looking around so it's good to have them in RAM anyway.
Edit2:
Quoteand the streaming of chunks is not even done the way other renderers do it and is only present IF THERE IS LATENCY FROM INTERNET OR SOURCE OR THERE IS TOO BIG LOAD ON SOURCE.
Again speculating but the reason this streaming process is fast in UD videos is because they're compressing the data and because they won't be using some slow remote servers for their videos. For most models in potree you need to load around 3 million points for any given point of view to get a pretty good level of detail. Since there is no compression right now, each point requires 16 byte so we have to load 50megabyte in total. If you're streaming directly from disk and not over the web, you'll load the data in less then a second. Once you got the initial data loaded, you'll have to load less data while moving around and a little more data when rotating. That's because when you move forward a little, you've already loaded most of the data and you only need to load a little more for your new view. You can even do prediction and fetch the data for what you believe will be visible in a second or two, based on the direction of movement.
Now 50mb for 3 million points is only because there is no compression in potree. It's relatively trivial to get this down to 25mb and euclideon claims to use realy good compression so maybe they got it down to something in the range of 10mb. Besides, sparse voxel octrees compress better than point clouds at lower levels of detail (SVO: low precision at low resolution, point cloud: full precision even at low resolution), so it may or may not be slightly less than that. 10mb for the initial view is very quick to load and after that it's only some additional data as you move around.
It is, however, not instant. Rotating by 180 degrees is close to a new view and while doing so you will be able to notice the streaming progress. Same if you move fast. Even UD won't be able to stream in the data fast enough during quick movements, especially not if they want to achieve a level of detail close to current AAA games.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now