-
Notifications
You must be signed in to change notification settings - Fork 26
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
update loader to support google maps 3d tiles #39
Conversation
add new parameters: lat, long, height, googleAPiKey, geoTransform
We had an issue where way too many tiles are loaded in the distance than are needed for this application. There are not visible as they are mostly occluded by buildings in the scene given the camera placement. For users, the issue can be both the draw area is too big and/or the amount of bandwidth transfer for these tiles is excessive for the use case. Instead of a radius-based drawing limit, if we just focus on MB of data transferred the
Therefore setting distanceScale: 0.01 (for our use case) will fix the throughput issue in the short-term and later we can research drawing only in a specified area. |
not implemented, future feature to prevent pausing in inspector / editor
Thank you for this work. Looks great!
I think the best bet here would be to implement occlusion culling as in the threedtiles project (service, usage). This requires some modification to |
lat: 37.77522354250163; | ||
long: -122.41931773049723; | ||
height: -16.5; | ||
googleApiKey: INSERTYOURKEYHERE; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The example demo states that this and also lat/long/height are available parameters but there is no option to insert them via the query string.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but there is no option to insert them via the query string.
Correct, the expected behavior in this example is only to place tiles with a long / lat / height specified in the index.html centered at scene origin 0 0 0. Supporting a dynamic, user-specified querystring with lat / long / height was not intended to be part of this example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it.
It's maybe OK since the example is anyway not exposed in the demo showcase, but if it works well we should probably consider adding it in the future and also make the example usable without editing the code. Maybe after we have occlusion culling and teleport controls?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes agreed. I've added these tickets to track:
index.js
Outdated
this.el.setObject3D('tileset', model); | ||
|
||
this.originalCamera = this.camera; | ||
this.el.sceneEl.renderer.preserveDrawingBuffer = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll check with Alex, but I'm pretty sure this is not needed and was only included to improve generation of screenshots for our use case. We can remove this and add elsewhere in our application instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok this has been removed. Just to make sure I tested with and without and didn't notice any effect.
Thank you! |
Work in progress, remaining items before merging:
Pre-merge list:
distanceScale
to 0.01, see comment below)preserveDrawingBuffer
Not resolving for this PR (future):