I saw in this thread and on the wiki for the DDR that shadow casting was a planned feature for Cesium. My team is building a kind of framework on top of Cesium for rendering urban environments, and being able to visualise the shadows that buildings will cast is a necessary feature.
I’m wondering if you guys have an estimate on when that will be implemented natively in Cesium? If not, or if it’s likely to take a long time, we might be interested in looking into a basic implementation ourselves (we’re not nearly as experienced as you guys) so if you had any pointers for how you plan/the easiest way to go about it, that would also be appreciated.
Hi Oliver,
We plan to do improvements to the Cesium renderer later this year that will allow for post-processing, and will be the foundation for multiple-pass rendering for cube map generation and shadows. However, we probably won’t get to actual shadows until next year. In the meantime, you could try to do something simple for your case, but, in the general case, shadows in Cesium will be harder than most engines because, for example, we have multiple frustums for massive view distances and there will be terrain-loading tension between the main view frustum and shadow frustum(s).
We will use shadow maps as opposed to shadow volumes, but I don’t know what shadow mapping technique we will use yet. We’ll start with vanilla shadow maps and go from there. For some general info on shadows, one of my students has a great set of slides, Shadows for Real-Time Rendering, and the Real-Time Shadows SIGGRAPH course is also good, as is their book.
Regards,
Patrick
Hi Patrick,
Thanks for the extremely helpful reply! Even the most basic aliased shadow maps would be sufficient for a proof of concept (so we can say “yes, Cesium is the right choice because look, shadows!”), so I suspect we’ll start hacking something together within a month or two. It won’t be good enough to be a contribution, but our whole project will be open source I believe, so I’m looking forward to getting past the learning curve and starting to produce things that might be!
Cheers,
Oliver
Hi Oliver,
Sounds good. At the least, I hope you can share your lessons learned with us.
Also, we’re always looking to showcase people’s work with Cesium on the website - http://cesium.agi.com/demos.html. When you build something cool, let us know.
Patrick
Hey Patrick,
This is a long time ago now, but I suppose I should give you the update!
We’ve just wrapped up a handful of research projects with AURIN at the University of Melbourne, aimed at building a open-source geoapstial visualisation and analysis platform to support the academic community, especially civil engineers without large software budgets. Here’s a summary of the libraries we developed, with a list of references to applications that are built on the technology.
In summary, Atlas is an abstract 3D geospatial rendering API that is rendering library-independent. Atlas-Cesium was our implementation of the Atlas API using Cesium for the rendering. Along with them, we have an Asset Conversion Service (ACS) to convert common open data formats (such as SHP, GeoJSON, KML, KMZ, IFC) into a custom format that Atlas-Cesium can render. Together they make it much easier to develop applications, since they take care of common operations like rendering polygons with extrusion, selection and heatmaps. Our team built a few apps on top of it, as did a partner team at RMIT University, so it was relatively successful. Let me know if you’re interested in some more details.
For the work we’re doing now, we need more low-level control over the rendering, and less global-scale functionality, so we’re rolling our own renderer, but we were very impressed with what Cesium was capable of. Our main issues were support for different data formats (especially the finnicky details of 3D meshes, which are always difficult), rendering a large number of entities at once (we would struggle with over about 4,000 simple extruded polygons), and lack of shadows (as per this thread), but overall it was great. Thank you to you and your team on behalf of the research community!
Cheers,
Oliver
Hi Oliver,
Thanks for the update. Impressive work!
Are you interested in showcasing your work on the Cesium website (like these)? If so, email me at pcozzi@agi.com and I’ll help get it published.
Patrick