CesiumGS / cesium

An open-source JavaScript library for world-class 3D globes and maps :earth_americas:
https://cesium.com/cesiumjs/
Apache License 2.0
12.8k stars 3.46k forks source link

Global cloud rendering #5962

Open pjcozzi opened 6 years ago

pjcozzi commented 6 years ago

@immiao @byumjin this would be a great real-time rendering project for the winter/spring!

Phase 1 - billboards

Phase 2 - Volumetric clouds

Later

Resources

Inspiration from GeoFS

@ron-popov and @yotam180 may have input.

Cloud rendering

Cesium rendering engine

xtassin commented 6 years ago

One link I find interesting (billboard based method) is dead on the Vterrain page. Here is a the paper http://twvideo01.ubm-us.net/o1/vault/gdc04/slides/realistic_and_fast_cloud.pdf

How it's done in GeoFS:

pjcozzi commented 6 years ago

@xtassin awesome, thanks for the summary!

MegSesh commented 6 years ago

Hi all,

In regards to the Horizon Zero Dawn Volumetric Cloudscapes presentation https://www.guerrilla-games.com/read/the-real-time-volumetric-cloudscapes-of-horizon-zero-dawn, I worked on implementing this as a C++ plugin in Nuke during my Pixar internship this past summer. A couple other GPU current students and I (Aman Sachan, Joe Klinger, and Dan McCann) are planning to implement this for our final project this semester as well.

The 2015 presentation offers great insight on the approach overall, as well as the motivations behind it. It essentially breaks down into the following sections:

The GPU Pro 7 book https://www.amazon.com/GPU-Pro-Advanced-Rendering-Techniques/dp/149874253X contains a more descriptive article based on this presentation and goes into a little more implementation detail. So this book would be another great resource.

Let me know if you have any other questions! -Meghana

On Fri, Nov 3, 2017 at 8:04 AM, Patrick Cozzi notifications@github.com wrote:

@xtassin https://github.com/xtassin awesome, thanks for the summary!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AnalyticalGraphicsInc/cesium/issues/5962#issuecomment-341685495, or mute the thread https://github.com/notifications/unsubscribe-auth/AFKijlJF704bD5msfaNEPZVTcCC0_CAOks5sywFfgaJpZM4QP2ss .

-- Meghana Seshadri M.S.E., Computer Graphics and Game Technology University of Pennsylvania School of Engineering and Applied Science meghana.seshadri@gmail.com

pjcozzi commented 6 years ago

@MegSesh great summary, thanks so much for the notes! @immiao, @byumjin, and I will stay in touch as this moves forward.

Great final project idea as well!

pjcozzi commented 6 years ago

CC #797 - some WebGL 2 features like 3D textures will be required - we can have a fallback for WebGL 1.

pjcozzi commented 6 years ago

Forum discussion: https://groups.google.com/forum/#!topic/cesium-dev/Hpzap5oNKJg

pjcozzi commented 6 years ago

Repo for weather API integration by @immiao: https://github.com/immiao/cesium-weather

pjcozzi commented 6 years ago

@immiao could you please evaluate these weather APIs:

immiao commented 6 years ago

Sure!

pjcozzi commented 6 years ago

@immiao NASA is also a great source of weather data, please evaluate:

pjcozzi commented 6 years ago

Related killer projects by CIS 565 students

AmanSachan1 commented 6 years ago

Our project has been renamed to Meteoros https://github.com/Aman-Sachan-asach/Meteoros.

Best, Aman Sachan

On Tue, 5 Dec 2017 at 09:15 Patrick Cozzi notifications@github.com wrote:

Related killer projects by CIS 565 students

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AnalyticalGraphicsInc/cesium/issues/5962#issuecomment-349316244, or mute the thread https://github.com/notifications/unsubscribe-auth/AHhfdr0c_J1owMNIrRW0qnLqwRHf9Pd3ks5s9U__gaJpZM4QP2ss .

pjcozzi commented 6 years ago
pjcozzi commented 6 years ago
likangning93 commented 6 years ago

Not sure if this'll be relevant, but it's cool and well written, Mapbox blogpost on wind sim: https://blog.mapbox.com/how-i-built-a-wind-map-with-webgl-b63022b5537f

likangning93 commented 6 years ago

some WebGL 2 features like 3D textures will be required - we can have a fallback for WebGL 1.

Reading through the Horizon Zero Dawn presentation, theoretically couldn't we pack the 3D texture to 2D? Back-of-the-envelope math, 128^3 takes much less GPU memory than 2048^2. Would it be too slow though? [EDIT] b/c maybe there's trilinear interpolation in hardware or something for Webgl 2 3D textures...

pjcozzi commented 6 years ago

Packing into a 2D texture could be fine. For example, see "Real-Time Volumetric Lighting for WebGL" - https://github.com/WebGLInsights/WebGLInsights.github.io/releases/download/v1.0/WebGL.Insights.-.Patrick.Cozzi.pdf

AmanSachan1 commented 6 years ago

Just as a note, the 3D textures define the cloud using all the input parameters that are provided by the the weather map. The weather map described in the paper was a 512*512 texture that defined a 100,000sq km. Or the weather map can be replaced by a simulation. So over all if you pack the cloud textures (low frequency 3D texture, high frequency 3D texture, and a 2D curl noise texture), it should not be that terrible in terms of memory. Also, apparently the original authors weren't able to perfect it to the point that they could ship it with the game.

On Mon 18 Dec, 2017, 12:53 PM Patrick Cozzi, notifications@github.com wrote:

Packing into a 2D texture could be fine. For example, see "Real-Time Volumetric Lighting for WebGL" - https://github.com/WebGLInsights/WebGLInsights.github.io/releases/download/v1.0/WebGL.Insights.-.Patrick.Cozzi.pdf

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AnalyticalGraphicsInc/cesium/issues/5962#issuecomment-352504091, or mute the thread https://github.com/notifications/unsubscribe-auth/AHhfdp8d-hHle3dWHPB3LU4bMzyZ0f6Tks5tBqaHgaJpZM4QP2ss .

pjcozzi commented 6 years ago