3D Tiles: the next big step for Cesium and 3D geospatial

11.390 visualizações
Pular para a primeira mensagem não lida

Patrick Cozzi

não lida,
10 de ago. de 2015, 12:52:2310/08/2015
para cesiu...@googlegroups.com
Folks,

We're happy to announce the next big initiative from the Cesium team: 3D Tiles.

3D Tiles are an open specification for streaming massive heterogeneous 3D geospatial datasets.  They are the foundation for the streaming 3D buildings demos we developed, and will be the foundation for streaming point clouds, trees, vector data, and other massive geospatial datasets.  We already have significant progress towards the spec and Cesium's implementation, and expect things to stabilize in spring 2016.

What can you do to help?  We appreciate you showing your support by spreading the word on twitter and staring the spec's repo.  If you are feeling adventurous, start looking at Cesium's 3d-tiles branch.  Soon, we'll have publicly available sample data to use from our friends at CyberCity 3D.

For more info, see Introducing 3D Tiles on the Cesium blog.

I believe 3D Tiles will be at least as impactful to the geospatial field as Cesium itself.  Looking forward to your feedback!

Patrick
--

Vincent Picavet (ml)

não lida,
11 de ago. de 2015, 07:48:0211/08/2015
para cesiu...@googlegroups.com
Hi Patrick, all,


On 10/08/2015 18:52, Patrick Cozzi wrote:

> We're happy to announce the next big initiative from the Cesium
> team: 3D Tiles.

First of all, thanks for publishing this most interesting work !

> 3D Tiles are an open specification for streaming massive
> heterogeneous 3D geospatial datasets. They are the foundation for
> the streaming 3D buildings demos we developed, and will be the
> foundation for streaming point clouds, trees, vector data, and other
> massive geospatial datasets. We already have significant progress
> towards the spec and Cesium's implementation, and expect things to
> stabilize in spring 2016.

If I understand well the process, you published a first state of the
specification, with some parts almost finished, others as prototype, and
some which are only drafts and ideas.
From now on, the design and redaction of the specification will take
place on GitHub through Pull request, from AGI and whoever wants to
contribute. Is it right ?

Do you have intentions of porting this work towards the OGC ? Are some
members of OGC SWGs participating to, or at least aware of the 3D Tiles
specs ? The 3D Portrayal SWG could probably be interested.

Another project which may be interesting to associate is the
PointDown initiative, working (outside of OGC) on PointCloud formats and
protocols, especially in a web context.

Other question, do you plan to release server-side tools for
implementing the specification as opensource at some point ? Or will AGI
keep the same position as for terrain data ( Open Spec, freemium
streaming service) ?

Looking forward to see this whole plan growing !

Vincent


>
> What can you do to help? We appreciate you showing your support by
> spreading the word on twitter
> <https://twitter.com/CesiumJS/status/630783320847183873> and staring
> the spec's repo <https://github.com/AnalyticalGraphicsInc/3d-tiles>.
> If you are feeling adventurous, start looking at Cesium's 3d-tiles
> branch. Soon, we'll have publicly available sample data to use from
> our friends at CyberCity 3D.
>
> For more info, see Introducing 3D Tiles
> <http://cesiumjs.org/2015/08/10/Introducing-3D-Tiles/> on the Cesium
> blog.
>
> I believe 3D Tiles will be at least as impactful to the geospatial
> field as Cesium itself. Looking forward to your feedback!
>
> Patrick -- twitter.com/pjcozzi <http://twitter.com/pjcozzi>
>
> -- You received this message because you are subscribed to the
> Google Groups "cesium-dev" group. To unsubscribe from this group and
> stop receiving emails from it, send an email to
> cesium-dev+...@googlegroups.com
> <mailto:cesium-dev+...@googlegroups.com>. For more options,
> visit https://groups.google.com/d/optout.

Jackie Ng

não lida,
12 de ago. de 2015, 02:08:5712/08/2015
para cesium-dev
I hope that however the 3D tiles spec turns out, that there is a good interoperability story around being able to leverage existing 2D spatial datasets that can be extruded into the third dimension via some elevation attribute.

- Jackie

GHT

não lida,
12 de ago. de 2015, 04:15:4612/08/2015
para cesium-dev
Potree is a free open-source WebGL based point cloud renderer for large point clouds. Similar to map software like Google Maps or OpenStreeMap, only data inside the visible area and up to a certain level of detail are loaded.

General infos, downloads, showcase, etc. at potree.org
Github: https://github.com/potree/potree

在 2015年8月11日星期二 UTC+8上午12:52:23,Patrick Cozzi写道:

Patrick Cozzi

não lida,
12 de ago. de 2015, 09:48:0812/08/2015
para cesium-dev
Hi Vincent,

Thanks for the interest!

> From now on, the design and redaction of the specification will take place on GitHub through Pull request, from AGI and whoever wants to contribute. Is it right?

Yes.  For contributions outside of AGI's Cesium team, we'll need to get a CLA in place, but I don't think it will be a problem (#12).

> Do you have intentions of porting this work towards the OGC ? Are some members of OGC SWGs participating to, or at least aware of the 3D Tiles specs ? The 3D Portrayal SWG could probably be interested. 

With 3D Tiles, our initial focus is to get heterogeneous streaming 3D content into Cesium.  I have not personally talked to OGC, but I agree this could complement 3D Portrayal SWG since 3D Tiles define the streaming format itself.

> Another project which may be interesting to associate is the PointDown initiative, working (outside of OGC) on PointCloud formats and protocols, especially in a web context. 

I have not talked to the PointDown crew specifically about 3D Tiles, but I have talked to them when they first started PointDown.  Cesium's requirements, e.g., for high-precision vertex positions, temporal visualization, etc., will likely make the 3D Tiles' point cloud payload more involved than a typical point cloud app would want, but I am happy to dive deeper here.

> do you plan to release server-side tools for implementing the specification as opensource at some point ? Or will AGI keep the same position as for terrain data ( Open Spec, freemium streaming service) ? 

Yes, I expect AGI to have a similar position for 3D Tiles as terrain.  I also expect that parts of the server-side tools will be open-source; for example, AGI is a major contributor to the open-source COLLADA2GLTF project.

Patrick

Patrick Cozzi

não lida,
12 de ago. de 2015, 09:56:5412/08/2015
para cesium-dev
Hi Jackie,

> I hope that however the 3D tiles spec turns out, that there is a good interoperability story around being able to leverage existing 2D spatial datasets that can be extruded into the third dimension via some elevation attribute.

I agree, this will really help demonstrate the value of 3D.  Just like KML and the Cesium API, 3D Tiles will support extrusions and, of course, full 3D content.

Patrick

Patrick Cozzi

não lida,
12 de ago. de 2015, 09:58:2412/08/2015
para cesium-dev
GHT - for potree, see #19.

Patrick

Chris Cooper

não lida,
12 de ago. de 2015, 23:50:4512/08/2015
para cesiu...@googlegroups.com
Nice work so far on 3D Tiles team Cesium!  Reminds me of RenderMan procedural primitives.  I'm looking forward to having a play...

Chris

On 12 August 2015 at 23:58, Patrick Cozzi <pjc...@gmail.com> wrote:
GHT - for potree, see #19.

Patrick

--
You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.

Mike Macaulay

não lida,
18 de ago. de 2015, 17:32:5918/08/2015
para cesium-dev
Wow, looks really awesome!  From what I've read, this might be an excellent way of visualizing 3D weather over time.  Would you agree?  

Patrick Cozzi

não lida,
18 de ago. de 2015, 18:28:3918/08/2015
para cesiu...@googlegroups.com
@Chris - thanks for sharing.  That link doesn't work for me, but I took a quick read through this: http://renderman.pixar.com/view/appnote23.  Are there any related papers you recommend?

@Mike - thanks for the interest.  What source data do you have in mind for weather?  We have to do some research on making the temporal aspect of 3D Tiles really fast.  Right now I am thinking something like uniform subdivision across time with each tile having a window of the time-tagged exploiting temporal coherence for compression (as opposed to a separate tree per time stamp).  A lot of the techniques for streaming video can be applied.  Details are still TBA...

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Mike Macaulay

não lida,
19 de ago. de 2015, 09:40:1719/08/2015
para cesiu...@googlegroups.com
Patrick, I doubt I can answer knowledgeably because I know only a little, playing with GRIB data in a past job.  It seems to be one of those things that seems simple until you dive a little deeper, but I'll give a shot at it.  So Grib data gives you a gridded data set with timesteps, often these grids have an altitude component as well.  Each dataset ends up with a numeric value at its point so you end up processing many grids to get a holistic view, but the format is standard.  Here's where I lose context, but I could imagine processing a grib dataset into 3D tiles, perhaps making a single 3D tile for a cube in 3D space over time (4D tile?) as you say.  The models for these spaces would be super simple, maybe just a cube with a color depending on the value of the GRIB data at that field, and you'd get a good idea of the weather by looking at the sum of these cubes in your viewing area...   If any of this is possible, it could become another killer app for Cesium.  Imagine flying around the thunderstorm cloud that's just passed overhead in 4D!   

Matthew Amato

não lida,
19 de ago. de 2015, 10:34:4119/08/2015
para cesiu...@googlegroups.com
While I'm no expert either, I think GRIB data is definitely an ideal source of 3D Tiles for visualizing weather and there's a lot of free datasets out there for us to experiment with.  Of course weather data is probably low on the totem pole compared to vector data and point clouds, but long term I could definitely see it happening.

You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.

Patrick Cozzi

não lida,
19 de ago. de 2015, 11:28:2319/08/2015
para cesiu...@googlegroups.com
Here's a few videos of 3D Tiles.  The last three show debug views that help explain how 3D Tiles are used for streaming:
These videos are part of the 3D Tiles talk I gave in the Cesium BOF at SIGGRAPH.  We'll have the slides posted soon.

@Chris, Mike, Matt - thanks for the info!

Patrick

Patrick Cozzi

não lida,
19 de ago. de 2015, 11:52:3219/08/2015
para cesium-dev
Slides for the 3D Tiles talk at the SIGGRAPH Cesium BOF are now up: http://cesiumjs.org/presentations/SIGGRAPH2015/Cesium3DTiles.pdf

Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Poul Sørensen

não lida,
26 de ago. de 2015, 03:56:4226/08/2015
para cesium-dev
Hi Patrick.

Do you have any ETA on when the core spec and loading of 3dtiles are into a master/release?

The solution I am working on atm involves tracks from cars and at this point I am going with a solution of converting to mapbox vector tiles which will be replacing data as we zoom in. I know that the vector tiles part of 3d tiles is not in near release time, but if the core spec loading is included I dont see anything stopping me from making my own small vector tiles with adding more details for the paths as the user zooms in specific for the solution I make now. (the goal here is to learn mostly, as of the quickest solution right now is just to put it all in a geojson format). 

So would be fun to try make my own little 3d tiles stuff for some gps tracks if the loading stuff is going into the master branch in near future.

To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
26 de ago. de 2015, 07:47:5126/08/2015
para cesiu...@googlegroups.com

Poul Sørensen

não lida,
26 de ago. de 2015, 08:04:4126/08/2015
para cesium-dev
I did, so the plan is to keep it in a different branch until spring 2016? or will some parts be merged into master as we go?

I will see if I sometime near future can get the build system setup such I can try things in the other branch otherwise. This was a rather painfull step back when using ol3 due to the hole core team using unix, so there was not much help/motivation to get the build running on windows.

Patrick Cozzi

não lida,
26 de ago. de 2015, 08:20:1426/08/2015
para cesiu...@googlegroups.com
Hi Poul,

> the plan is to keep it in a different branch until spring 2016?

Yes, we need to finalize the spec before bringing the implementation into master.

> will some parts be merged into master as we go?

Also yes, but these will be low-level implementation details like improvements to glTF.

Patrick

Patrick Cozzi

não lida,
2 de set. de 2015, 10:24:2202/09/2015
para cesium-dev
Folks - here's a quick progress update on 3D Tiles.  We are
  • Putting the finishing touches on glTF to move it from 0.8 to draft 1.0 with a complete spec.  This is core to 3D Tiles since a few of the tile formats (e.g., batched models and instanced models) are built on glTF.
  • Adding the Cesium features needed to support vector/geometry tiles (think KML use cases more than just polygons, polylines, and points).  For example, Cesium 1.13 included polygon ground clamping.
  • Bringing Sean up to speed on the Cesium renderer so he can add WebGL instancing to the renderer and then instancing to 3D Tiles for trees, rocks, etc.
Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Biao Xiong

não lida,
8 de set. de 2015, 16:46:1008/09/2015
para cesium-dev
Perfect! I cannot wait to try stream by myself. But how can i convert a large data with lots of kml files to a 3D tile file? 

Patrick Cozzi

não lida,
9 de set. de 2015, 07:51:5309/09/2015
para cesiu...@googlegroups.com
Biao - it is going to be a bit before converters for this are in place.  Check out the Q&A section of the spec.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
30 de set. de 2015, 14:50:2430/09/2015
para cesium-dev
Folks - here's another quick 3D Tiles update:
  • We continue to make good progress on glTF 1.0  Check out the spec-1.0 branch.
  • We started defining the Instanced 3D Model tile format (e.g., for trees) and the Composite tile format (e.g., for combining buildings and trees in the same tile).  See #23.
Patrick

To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
8 de nov. de 2015, 14:51:4008/11/2015
para cesium-dev
Hi all,

Here's an update on 3D Tiles progress:
  • The Composite tile format is done.  This allows storing heterogeneous tiles in one tile.
  • The Instanced 3D Model format is done; however, there will be some changes to it before 1.0 to store each instance in a more optimized and flexible way.  This tile format is for lots of "instances" of the small model, e.g., drawing the same tree at many different locations each with a different height.
The Cesium implementation of these is almost through review, see #3158.

The next step is to get the 3d-tiles branch in better shape with tests and sample data since we are getting a lot of pull requests into it (thanks everyone!), we need to make it more production ready.

Patrick

Patrick Cozzi

não lida,
8 de nov. de 2015, 17:13:4708/11/2015
para cesium-dev
If you love details, here is the cleanup we're going to do to make the 3d-tiles branch more production ready: #3177.

Patrick

Александр Благовестнов

não lida,
11 de nov. de 2015, 05:29:3611/11/2015
para cesium-dev
Hi Patrick, all.
 
Can you give some example of 3d-tile usage?  I use very simple case with CanaryWharf tiles.json and its b3dm files, but tiles didn't appear.
I use HelloWorld example from Cesium - upgraded with 3d-tiles

  <script>
    var viewer = new Cesium.Viewer('cesiumContainer');
    var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url : 'tileset',
show: true
}));
  </script>

My structure of tileset is same as CanaryWharf tileset

b3dm files were loaded (i can see it in network tab of console), but buildings doesn't appeared. 

Can anyone give advice? 
Thanks



воскресенье, 8 ноября 2015 г., 22:51:40 UTC+3 пользователь Patrick Cozzi написал:
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
11 de nov. de 2015, 10:50:3111/11/2015
para cesiu...@googlegroups.com
Hi,

That code looks great.  Are you sure the tiles.json has the correct bounding boxes and geometric error?

As part of #3177, we're going to add some trivial test data (and tests), which you will be able to compare against.

Patrick


Piero Toffanin

não lida,
13 de nov. de 2015, 11:46:1613/11/2015
para cesium-dev
Patrick,

This is a very exciting feature!

Here it says that "AGI is also developing tools for creating 3D Tiles": https://github.com/AnalyticalGraphicsInc/3d-tiles#Can-I-use-3D-Tiles-today

Are there any tools available today to help creating 3D Tiles or are they still a work in progress?

Thanks!

Patrick Cozzi

não lida,
13 de nov. de 2015, 17:55:1113/11/2015
para cesiu...@googlegroups.com
AGI's tools for 3D Tiles are still a work-in-progress as is the spec itself and the Cesium implementation, but things are moving along nicely.  I believe a few other folks - at least - are also building tools for 3D Tiles.  Search the forum or Google for more info.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Gergely Padányi-Gulyás

não lida,
18 de nov. de 2015, 04:46:0618/11/2015
para cesium-dev
Dear 3d-tiles team!

I wonder whether it will be possible to store 3d models in a database (Postgres) and maybe stream directly from there, or else generate b3dm files from there?
In my opinion the best would be that the geometries are stored in a 3d spatial database, therefore I could perform spatial queries on a database level (e.g. "where are the buildings that are higher than 10 meters?").

Postgres from 9.4 supports JSON and JSONB formats quite nicely, the tiles.json could surely be stored in a table. But what about the data itself?

I know it is a different approach that 3d-tiles uses (although I'm quite new to it and don't think I understand it completely), just a question.

Best,
          Gergely





Patrick Cozzi

não lida,
18 de nov. de 2015, 11:12:1118/11/2015
para cesiu...@googlegroups.com
Hi Gergely,

I imagine that is possible.  tile.json is JSON, of course, and the tiles are just binary blobs.  You could store or generate these however you see fit.

There will also be some declarative client-side filtering; for example, try the "color by height" option in the NYC demo:


You will also be able to do things like "hide all the buildings built after some year", etc., depending on the metadata available in the tile or through a REST service.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
24 de nov. de 2015, 14:22:0424/11/2015
para cesium-dev
Hi folks,

Here's a quick update on 3D Tiles:
  • There's now a detailed roadmap for the Cesium implementation being worked in the 3d-tiles branch.
  • Sean has made a lot of progress on the cleanup and tests, which includes some trivial datasets for testing.  These changes also make the code in the 3d-tiles branch much closer to production so it will be easier for us to review and merge pull requests (thanks for all the support!).
Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Kevin Ring

não lida,
30 de nov. de 2015, 23:40:1730/11/2015
para cesium-dev
Quick question:
I noticed that the spec says, "the bounding volume for child tiles are completely inside the parent's bounding volume."  Why?  Isn't it sufficient for the child content to be inside the parent's bounding volume?

Patrick Cozzi

não lida,
1 de dez. de 2015, 07:47:4801/12/2015
para cesiu...@googlegroups.com
This is standard spatial coherence and the content bounding volume is optional (defaulting to the tile's bounding volume) since its use case is additive refinement.

Is there a use case we should consider where a child tile's bounding volume should not need to be completely instead the parent's bounding volume?

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Kevin Ring

não lida,
1 de dez. de 2015, 17:23:1301/12/2015
para cesiu...@googlegroups.com

Well... yeah!  Haven't we long observed that tightly-fitting bounding volumes of child tiles don't necessarily fit inside tightly-fitting bounding volumes of parent tiles?

The simple example is using bounding spheres for a quadtree with a single tile at the root (ignoring the fact that bounding spheres are probably not a great choice).  The root tile's bounding sphere wraps the whole Earth. The bounding spheres of the children are much smaller, but they "stick up" outside the parent sphere.

I guess this probably can't happen with the bounding volumes currently used in 3D Tiles.  Although, it's safe to assume you're turning those bbox-with-height-range volumes into OBBs on the client, and it might happen with the OBBs (I'm not sure).

In any case, if the intention is to support more bounding volumes in 3D Tiles, I guess I'd turn your question around: is there any use case where child BVs extending beyond parent BVs is a problem, as long as descendant content all fits inside the parent BV?  Certainly hierarchical culling still works fine.

To be clear, I'm not talking about content bboxes (which I understand are optional).  I'm talking about the content itself.  The client will not try to verify this or anything, it's just the rule that makes culling work right.

You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.

Patrick Cozzi

não lida,
1 de dez. de 2015, 17:40:0901/12/2015
para cesiu...@googlegroups.com
Ah, yes, you are right!  I submitted #43 to tweak the spec wording.  I think we are fine with saying that the child's content is within the parent's BV, and that a tile's BV encloses its content, which does not imply that a parent's BV fully encloses the child's BV.

I don't think the current more restricting language enables any additional client-side optimizations.

Patrick

Stephen Northcott

não lida,
18 de dez. de 2015, 06:36:5218/12/2015
para cesium-dev
Hi Guys,

Loving the progress with the tiles branch, and Cesium generally. =)

We have been working with the 3d tile branch from circa 1.12, and models compatible with that branch.

The time has come to get up to date and I wondered if anyone can clarify what has changed with regards to models..

Is it a case of "using the source, Luke" to understand these changes?

Is it b3dm files that have changed, or just tiles.json? Or all of the things! =)

I noticed elsewhere that some people were seeing the models load, but they were not being rendered now, and the issue was perhaps related to the "properties" section of tiles.json..
Is it that simple?

Thanks for any pointers..

Stephen

Patrick Cozzi

não lida,
18 de dez. de 2015, 07:59:4018/12/2015
para cesiu...@googlegroups.com
Hi Stephen,

Thanks for the kind words!  What kind of app are you building with 3D Tiles?

Since circa 1.12, everything has changed.
Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Stephen Northcott

não lida,
18 de dez. de 2015, 09:42:2318/12/2015
para cesium-dev
Hi Patrick,

We're working on the Cityzenith Smart Cities application.

Understood on all the changes.

We have a bunch of model sets. It's a fairly big job each time we do it. 
Regenerating or patching tiles.json files is potentially less stressful than rebuilding the model sets.

So I guess I am trying to pick a good time where changes to the spec would be expected to be more or less backwards compatible. 
I am sure you've been asked this before, I know you can make no guarantees, and I am aware of the 2016 projected roadmap. =)

Should we stick with 1.12 for a while longer?

Kind regards,
Stephen
 

Patrick Cozzi

não lida,
18 de dez. de 2015, 09:57:4118/12/2015
para cesiu...@googlegroups.com
glTF is stable.  b3dm is pretty stable, but I can't promise that it won't change, especially the batch table.  Again, no promises, but the future tiles.json changes may be backwards compatible.

If it were me, I would just constantly stay up-to-date with the spec and the branch.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Gergely Padányi-Gulyás

não lida,
21 de dez. de 2015, 07:29:0321/12/2015
para cesium-dev
Dear Partick!

I recently ran into 3DPS (3D Portrayal Service), which is an ongoing OGC specification regarding 3D ("map server for 3D"). I haven't heard of it before, and if I get it right it is still in progress, but in the future an OGC-specification for 3D data streaming sounds really nice. Is 3d-tiles or AGI itself is part of this workgroup?
I think 3d-tiles is the most advanced solution for visualizing huge amounts of 3d data on the web, but when an OGC standard comes out, I have fears that maybe 3d-tiles maybe will lose its potential and will eventually fade.

Since I would like to dive into something that is maintainable even years after now, this is a big concern for me. Could you please give me some information about 3d-tiles in that (3DPS) matter?

Best,
          Gergely

Gergely Padányi-Gulyás

não lida,
21 de dez. de 2015, 07:29:4221/12/2015
para cesium-dev

Patrick Cozzi

não lida,
21 de dez. de 2015, 09:30:5621/12/2015
para cesiu...@googlegroups.com
Hi Gergely,

3DPS is for data discovery.  3D Tiles describe the way the data is streamed.  3DPS and 3D Tiles are not competitive.  I expect they would be used together, e.g., use 3DPS to see what scenes are available, and then stream the content using 3D Tiles, instead of KML, COLLADA, etc.

As for 3D Tiles and the OGC, we are in frequent discussions and presentations with the OGC about 3D Tiles.  There's a lot of interest, but nothing to announce right now.

Patrick

Gergely Padányi-Gulyás

não lida,
21 de dez. de 2015, 09:37:0721/12/2015
para cesium-dev
Hi Patrick,

Thank you for the quick answer. I'm really happy that the two technologies are not competitive. This also means that I surely don't fully understand 3D Tiles and 3DPS.

Best,
       Gergely

Patrick Cozzi

não lida,
22 de dez. de 2015, 14:11:3522/12/2015
para cesium-dev
Hi all,

Now that #3367 landed in the 3d-tiles branch thanks to Sean Lilley, 3D Tiles have pretty solid unit tests, which makes it much easier for us to accept contributions to Cesium's 3D Tiles implementation.

So if you have been waiting to open a pull request or have an outstanding pull request, now is a good time to move forward.

If you are new to 3D Tiles and interested in getting involved, the roadmap is #3241.

Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

Gergely Padányi-Gulyás

não lida,
4 de jan. de 2016, 08:06:5804/01/2016
para cesium-dev
Hi Patrick, 

First of all, happy new year!

I have one more question about 3DPS & 3D Tiles. If I get it right what you wrote earlier, the streaming will look something like this in the future:

version=1.0&
service=3DPS&
request=GetScene&
format=3dtiles&
crs=EPSG:3857&
boundingbox=407255,5866253,483505,594003&
layers=my3dlayer

In this way, 3DPS is used to discover the scene, and 3D Tiles is used to stream the content. Is that correct?
It also assumes that I need a GIS server that supports 3DPS just like WMS or WFS. As far as I know there is no such GIS server, since 3DPS is still not out yet.

Can't wait to see 3DPS and 3D Tiles work together!

Best,
        Gergely

Patrick Cozzi

não lida,
4 de jan. de 2016, 08:17:0604/01/2016
para cesiu...@googlegroups.com
Hi Gergely,

Based on what I know about 3DPS (which isn't too much), yes, you are spot on.

By the way, what are you building with 3D Tiles?

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Gergely Padányi-Gulyás

não lida,
4 de jan. de 2016, 08:25:1404/01/2016
para cesium-dev
Hi Patrick, 

Thanks for the quick answer.

Until now I haven't built anything with 3D Tiles yet, but my intention in the future is to be able to stream city-scale buildings (LOD2, LOD3) in a web browser. 
Actually that is my next question: how can I create b3dm models from 3D data? At the moment I have some CityGML files, but in the future the input data will be BIM models in IFC format or even LAS files.
I would love to see a tool which helps me convert my heterogenous 3D datasets into 3D Tiles. Is there anything out already?

Best,
         Gergely

Patrick Cozzi

não lida,
4 de jan. de 2016, 09:29:4104/01/2016
para cesiu...@googlegroups.com
Hi Gergely,

Ah, cool!  AGI, who employs most of the Cesium developers, is building tools to generate 3D Tiles, but they are not out yet.

Patrick

Patrick Cozzi

não lida,
4 de jan. de 2016, 10:57:1604/01/2016
para cesium-dev
Hi all,

If you are using 3D Tiles, please consider submitting a proposal for a talk at the upcoming FOSS4G NA conference in May in Raleigh, North Carolina.  It is a great conference on open-source geospatial software.

This is a nice opportunity to get your work some exposure and show the diversity of use cases that 3D Tiles will serve.

The early bird deadline for proposals is January 22.  See https://2016.foss4g-na.org/cfp

Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Gergely Padányi-Gulyás

não lida,
18 de jan. de 2016, 03:30:5918/01/2016
para cesium-dev
Dear Patrick,

I just noticed that there is another 3d-tiles specific branch in Cesium called 3d-tiles-refine. Maybe it was there all along and only I failed to see it.
How does it differ from 3d-tiles branch? Should we use this branch instead?

Anyway, keep up the good work! Really can't wait to use 3D Tiles for visualizing my city-scale buildings!

Best,
           Gergely

Patrick Cozzi

não lida,
18 de jan. de 2016, 10:26:2918/01/2016
para cesiu...@googlegroups.com
Hi Gergely,

Always use the 3d-tiles branch.  At this point, we are treating the 3d-tiles branch as the stable master version of 3D Tiles so all development is done on branches off of 3d-tiles, and then merged into the 3d-tiles branch with pull requests.

The 3d-tiles-refine branch was actually already merged into 3d-tiles; we just forgot to delete it.  Thanks for pointing it out!

Patrick

s.pla...@gmail.com

não lida,
25 de jan. de 2016, 10:53:2525/01/2016
para cesium-dev
Hello,

i'm new with cesium and 3d-tiles.
i need some help of conzeption and implementation.

i load a citygml to 3dcitydb and export the collada files as tiles wich i converted with the colladaToBglTFConverter.jar to bgltf.
so now i have folders of the tiles with the gbltf files in it.

how could i show it in cesium?
I download the branch "3d-tiles". but i think i have to put the "build" folder of the cesium projekt to it.?
I add the code:
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url: '../../data'
}));
but i get the error "Cesium.Cesium3DTileset is not a function"
so, is there a detailed description how to run this branch and load it with 3d-tiles?

Where does cesium knows which tiles it has to show? Does it have to load a tileset.json file and how i will get it?

does bgltf store the full coordinates (long lat) or relative postitions?


Thanks

Patrick Cozzi

não lida,
25 de jan. de 2016, 11:00:3425/01/2016
para cesiu...@googlegroups.com
Hi,

Are you using the 3d-tiles branch in Cesium?  If so, Cesium.Cesium3DTileset should be defined.

To the best of my knowledge, colladaToBglTFConverter does not generate 3D Tiles tilesets.  For the concepts in 3D Tiles, review the spec.

Note that this is still a work-in-progress so expect minor changes over the next few months.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

s.pla...@gmail.com

não lida,
25 de jan. de 2016, 11:36:2625/01/2016
para cesium-dev
Hello Patrick,

Am Montag, 25. Januar 2016 17:00:34 UTC+1 schrieb Patrick Cozzi:
> Hi,
>
>
> Are you using the 3d-tiles branch in Cesium?  If so, Cesium.Cesium3DTileset should be defined.
yes. So i only need this branch? I ask, because there is no "cesium.js". So i don't know how to initialize cesium.
>
>
> To the best of my knowledge, colladaToBglTFConverter does not generate 3D Tiles tilesets.  For the concepts in 3D Tiles, review the spec.
Yes, i read it. But for me it is not clear what it is the concrete workflow to get it from a citygml. Does it work with 3DCityDB too or how i get it?

Thanks
Stephan

Patrick Cozzi

não lida,
26 de jan. de 2016, 17:24:5826/01/2016
para cesium-dev, s.pla...@gmail.com
Hi all,

The Cesium 3d-tiles branch now has simple 3D Tiles datasets for testing with a new Sandcastle example by Sean.  See


To try the example, pull the 3d-tiles branch, then build with `npm run combine`, before running the development server (npm start) and browsing to the Sandcastle example.

Note that the tile payloads in the repo (e.g., *.b3dm, *.i3dm, etc.) are gzipped.

Patrick

Matthew Amato

não lida,
26 de jan. de 2016, 17:27:5226/01/2016
para cesiu...@googlegroups.com
Patrick, there shouldn't be a need to run combine, unless you are doing something special I'm not aware of, `npm run build` is all you need and only takes a couple of seconds (compared to combine which takes forever)

--
You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.

techno...@gmail.com

não lida,
2 de fev. de 2016, 22:18:2802/02/2016
para cesium-dev
On Wednesday, August 19, 2015 at 10:34:41 AM UTC-4, Matthew Amato wrote:
> While I'm no expert either, I think GRIB data is definitely an ideal source of 3D Tiles for visualizing weather and there's a lot of free datasets out there for us to experiment with.  Of course weather data is probably low on the totem pole compared to vector data and point clouds, but long term I could definitely see it happening.
>
>
> On Wed, Aug 19, 2015 at 9:40 AM, Mike Macaulay <mmac...@gmail.com> wrote:
>
> Patrick, I doubt I can answer knowledgeably because I know only a little, playing with GRIB data in a past job.  It seems to be one of those things that seems simple until you dive a little deeper, but I'll give a shot at it.  So Grib data gives you a gridded data set with timesteps, often these grids have an altitude component as well.  Each dataset ends up with a numeric value at its point so you end up processing many grids to get a holistic view, but the format is standard.  Here's where I lose context, but I could imagine processing a grib dataset into 3D tiles, perhaps making a single 3D tile for a cube in 3D space over time (4D tile?) as you say.  The models for these spaces would be super simple, maybe just a cube with a color depending on the value of the GRIB data at that field, and you'd get a good idea of the weather by looking at the sum of these cubes in your viewing area...   If any of this is possible, it could become another killer app for Cesium.  Imagine flying around the thunderstorm cloud that's just passed overhead in 4D!   
>
>
>
>
> On Tue, Aug 18, 2015 at 5:28 PM, Patrick Cozzi <pjc...@gmail.com> wrote:
>
> @Chris - thanks for sharing.  That link doesn't work for me, but I took a quick read through this: http://renderman.pixar.com/view/appnote23.  Are there any related papers you recommend?
>
>
> @Mike - thanks for the interest.  What source data do you have in mind for weather?  We have to do some research on making the temporal aspect of 3D Tiles really fast.  Right now I am thinking something like uniform subdivision across time with each tile having a window of the time-tagged exploiting temporal coherence for compression (as opposed to a separate tree per time stamp).  A lot of the techniques for streaming video can be applied.  Details are still TBA...
>
>
> Patrick
>
>
>
>
> On Tue, Aug 18, 2015 at 5:32 PM, Mike Macaulay <mmac...@gmail.com> wrote:
>
> Wow, looks really awesome!  From what I've read, this might be an excellent way of visualizing 3D weather over time.  Would you agree?  
>
> On Monday, August 10, 2015 at 11:52:23 AM UTC-5, Patrick Cozzi wrote:
>
> Folks,
>
>
>
> We're happy to announce the next big initiative from the Cesium team: 3D Tiles.
>
>
> 3D Tiles are an open specification for streaming massive heterogeneous 3D geospatial datasets.  They are the foundation for the streaming 3D buildings demos we developed, and will be the foundation for streaming point clouds, trees, vector data, and other massive geospatial datasets.  We already have significant progress towards the spec and Cesium's implementation, and expect things to stabilize in spring 2016.
>
>
> What can you do to help?  We appreciate you showing your support by spreading the word on twitter and staring the spec's repo.  If you are feeling adventurous, start looking at Cesium's 3d-tiles branch.  Soon, we'll have publicly available sample data to use from our friends at CyberCity 3D.
>
>
> For more info, see Introducing 3D Tiles on the Cesium blog.
>
>
>
> I believe 3D Tiles will be at least as impactful to the geospatial field as Cesium itself.  Looking forward to your feedback!
>
>
> Patrick--
>
>
> twitter.com/pjcozzi
>
>
>
>
>
>
>
>
> --
>
> You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
>
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
>
> To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
>
> --
>
>
> twitter.com/pjcozzi
>
>
>
>
>
> --
>
> You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
>
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
>
> To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
>
>
>
> --
>
> You received this message because you are subscribed to the Google Groups "cesium-dev" group.
>
> To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

As it turns out, visualization of weather data in 3d surfaces and volumes above a terrain map is exactly what led me to cesium.js, and I'm very glad to see the development of 3d tiles.

Grib data does indeed lend itself to applications like this - grib files generally are supplied with multiple bands representing different data over a geographic grid. For many grib files (numerical model output), the some of the bands represent data values for multiple altitudes, with one band containing geopotential height for individual points and another band containing data values of the corresponding points.

The GDAL library is good at extracting individual bands and working with the data, typically writing output files in GeoTIFF format. It would take minimal scripting to turn that into point clouds, though functions that can take a multi-band GeoTIFF and turn it directly into point clouds would be really convenient. would be really convenient.

One thing that could be really interesting would be the ability to map values in collections of point clouds to alpha values on the fly -- in other words, to load a point cloud, and selectively make parts of it transparent or semi-transparent via user interface.

Patrick Cozzi

não lida,
3 de fev. de 2016, 08:08:2603/02/2016
para cesiu...@googlegroups.com
Hi,

Part of 3D Tiles is declarative styling, which, as you suggest for point clouds, allows us to map feature property values to color/show.  This work is just getting started in the 3d-tiles-style branch.

Patrick

Patrick Cozzi

não lida,
5 de fev. de 2016, 08:30:5705/02/2016
para cesium-dev
Hi all,

We put together some early doc and examples for the declarative styling part of 3D Tiles.  See here.  Please provide your feedback and use cases to help drive the direction of the styling schema.

Patrick

To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
8 de mar. de 2016, 15:26:3108/03/2016
para cesium-dev
Hi all,

If your interested in 3D Tiles, check out the impressive work Vricon is doing with their terrain in Cesium:


Vricon has also made some nice contributes to the Cesium implementation.  Thanks again to them!

Patrick

Jonathan Williams

não lida,
8 de mar. de 2016, 21:23:1008/03/2016
para cesium-dev
I've continued to look at the possibility of using this for fly-through and 3D visualization of weather model data, with selective display of values or ranges of values.

Considering the data isn't really representative of surfaces (the way a typical point cloud would be), but rather represents true volume data, from what I've gathered, it looks like rendering in the form of tetrahedrons, each vertex having its own value and smoothly interpolated between them, would be ideal. By mapping specific data values or value ranges to alpha values and/or colors on the fly, great flexibility in visualization surfaces and volumes within the data could be achieved (assuming this could be done!).

I've looked at the current spec and I haven't seen anything regarding tetrahedron rendering, though it could obviously be an option with point clouds. Is something like that  possible? I understand WebGL is capable of rendering tetrahedrons.

Best,
Jonathan

Patrick Cozzi

não lida,
10 de mar. de 2016, 21:34:1010/03/2016
para cesiu...@googlegroups.com
Hi Jonathan,

Strictly speaking, WebGL can't render tetrahedrons; it renders triangles.

However, you could build what you want using 3D Tiles today with the b3dm tile format by storing triangles for tetrahedrons.  On the client, you could then map feature (tetrahedron) attributes to colors just like, for example, we would map building heights to colors.

For more performance and flexibility, a custom tile format would be the way to go.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
14 de mar. de 2016, 14:45:3414/03/2016
para cesium-dev
Hi all,

A few big updates on 3D Tiles:
  • We presented 3D Tiles in the Closing Plenary at the OGC Technical Committee meeting last week.  There was a great audience with lots of interest.  Check out the slides, which include several examples of the amazing work folks are already doing with 3D Tiles.
  • We flushed out an initial version of declarative styling for 3D Tiles, which enable writing concise expressions, often using feature properties, to determine feature color, translucency, and show/hide.  There is also a pull request into the 3d-tiles branch for this in Cesium, #3699.
  • Finally, we're starting to zoom in on timing for a draft 1.0 spec and Cesium release.  This will include the base tileset.json and styling schema and tile formats for: batched 3D model (b3dm), instanced 3D model (i3dm), point clouds, composite, and vector data.  We expect this to be early fall (in the US) and to include shadows (shadows branch).
Thanks,
Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
11 de abr. de 2016, 10:33:4111/04/2016
para cesium-dev
Hi all,

virtualcitySYSTEMS developed a very nice app using 3D Tiles.  Check out the Berlin Atlas of Economy, switch to 3D, and zoom in:


Patrick

Piero Toffanin

não lida,
11 de abr. de 2016, 10:57:2211/04/2016
para cesium-dev
Very cool, thanks for sharing!

Any information/detail about the source of the dataset used for the buildings? Is it from osm?
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
11 de abr. de 2016, 11:30:0511/04/2016
para cesiu...@googlegroups.com
I suspect it is the dataset described in Slide 22 here: http://cesiumjs.org/presentations/3D-Tiles-OGC-DC.pdf

I believe it is a combination of open and commercial data.

Patrick

jbo023

não lida,
12 de abr. de 2016, 06:38:0812/04/2016
para cesium-dev
Ho, 

the base dataset (500k buildings with textures) is open data and can be downloaded at the following link.


The application http://www.businesslocationcenter.de/wab/maps/main/ uses about 300 additonal high quality models for important landmarks. 
Theses models are unfortunatly not open data.

Patrick Cozzi

não lida,
12 de abr. de 2016, 13:05:2312/04/2016
para cesium-dev
Hi all,

Cache management is now in the 3d-tiles branch, see #3808.  This is one of the last core 3D Tiles features; the bulk of the work now is on the vector tile format and rounding out the point cloud and instanced model tile formats.

No code changes are required to use the cache; Cesium will automatically cache the "most important" 256 tiles (by default) in memory.  You can change the default by setting Cesium3DTileset.maximumNumberOfLoadedTiles, and explicitly unload cached tiles that are out of view by calling Cesium3DTileset.trimLoadedTiles.

There is also a new event, Cesium3DTileset.tileUnload, that fires when a tile is unloaded from the cache.

Let us know your feedback when you upgrade!

Thanks,
Patrick

Patrick Cozzi

não lida,
13 de abr. de 2016, 11:43:1613/04/2016
para cesium-dev
Hi all,

I updated the 3D Tiles roadmap to include all the items needed to merge the 3d-tiles branch into master for the 3D Tiles draft 1.0 spec.  Please review and let me know if there are things you would like to see (or not).

At this point, the Cesium code is in really good shape for the core 3D Tiles engine (including unit tests and reference doc), and the bulk of the remaining work is tile formats.

Patrick

Nathan Brigmon

não lida,
18 de abr. de 2016, 15:17:2218/04/2016
para cesium-dev
Looking really nice! Is their a good reference site for learning how to create custom 3d tiles?

Thx!

Patrick Cozzi

não lida,
18 de abr. de 2016, 16:20:2518/04/2016
para cesiu...@googlegroups.com
Thanks Nathan.

For generating 3D Tiles, the spec has a lot of tips.  As we get our implementation further along, we will write tutorials on the Cesium blog.

Patrick

Patrick Cozzi

não lida,
11 de mai. de 2016, 16:31:3911/05/2016
para cesium-dev
Hi all,

Slides for the latest 3D Tiles talk by Sean and me at FOSS4G NA are now up:


The talk contains 3D Tiles motivation and use cases that you've probably seen before, but also has a lot of deeper technical content in the second half.

Patrick
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
16 de jul. de 2016, 10:15:3416/07/2016
para cesium-dev
Hi all,

A few updates on 3D Tiles:
Thanks again for the incredible support on this project!

Patrick

Nicholas Kennedy

não lida,
19 de jul. de 2016, 07:39:1819/07/2016
para cesium-dev
Good work.  We are excited for the spec to go stable so we can start looking at how we can use it to enhance our app.

I know that there was initial plans on temporal 3d tiles (something that would solve once of our problems very well)  Is this still in the roadmap? What is the scope of work for temporal?

v/r
NJK

Patrick Cozzi

não lida,
19 de jul. de 2016, 19:33:4719/07/2016
para cesium-dev
Hi Nicholas,

Thanks for the kind words.

For temporal 3D Tiles, we are looking at two thing:
If you have a minute, please add your use cases to one of the above GitHub issues.

Also, what kind of app are you building?  Do you have a link to a demo?  Would love to check it out.

Patrick

Justin Martinez

não lida,
26 de jul. de 2016, 12:34:2326/07/2016
para cesium-dev
Hi Patrick,

I am very excited about 3D tiles and have been reading whatever I can find about the specs. I would love to see the slides and video from the Web3D conference last weekend. Any idea when those will be posted?

Thanks,

Justin

Patrick Cozzi

não lida,
31 de jul. de 2016, 12:45:2131/07/2016
para cesiu...@googlegroups.com
Justin - thanks for the kind words.  The slides will be posted this week.  The video is up to the conference, but I expect it will be posted soon.  I'll update this thread as things get posted.

Patrick

Nicholas Kennedy

não lida,
1 de ago. de 2016, 11:16:3301/08/2016
para cesium-dev
We do not have a public demo. Sorry.

Nicholas Kennedy

não lida,
1 de ago. de 2016, 11:22:4701/08/2016
para cesium-dev
Patrick,

Are there any plans to support sprites in the 3D tiles branch?  I imagine it would be similar to the billboard in the current API.

v/r
NJK

Patrick Cozzi

não lida,
1 de ago. de 2016, 17:29:3401/08/2016
para cesiu...@googlegroups.com
Hi NJK,

Yes, sprites can be done either through instanced glTF with a custom shader or the upcoming vector tile.  For example, see:


Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
3 de ago. de 2016, 15:30:4803/08/2016
para cesium-dev
Hi all,

Over the next 4-5 months, we are going to work with our friends at the University of Pennsylvania to develop open-source tools for debugging, analyzing, and validating 3D Tiles tilesets.

This will be an important part of the 3D Tiles ecosystem to ensure interoperability among exporters, converters, and renderers that implement 3D Tiles, similar to the new glTF Validator from Khronos.

If you want to keep an eye on the progress, watch the new repo:


Note that these tools are not for converting other formats to 3D Tiles.  These tools are for working with existing 3D Tiles tilesets.

Patrick


On Monday, August 1, 2016 at 5:29:34 PM UTC-4, Patrick Cozzi wrote:
Hi NJK,

Yes, sprites can be done either through instanced glTF with a custom shader or the upcoming vector tile.  For example, see:


Patrick
On Mon, Aug 1, 2016 at 11:22 AM, Nicholas Kennedy <col...@gmail.com> wrote:
Patrick,

Are there any plans to support sprites in the 3D tiles branch?  I imagine it would be similar to the billboard in the current API.

v/r
NJK

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Patrick Cozzi

não lida,
4 de ago. de 2016, 13:29:2504/08/2016
para cesium-dev
Our latest 3D Tiles tutorial from Web3D is now up:

Patrick Cozzi

não lida,
19 de ago. de 2016, 16:38:1419/08/2016
para cesium-dev
Hi all,

Rob Taglang just completed a major update to the Instanced 3D Model (i3dm) tile format for 3D Tiles that is more efficient and flexible than the initial prototype.  Check out the updated spec:


The Cesium pull request will also be merged into the 3d-tiles branch soon:


Patrick

Patrick Cozzi

não lida,
22 de ago. de 2016, 13:49:4422/08/2016
para cesium-dev
Hi all

> The Cesium pull request will also be merged into the 3d-tiles branch soon:

This was merged.  Let us know your feedback when you are able to test it out.

Thanks,
Patrick

Patrick Cozzi

não lida,
23 de ago. de 2016, 11:10:5923/08/2016
para cesium-dev
Hi folks,

We started putting together the roadmap for the 3D Tiles validator, which will help ensure an interoperable ecosystem of 3D Tiles converters, tools, and renderers:


Please chime in with your input.

This will start in mid-September.

Patrick

nexts...@gmail.com

não lida,
25 de ago. de 2016, 05:15:2625/08/2016
para cesium-dev
Hello everyone,

I've never used Cesium, so maybe my questions are already answered somewhere on the forum. I'd like to use Cesium for visualization of a large city, and I've got a big postgresql database of spatial objects (buildings, plots, etc). As far as I can tell, the best way to get the needed amount of data on the client is to stream it by "chunks" - 3D tiles, that cover only current visible map area. But how do I generate 3D tiles from postgres data? I want some 3D tiles to be pre-generated, and some to be generated on the fly (something similar to 2D tiling solutions like Tilecache, Mapproxy etc.) But regarding to this forum branch, the tools aren't implemented yet. Or are they already present in some unfinished development form?
So how did you make 3D tiles for NYC buildings? What was the initial form of this data and how did you translate it to 3D tiles?
What do you use on the server side to stream tiles to the client?

Patrick Cozzi

não lida,
29 de ago. de 2016, 08:30:1929/08/2016
para cesiu...@googlegroups.com
Hi,

There are two source datasets for the NYC demo.  One is the CityGML from NYC's open data, and the other is OSM from Mapzen's metro extracts.  You can flip between these in the app.

AGI, the company that started Cesium, is building 3D Tiles converters as part of the upcoming service, https://cesiumjs.com/

We are also building some open-source tools that can be used as part of a 3D Tiles pipeline:
We'll post tools to this thread as we learn about them.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Selahattin ŞİŞMAN

não lida,
7 de set. de 2016, 07:15:4307/09/2016
para cesium-dev

I would like to learn and apply “3D tiles” . I read article about “Cesium-dev” and reviewed “3D Tiles.html” But I don’t know how to apply to my Project.

 

I am calling building data with codes that is written below but It takes time increase of buildings. Can you help me understable and clear way?

 





var viewer = new Cesium.Viewer('cesiumContainer', {
    scene3DOnly
: true,
    shadows
: true
});

var dataSource2 = new Cesium.GeoJsonDataSource();
var promise = dataSource2.load('../../Build/test-1.geojson');
promise
.then(function(dataSource2) {
    viewer
.dataSources.add(dataSource2);
    viewer
.zoomTo(dataSource2);
   
   


var entities2 = dataSource2.entities.values;
 
var colorHash = {};
   
for (var i = 0; i < entities2.length; i++) {
   
       
var entity = entities2[i];
       
var name = entity.KAT_ADEDI;
       
var color = colorHash[name];
       
if (!color) {
            color
= Cesium.Color.GREEN;
            colorHash
[name] = color;
       
}

       
.
        entity
.polygon.material = color;
   
        entity
.polygon.outline = false;

     
        entity
.polygon.extrudedHeight = entity.properties.KAT_ADEDI;
       
   
}
}).otherwise(function(error){
   
    window
.alert(error);
       
       
       
});

Thank you in advance



Selahattin

Patrick Cozzi

não lida,
9 de set. de 2016, 17:22:5009/09/2016
para cesiu...@googlegroups.com
Selahattin - I'm not aware of any GeoJSON -> 3D Tiles converters yet, but watch this thread for 3D Tiles news in general.  If you need help specifically with GeoJSON in Cesium, please start a new thread.

Patrick

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/tCCooBxpZFU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

hee...@viadrupsteen.nl

não lida,
13 de set. de 2016, 03:51:1813/09/2016
para cesium-dev
Hi,

Right now I'm using the 3D Tiles branch of Cesium, and had a question regarding the properties of ModelInstanceCollection (https://github.com/AnalyticalGraphicsInc/cesium/blob/3d-tiles/Source/Scene/ModelInstanceCollection.js). The problem I'm running into is the need to add the Heightreference to the models used within this instance. I have tried doing so by just manually adding it within Cesium.Js (Unminified version) however got the error that the Heightreference is not supported without a scene (However, I add it as a primitive collection straight to the Viewer.Scene.Primitives).

Are there any plans to officially support HeightReference as of now or is it more beneficial to sample the terrain and generate a height-variable for my models?

My implementation within Cesium.js was very simple, I just added a this._heightReference variable to the constructor of ModelInstanceCollection and at the definition of the model added this again as a definition (using Cesium.HeightReference.CLAMP_TO_GROUND).

hee...@viadrupsteen.nl

não lida,
13 de set. de 2016, 07:42:3813/09/2016
para cesium-dev, hee...@viadrupsteen.nl

Additionally; I've been trying to instead use sampleTerrain to get the correct height. I'm getting it , but want to wait for the PrimitiveCollection of ModelInstanceCollection to be done before adding it to my primitives. The issue I was running into is the fact that the system seems to be running too fast and skipping over the Model Variable while trying to add, causing it to never actually load the model (the DebugBoundingSphere is visible and in the right place, there just aren't any models and logging it in the console shows the _model variable of ModelInstanceCollection to be undefined).

Right now, I'm trying to call on the ReadyPromise within ModelInstanceCollection. I logged it and can get the promise just fine. But the promise doesn't return properly and never shows it as being ready. Now I'm getting my model, but I can't add it to my primitives because the follow snippet never triggers.

var readyPrimitives = primitiveCollection.readyPromise;

Cesium.when(readyPrimitives, function(){
viewer.scene.primitives.add(primitiveCollection);
console.log("placed trees");
});

Sean Lilley

não lida,
13 de set. de 2016, 21:11:3613/09/2016
para cesium-dev, hee...@viadrupsteen.nl
Hello,

The HeightReference error is happening because you need to also pass in the scene when creating a Model with a height reference. Right now though HeightReference isn't supported for ModelInstanceCollection. The collection contains a model for the purpose or rendering, but not positioning, so any modifications to the underlying model's position, either by height reference or modelMatrix, will end up moving all instances at the same time. Instead it's definitely better to do the other solution you mentioned which is sample heights ahead of time. I think supporting HeightReference in ModelInstanceCollection could be a very useful feature to have.

For your code snippet, you need to add the collection to the scene first so that it can update and eventually trigger the ready promise. Try:

       var readyPrimitives = viewer.scene.primitives.add(new Cesium.ModelInstanceCollection(......));

       Cesium.when(readyPrimitives, function(){


           console.log("placed trees");
       });

hee...@viadrupsteen.nl

não lida,
14 de set. de 2016, 03:32:0414/09/2016
para cesium-dev
Hi Sean, thanks for the reply.

The above code snippet also doesn't seem to work for me. Instead using a 5 second timer before adding the collection seems to work consistently, like in the following code:

primitiveCollection = self.placeTrees(updatedPositions); // This returns the ModelInstanceCollection to add later.
setTimeout(SpawnTrees, 5000);

function SpawnTrees(){
viewer.scene.primitives.add(primitiveCollection);
}

console.log(primitiveCollection);

What I tried to use, was your example in the following way:

primitiveCollection = viewer.scene.primitives.add(self.placeTrees(updatedPositions)); // self.placeTrees still returns the modelinstancecollection;
Cesium.when (primitiveCollection, function () {
console.log("trees have been placed");
});

This code snippet doesn't seem to run, none of the trees I am trying to place exist anymore and _model shows undefined, neither does "trees have been placed" get printed in the console.

I'm mostly getting issues where it simply isn't waiting for the model to exist before moving on and the Promise in _readyPromise of PrimitiveCollection never actually resolving. Waiting, for some reason, fixes this. For now I'll use this solution I have (albeit, that it is a bit of dirty code..)

Thanks for the help,

Heerco

Sean Lilley

não lida,
14 de set. de 2016, 09:56:0814/09/2016
para cesium-dev, hee...@viadrupsteen.nl
Oh sorry I think I had a mistake in my sample code. Try:

          primitiveCollection = viewer.scene.primitives.add(self.placeTrees(updatedPositions));
          Cesium.when (primitiveCollection.readyPromise, function () {

            console.log("trees have been placed");
          });

Or you could also do:

          primitiveCollection = viewer.scene.primitives.add(self.placeTrees(updatedPositions));
          primitiveCollection.readyPromise.then(function () {

            console.log("trees have been placed");
          });

hee...@viadrupsteen.nl

não lida,
14 de set. de 2016, 10:09:1914/09/2016
para cesium-dev, hee...@viadrupsteen.nl
Hi Sean, thanks again for the reply.

This is unfortunately not the way I want to use this. I want to wait on the ModelInstanceCollection to give me the go-ahead from readyPromise before I add it to the primitives. I am having issues using this in the way you've posted because the _model variable ends up undefined, leaving me with a lack of trees, for some reason waiting those 5 seconds is what helps. I might look further into the readyPromise later.

Thanks again for the help


Sean Lilley

não lida,
14 de set. de 2016, 11:24:4614/09/2016
para cesium-dev, hee...@viadrupsteen.nl
Usually you need to add it to scene.primitives in order for it to update and become ready. I'm not sure why the readyPromise would be called but the model would be undefined. Would you be able to send me a full code sample so I can see what's going on?

hee...@viadrupsteen.nl

não lida,
16 de set. de 2016, 03:25:5516/09/2016
para cesium-dev, hee...@viadrupsteen.nl
Sorry for the late reply, unfortunately I wasn't able to attend to my code before now.

Right now, this is the current structure:

var promise = Cesium.sampleTerrain(self.terrainProvider, 11, locations);
Cesium.when(promise, function(updatedPositions) {
primitiveCollection = self.placeTrees(updatedPositions);
setTimeout(SpawnTrees, 5000);

function SpawnTrees(){
viewer.scene.primitives.add(primitiveCollection);
}
console.log(primitiveCollection);
});

where placeTrees runs this:

var scale = new Cesium.Cartesian3(1, 1, 1);
var treeInstances = [];
locations.forEach(function (location) {
var cartesianPosition = Cesium.Cartesian3.fromRadians(location.latitude, location.longitude, -location.height);
var modMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(cartesianPosition);
treeInstances.push({modelMatrix: modMatrix});
});

var primitives = new Cesium.ModelInstanceCollection({
instances: treeInstances,
url: "lib/pine-alpha.glb",
allowPicking: false,
boundingSphere: Cesium.BoundingSphere.fromEllipsoid(Cesium.Ellipsoid.WGS84),
shadowMode: Cesium.ShadowMode.DISABLED
});
return primitives;

(the shadowmode is something I added because the shadows are a MASSIVE resource hog and not needed in our usecase).

Sean Lilley

não lida,
16 de set. de 2016, 10:23:4816/09/2016
para cesium-dev, hee...@viadrupsteen.nl
There are a few things I noticed. You are calling Cartesian3.fromRadians with latitude before longitude, but it should be the other way around. The bounding sphere could be a more reasonable size, or just don't pass one in at all, it will be generated automatically based on the instance positions. I removed the timeout and worked directly with promises - I'm adding it to scene.primitives before it's ready, but this needs to be done to load the collection. shadowMode is not a valid option for ModelInstanceCollection right now. If you want to disable shadows entirely, make sure that viewer.shadows is false.

Here's a working demo that I created around your sample code. Let me know how it goes.

var viewer = new Cesium.Viewer('cesiumContainer');
var terrainProvider = new Cesium.CesiumTerrainProvider({
    requestWaterMask : true,
    requestVertexNormals : true
});
viewer.terrainProvider = terrainProvider;

var centerLongitude = -1.31968;
var centerLatitude = 0.698874;
var center = Cesium.Cartesian3.fromRadians(centerLongitude, centerLatitude);
viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(0.0, -0.35, 500));

var locations = new Array(10);
for (var i = 0; i < 10; ++i) {
    var longitude = centerLongitude + Math.random() * 0.00001;
    var latitude = centerLatitude + Math.random() * 0.00001;
    locations[i] = new Cesium.Cartographic(longitude, latitude);
}

Cesium.sampleTerrain(viewer.terrainProvider, 11, locations).then(function(updatedPositions) {
    var primitiveCollection = placeTrees(updatedPositions);
    viewer.scene.primitives.add(primitiveCollection);
    primitiveCollection.readyPromise.then(function() {
        console.log('Ready');
    });
});

function placeTrees(locations) {
    var scale = new Cesium.Cartesian3(1, 1, 1);
    var treeInstances = [];
    locations.forEach(function (location) {
        var cartesianPosition = Cesium.Cartesian3.fromRadians(location.longitude, location.latitude, location.height);
        var modMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(cartesianPosition);
        treeInstances.push({modelMatrix: modMatrix});
    });
    
    var primitives = new Cesium.ModelInstanceCollection({
        instances: treeInstances,
        url: "../../SampleData/Models/CesiumAir/Cesium_Air.gltf",
        allowPicking: false
    });
    return primitives;

hee...@viadrupsteen.nl

não lida,
16 de set. de 2016, 10:47:0816/09/2016
para cesium-dev, hee...@viadrupsteen.nl
Hi there Sean,

First off; I added the shadowmode under ModelInstanceCollection within Cesium itself as an option so I could edit it. I have also created a pullrequest with this change but this wasn't added to the branch. Nevertheless, it works and turns my framerate from 10 fps to 60 fps. I only need the shadows off on the trees, not on the rest of the objects within our scene. So it's specific usecase (and it's an option innate on the model, why isn't it able to be edited within the ModelInstanceCollection in the first place?).

Aside from that, the adapted example still doesn't function. It simply does not show the model. It refuses to "find" it and the readypromise never gets called, which has been the crux of the problem from the start. It doesn't seem to "ready" itself.

Right now, I'm running into a whole different problem. Namely that I call remove on the old ModelInstanceCollection (viewer.scene.primitives.remove(primitiveCollection)) and it crashes because it still attempts to update. It works fine if I give it time before I attempt to another modelInstanceCollection, but if it happens too quick it instantly crashes the renderer. While, if I console.log both the PrimitiveCollection within the scene (console.log(viewer.scene.primitives) - logs the whole primitive collection of the scene with 6 instances, 5 are used for other things and 1 modelinstancecollection) and the primitiveCollection itself (console.log(primitiveCollection.isDestroyed() - logs False nearly always) both show it's still there.

The Error :

An error occurred while rendering. Rendering has stopped.
DeveloperError: This object was destroyed, i.e., destroy() was called.
Error
at new DeveloperError (http://localhost:63342/lib/cesium-unminified/Cesium.js:1317:19)
at ModelInstanceCollection.throwOnDestroyed (http://localhost:63342/lib/cesium-unminified/Cesium.js:25397:19)
at PrimitiveCollection.update (http://localhost:63342/lib/cesium-unminified/Cesium.js:165306:27)
at updatePrimitives (http://localhost:63342/lib/cesium-unminified/Cesium.js:173562:27)
at executeCommandsInViewport (http://localhost:63342/lib/cesium-unminified/Cesium.js:173478:9)
at updateAndExecuteCommands (http://localhost:63342/lib/cesium-unminified/Cesium.js:173346:17)
at render (http://localhost:63342/lib/cesium-unminified/Cesium.js:173772:9)
at Scene.render (http://localhost:63342/lib/cesium-unminified/Cesium.js:173810:13)
at CesiumWidget.render (http://localhost:63342/lib/cesium-unminified/Cesium.js:182779:25)
at render (http://localhost:63342/lib/cesium-unminified/Cesium.js:182167:32)
OK


I'm deleting the old ModelInstanceCollection to save on performance and resources, because if I don't the frames dip with 10 for each collection I add. But, it's updating the old one while that should be removed and I create a new one a bit later.

also, regarding the Radians conversion, if I do not do the conversion as is shown in my cript, the trees will not be in the correct place.

hee...@viadrupsteen.nl

não lida,
16 de set. de 2016, 10:51:4016/09/2016
para cesium-dev, hee...@viadrupsteen.nl


fixed the current problem. That's where I did use the readyPromise to request for it's status, works fine now! Thanks for all the help.

Mais mensagens estão sendo carregadas.
0 nova mensagem