Inspired by the Coding Adventures: Clouds video, our team decided to create rendering of volumetric clouds and gases. In order to make this happen, this project will utilize the GLSL shader language along with rendering techniques like raytracing, bounding volume hierarchies, and other real-time techniques.
View on GitHub
View our, recently public, repository on GitHub
View Final Project Doc
See the original project prompt on CS184 web site
Project Proposal
Check out our initial project proposal
- 2D Worley NoiseFirst task in generating realistic clouds was to pick pick an implementation approach. We settled on Worley Noise technique. The idea is to scatter random points all over the screen and find the distance between … Continue reading 2D Worley Noise
- 3D Worley NoiseAfter testing our Worley Noise algorithm in 2D, we extended it to work in 3D space. The computational demand of our algorithm was really high because we had to calculate the min_distance(every_pixel, every_random_worley_point). In order … Continue reading 3D Worley Noise
- Prior to Ray TracingPrior to ray tracing, we generated a bounding box structure using two 3-dimensional points. The two points represent rear-leftmost-lower point & front-rightmost-upper corners of the bounding box. These points enabled us to shift x, y, … Continue reading Prior to Ray Tracing
- Where are the clouds?Next step was to “place our texture into the box”. The idea here is to shoot a ray from the camera towards the box. If the ray intersects the box, we will sample our texture … Continue reading Where are the clouds?
- Ray Marching The CloudA real cloud consists of many-many water particles spread out at random. Each particle is tiny and spread out at random with (typically) a lot of empty space between particles. A real light ray is … Continue reading Ray Marching The Cloud
- Additional TexturesFinally we wanted to add some simple textures and play around with different settings such as camera position. For the background we decided to go with a simple gradient generated inside the shader prior to … Continue reading Additional Textures