Physical Starlight And Atmosphere

by RIG in Materials, Shaders, Textures

UPDATE (22.10.2019)
Physical Skylight and Atmosphere 1.1 is out!

  • update of the update - Previous v1.1 file was saved with Blender 2.81 and resulted in few dysfunctional shader nodes when opened in 2.80. The v1.1 file has been updated now!
  • update of the previous update - Due improper zipping process, I updated the file again.


changes:

  • Fogging now works properly in Eevee and Cycles!
  • Stars!
  • Eevee/Cycles comparison images in the gallery


Pricing Update (12.10.2019)

Till the next update, while I respond to first feedback and do proper documentation - I release the addon for reduced price:

  • Standard License (for hobbyists and freelancers) is now $38 (before $58)


Support at Blender Artists forums for now.

About

"Physical Starlight and Atmosphere" is a full environmental simulator that takes inspiration of 'sandbox' game worlds and editors, bringing visual consistency between every object in the scene.

Apart from our Sun, this addon can simulate any other star. Sky is not only static sky dome, but the whole atmosphere - from ground to the space and beyond. Calculations are based on physical properties of how light is interacting with gaseous medium. This is why I did not name the it "Real Sunlight and Sky"

“Venus belt” effect. “Acropolis of Athens 165AD” by Seb556 

How does it work?

This addon fills your Blender scene with air (or any gas of your liking) where density at the ground level is the highest and in the space - lowest, then a Star of your choice illuminates the air using physics laws - easy as that!

Lighting is calculated based on Rayleigh theory of light scattering through gaseous and liquid medium. Most critical part of the calculation is the fog. Like in real world, it changes based on altitude of observer.

Although my work is based on physical functions and research, my usual approach is to stick with what looks right. That's why there are some 'artistic' liberties taken (or rather, manually fitted values based on reference images) to make it stand out from the crowd.

"Wanderer" by Daniel Bystedt

Motivation

Outdoors lighting is essential and Blender still has no proper skylight system available. Preetham and Hosek-Wilkie sky included in Blender is very rudimentary and practically unusable. Even skylight systems in other software suites are very limited.

A common practice in almost all of CG software is that components like sky, sun, fog, water, clouds, lighting is considered separate entities and they do not interact to each other. In real, physical world everything influences everything. Even bigger issue can happen when different components are created by separate teams. It causes issues where one component looks amazing and realistic, but then everything else looks off and disconnected. Then artist`s responsibility is to find the issues, tweak the settings, add fake lights and other "magic" to connect the pieces back to a nice overall render. At least this has been my workflow for many years and it just felt wrong.

so...

I developed my own rendering system in GLSL for BGE (Blender Game Engine) with which I made most of my projects. It was made with PBR (Physically Based Rendering) in mind. System was time consuming to adapt to other projects so I started to play around with shader node editor. To my surprise, It was possible to "translate" most of it. And with many months of work, I managed to create a first usable version. Then a year later of constant research and optimizations I finally have this addon!

Now considering that I developed my old rendering system closely with ocean, clouds, rainbow (!) and weather system, this addon will grow into a considerable mess. This is why I am developing other components simultaneously to be later combined with atmosphere in a sensible way.

Why procedural skies?

Industry is still using good old HDRI light probe method to do outdoor lighting, and for a good reason - it is the simplest way to simulate realistic lighting conditions, without worrying that it will look wrong. After all it is a 360° snapshot of a real environment.

HDRI probes unfortunately are not able to capture one crucial aspect - the fact that sky is dynamic. Sky is not just a membrane of the imaginary rim of the sky, it has volume. Sky is atmosphere and atmosphere is a physical medium consisting of a blend of gases. Sky literally starts just outside of your eyeball and extends to the outer space. Sunlight travels through this medium illuminating, scattering and absorbing in it.

procedural skies to the rescue!

Procedural skies are more common in games industry, and there the industry have developed way past the static HDRIs, skyboxes or skydomes. Just take a look at the amazing sky system for Horizon Zero Dawn

During the years I have been working with, probably, every existing atmosphere system, starting from the good old O'Neil's "Accurate Atmospheric Scattering" method, to Preetham model, Eric Bruneton's planet rendering, and Hosek-Wilkie's physical sky model. Each of them have their strengths and, unfortunately, also weaknesses. In fact, none of the existing methods proved versatile enough worth my time making an addon for Blender. 

So I decided to develop a method from (mostly) scratch - The starlight and skylight system I wish existed!

and also...

I have helped my friends in film, games and animation industry with sky rendering and they have always told me that I should do this for a living! Well now is the time when I feel old enough to stop working for others and start working on what I (and, apparently, others) believe the most.

I have been freelancing all my life, I survive from salary to salary and this has impacted my focus on what I love the most - developing stuff for Blender.

Support me and you will have quicker responses from me and faster development speed for upcoming versions and new addons.

My vision is to do this as my main source of income so I can continue making great tools for Blender.


"Architectural Visualization" by Marek Moravec

Awesome time (and your money) saver!

I know, I have given all my previous resources for free and under CC license, mostly because I did not want to deal with consequences or pressure of responsibility. Now this time I am taking full responsibility for my work and giving it a proper price results in user feedback and constant updates. I have spent considerable amount of effort making it the best outdoors lighting engine in industry and I mean to keep it that way.


I`ve been using it for few projects and this tool already have saved me many hours of work and hundreds of euros on HDRi probes.

I did the test

With HDRI probe method it usually took me at minimum 2 hours per project to find the best matching environment map (desired sun position, overcast or not, urban or greens, camera altitude, etc.) . Then buying it, setting it in the scene, waiting for data to load, render, fine tune, render... till you get the desired result.

Then I used this tool and matched the lighting in minutes. That puts things in perspective.

"Victorian Style House" by MrChimp2313

Comparison to existing skylight methods and software

I have been using 3 of the most popular skylight models in the industry and eventually found them limiting. Here's why.

Nishita model (implementation by Sean O'Neil) was the first one I used. It is fast and, back then, quite revolutionary. But it is now surpassed visually by other methods.


I switched to Hoffman-Preetham sky  by modifying Simon's code, I got convincing results and used this method for a long time. It was simple to integrate, it is fast and it is still used in many industry products - NASA, three.js and babylon.js used my adaptation of it. Despite the fact that it looks good, it did not work as a HDR probe light source, the radiance was wrong and Earth's shadow was missing.

i moved on..

..to Hosek-Wilkie physical sky model that fixed the luminance and added proper Sunlight radiance. Problem with this method - now the lighting looked correct, but the skies themselves just does not look right at all, especially at lower sun elevation. Also there is a limited number of parameters for scattering (this technique relies on measured data-set) and volumetric fogging was missing. This is a great and accurate technique as long as you don`t see the sky itself. Also - does not work on spherical planet model and no Earth's shadow!

The closest method of real atmosphere is Eric Bruneton`s precomputed atmospheric scattering
It has almost all - great luminance model, visually closest to real sky, spherical planet model, Earth's shadow, multiple scattering, fog. Unfortunately, after many attempts I found it impossible to implement it in Blender and its Shader Node editor. It also requires pre-calculation of dataset. If I get smarter, I'll revisit the code once again.

products

While looking for similar products, I noticed that most of them use one of my listed methods above. All of the products contain not only the sky rendering, but the whole rendering engine and materials system. But considering that Blender itself does that for free, I think it is a fair comparison.


Lumion rendering package for architects come the closest with the features and it will cost you € 1499 for standard license and € 2999 for Pro.

Octane Render uses old Nishita's (1993/1996) method. $699 a year

VRay from ChaosGroup has VRaySun. It is using Hosek-Wilkie sky, Preetham and CIE (clear and overcast), all of these are analytical sky models and tied to an observer on ground. Price for the rendering package - €340 a year.

Autodesk Arnold plugin has Physical Sky, and again it uses same Hosek-Wilkie model, and it costs €685 a year.

In any case "Physical Starlight and Atmosphere" + Blender 2.8 is a pretty damn good value!

Who is this for?

I made it for myself. I have high standards, and I value my time. At one point in your expertise, you find yourself optimizing your workflow to be more effective. So I created the addon with simplicity and rapid deployment in mind.
Amateurs will love eye candy it delivers one button away! Pros will appreciate high customization options in the UI. Shader node enthusiasts will surely dissect the world node setup - make it yours. And look for 'Easter eggs' I left there. 

You and your computer will appreciate the low video RAM consumption, instant preview and ultra-fast rendering.

"Wasp Bot" by  Emiliano Colantoni


Features

  • All future updates included in the price
  • Visually accurate mathematical model
  • Physical stars (included in v1.1)
  • Works with Blender 2.8 - Cycles and Eevee
  • Made for PBR and HDR workflow
  • Fully procedural - can simulate unlimited number of sky conditions
  • Super high dynamic range, use with tone mapping (filmic, or aces)
  • Variable sun size and brightness
  • Variable atmosphere density and height
  • Procedural ground plane with variable height
  • Earth shadow (belt of Venus)
  • Accurate sun radiance model based on blackbody radiance theory
  • Unlocked viewer position - can simulate conditions at any altitude
  • Cheaper than having a full HDD with high resolution HDRIs for every possible sky condition
  • Rapid results - one click away to a beautiful render
  • Consistency - sunlight, sky and fog share the same code and parameters
  • Performance - load and render faster than HDRI textures
  • Memory free - does not consume video memory
  • Flexibility - simulate any planetary weather conditions
  • It`s yours - free to dissect the setup, re-arrange it for your needs.
  • Render and export your sky to any HDRI texture format for use in games or other 3D packages. Heck, you can even render a set of spherical panoramas and sell in a HDRI pack, making more money than you spent on this addon.


"F1 Racer Eevee Demo" by katarn66

What for?

  • rapid prototyping

  • concept art

  • night shots

  • high altitude, such as aviation, renders

  • low-earth orbit renders

  • architectural visualization with full day/night cycle

  • automotive renders

  • nature renders

  • indoor renders where skylight enters through windows

  • simulate how it might look inside gas-giants as Saturn or Jupiter

  • exoplanet renders, make Sun a red giant or blue dwarf, etc.

  • Tatooine sunsets


"Car Demo" by  Mike Pan

Upcoming work

This product will have tight integration with upcoming line of free and paid addons.

I am making them as plugins, because others might not need all the features of the atmosphere, this also reduces the clutter.

  • physical clouds (included in future updates) - in progress

  • binary stars as sunlight (included in future updates) - last fixes

  • physical rainbow - in progress & last fixes

  • physical ocean/underwater lighting

  • physical auroras

  • physical Moon and celestial objects

  • physical sun position calculator based on year/month/day/time and geographical location for city planners, architects and landscape designers

  • 2.79 and Game Engine support (free) (already working, but needs changes in UI)
  • LuxRender support
  • 'advanced' tab where to hide all the clutter
  • streamlined UI
  • sky presets system
  • in-depth documentation


I welcome suggestions, criticism and feedback, after all - it is a community project.

Why trust me and RIG on this?

RIG (Riga Innovation Group) is a collective of highly skilled industry professionals. We value our time so we use best tools we can.

I've been around Blender community for more than a decade. Those who know me as 'martinsh' in Blender forums, will know my love for Blender Game Engine. Till this day I have published countless of free resources on BlenderArtists forums, my blog and my YouTube channel. I am an active local CG, VR and Blender community member. I`m traveling to Blender conference every year where I even led a shader workshop once. I am guest lecturer at universities and now a teacher in art school - teaching my own experimental course in 'Lighting and Materials'.

I have studied traditional arts for 13 years, worked as a painter and illustrator. For the last decade I have been working for computer game, film, medical and scientific VR simulation industries. I became lead technical artist and CG supervisor, with a specialty in photo realistic rendering.
My responsibility have been rendering pipelines and shaders for real-time graphics engines.

I have worked on short and feature films as a CG and consulting studios on incorporating 3D CG into traditional animation.

Now after more over a decade of different jobs, I have my own company where I am condensing my knowledge into upcoming line of Blender addons. With a focus on rendering, photo-realism and features that does not yet exist for Blender and even any other CG software packages.

first "reviews":

          


Story of "Physical Starlight and Atmosphere"

more to be added

This product is a result of a decade of scouting for ideal sky rendering system. I have been trying out different existing techniques and coming up with mine, but in the end never really settled on one.

It must have started with my introduction to GLSL by legendary Mike Pan. I remember bugging him with all kinds of questions. He was, probably one of the first ones who used custom GLSL scripts for Blender. I got hooked and came up with this (I can`t believe it has been already 10 years!)
Shortly after I did cumulus cloud generator
Then a year later I found Sean Oneil`s GPUGems2 article and implemented it in Blender:
Getting closer to proper 3D clouds (2011)

2012 - I work on my other passion - water rendering. Combined with sky

a year later..

2016 - my experiments with PBR skylight system in Blender viewport:

First version of height fog node setup (i could consider it a pre-alpha of the add-on)

...and the following gradual updates

features trailer: