Physical Starlight and Atmosphere Addon for 2.8 (v1.1)

Knowing how essential outdoor lighting is and the fact that Blender has no proper skylight and sunlight systems available (not built-in nor in market), I made an addon for myself and my team. I’ve been using it for numerous projects and it started to take a shape of a product that others might benefit from too!

I present you…

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

Physical Starlight and Atmosphere

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

Apart from our Sun, this addon can simulate any other star. Sky is not a 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. That is why I did not name the it "Real Sunlight and Sky"

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 and Mie 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.

ground to space transition made easy:


“Wanderer” by Daniel Bystedt

Motivation

Outdoor lighting in is essential in computer graphics 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.

Variable atmosphere density level

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) a 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

Great 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.

Hoffman-Preetham sky by modifying Simon’s code, I got convincing results and used this method for a long time. 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 okay, it did not work well as a HDR probe light source, the radiance was wrong and Earth’s shadow was missing. Preetham sky is an analytical model using fitted values for observer at the ground level.

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. Also there is a limited number of parameters for scattering (this technique relies on measured data-set), and it does not simulate sunrise and sunset. This is a great and accurate technique as long as you don`t see the sky itself or keep the sun well above the horizon. Also - does not work on spherical planet model and no Earth’s shadow!

The closest ever 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. 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.

VRay from ChaosGroup has VRaySun, but it is using Hosek-Wilkie sky, Preetham and CIE clear and CIE overcast models. Price for the rendering package - €340 a year.

Autodesk Arnold plugin has Physical Sky, and again seems like it uses 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 and my team. I have high standards in regards to lighting and materials, 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 accuracy, 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

  • Most versatile outdoors lighting setup so far (probably in any software)
  • Visually accurate mathematical model
  • 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
  • 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.
  • All future updates included!
  • Works in Blender 2.8 - Cycles and Eevee


“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 (after binary star update)


“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 next update) - in progress
  • physical stars (included in next update) - in progress
  • binary stars as sunlight (included in next update) - last fixes
  • physical rainbow - in progress & last fixes
  • physical ocean/underwater lighting
  • physical auroras
  • physical Moon
  • 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)
  • ‘advanced’ tab where to hide all the clutter
  • usability tweaks and streamlined UI
  • sky presets system
  • tutorials
  • 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 tools that save time and deliver the expected results.

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. 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”:

Videos and tutorials

teasers and trailers:

//functions trailer

//teaser 05

//teaser 04

//teaser 03

//first 2.8 Eevee test

Links (all coming up shortly)

Installation

Documentation

FAQ

Available on

Gumroad
BlenderMarket

Price:

I`m selling it for reduced price till the next update! (original price of $58)

  • Standard - $38
  • Studio - $128
37 Likes

have you tested in the eevee_merge8 branch of upbge?

does it work on spherical scenes?

I tested the upbge eevee branch, but not this addon. Game engine (and all legacy) compatibility will be added in upcoming updates. It was made for game engines so I don`t see why it ssould not work :wink:
Spherical fog will be included as well. For now flat-world physics are used.

2 Likes

Short story of “Physical Starlight and Atmosphere”

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 in 2009 with my introduction to GLSL by 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 played Crysis back then and I was inspired by the vast landscapes and beautiful rendering techniques.

It was more of an exercise in GLSL filters, especially showing off the godrays.

Shortly after I did a basic cumulus cloud generator. I am using similar technique now for the volumetric clouds update for the addon.

Then in 2010 I found Sean Oneil`s GPUGems2 article and implemented it in Blender:

2012 - I work on my other passion - water rendering. This was the time, when I realized how important is the visual consistency - water looked great only when I got the skies and fog react in connection with sky and Sun. Sky model was based on Preetham`s method.

2013 - improved water surface and coastline rendering. Notice how important is the outdoor lighting. The better the sky and lighting, better the appearance of water.

adding buoyancy and dynamic objects

2015 - Terrain rendering combined with skylight

Most games do fog wrong - fog is not a single color that changes its opacity. Fog depends of the lighting conditions, color of the surrounding objects and scattering/extinction parameters.

cloud shadows projected from the Sun

distance based adaptive quadtree terrain in BGE

Atmospheric scattering can help in non-photorealistic rendering too. Geometric shapes and gradients combined with the shader give nice effect of the scale.

in 2016 I found Hosek-Wilkie Physical sky and implemeented it in Blender Game Engine.

2016 - I made a stupid PBR skylight system in Blender viewport using multiple spherically scattered light sources that sampled their color from the environment map.

First version of height fog node setup (i could consider it a pre-alpha of the add-on)
Initially I made it as a helper tool for concept artists.

…and the following gradual updates

Around here I realized that this should become a commercial addon

volumetric clouds test
clouds by Gatis Kurzemnieks (https://www.rendereverything.com/procedural-volumetric-clouds-in-blender-eevee-and-cycles/)

latest version of the Addon in action

6 Likes

Ohh Jesus please :scream:
We need a spherical one pls ive made something but it uses a complex setup will showcase it on my You Tube channel soon its only a matter of time !!!

Fred/K.S

@martinsh don’t u have anything i can use for dynamic water yet? :smiley:
https://blenderartists.org/uploads/default/original/4X/5/3/4/53472b4f997696c532125e9e724004e6cdf7fb10.jpeg

Fred/K.S

:thinking: @martinsh why even give all this stuff out for free?
(:sneezing_face::sob: ITS SUCH GREAT WONDERFUL WORK BUDDY, What more can i say? :slightly_smiling_face::+1:)
is the public really worthy of having ll this GOLD yr giving out cheerfully?

:thinking:
why don’t u make something with it or a Game or somethin :thinking:

Fred/K.S

that dynamic water system was rather slow and difficult to setup. i’m working on a new setup that can be used with cycles and eevee. And eventually Upbge :slight_smile:

5 Likes

Just purchased this. It’s great :slight_smile:
Could you please let me know how to get atmospheric perspective in a scene? If I have a city scape for example and want the distant buildings to fade due to the atmospheric depth in between the camera and distant objects.
I can use the cube method adding a cube covering the scene and then a volumetric shader on it but I’m sure I can do it with this add on and scrap the cube, but not sure how.
Any tips :slight_smile: ?

3 Likes

Wonderful man Iam o happy bro
Thks :scream:

Fred/K.S

Looks really cool. It’s quite an embarrassment for Cycles that basic, functional physical sky has to be a paid addon. It should be a basic part of any renderer, even experimental ones :slight_smile:

2 Likes

I like cycles pbr but i don’t like the rendering time it seriously kills my cpu .

Hence why i end up hatin Cycles at best and opt for Eevee and UPBGE.

Fred/K.S

I tried to give you an example of what I mean -

This is whats happening for me. In Eevee I get some nice atmospheric Perspective but in Cycles the texture is black. I dont know what im doing or not doing in order for both renderers to work properly with the scattering.


2 Likes

Hey, Gregg!
First of all, thank you so much for the support!
I am happy that more use cases will be a proper test for the addon.
I honestly did not test the volumetric fogging in Cycles before the release :confused:
After testing it myself - It appears that “convert shader to rgb” node is not supported in Cycles. I will have to ask developers for the answer, but meanwhile i’ll look for a workaround. Maybe “add shader” could work too.
I’ll get back to you once i figure this out.

3 Likes

Brilliant mate. As soon as you get it sorted let me (us) know. Thanks again :slight_smile:

3 Likes

I agree, proper physical sky is essential, but you’ll be surprised how much of the existing sky methods don’t really work in any situation. For example Hosek-Wilkie sky ( used in most render engines) does not have sunset/night sky, no altitude and no fine-tuning possibilities.
My method is pretty much what i would want a perfect physical sky to do. It did not exist before and that’s why I spent sifnificant amount of my time to do this.

3 Likes

Brilliant!now this is an add-on i will Purchase.
Great job!

Hosek-Wilkie is pretty much what I’d expect a physical sky to do, when bundled with a renderer. Night usually requires some more artistic freedom anyway, to show stars, etc… so one usually goes about it by blending it with night skymap along the sunrise/sunset. Mainly, fine tuning possibilities are not always a good thing. Great thing about Hosek-Wilkie model is mainly that it’s simple to use, not overloaded with parameters. Basically it comes down to just ground color and turbidity parameters. Pretty physically based.

That being said, that’s what I would expect stock physical sky model every renderer should natively be bundled with to do. Yours is more advanced model, which is fine since it’s a third party addon. In such case, it indeed makes more sense to have more complex model.

All I meant was that currently, Blender has only half complete, unusable implementation of the Hosek-Wilkie model left in very embarrassing state. :confused:

Finally released, thank you so much for all the hard work. :heart: :+1:

Not sure if you’re looking for feedback, and you’re probably aware of this, but screen-space reflections seem to to get lost in your StarlightAtmosphere node. Or maybe I’m just missing something.

Other than this and @Gregg_Hartley’s Cycles issue (I don’t really use Cycles though), it’s all amazing stuff. :slightly_smiling_face:

1 Like

Awesome work on this! It’s clear that you’ve taken the time to really dig into the existing solutions, see what works (and what doesn’t) and come up with a solution that produces outstanding results with minimal effort. I just purchased the addon and am looking forward to running it through the paces.

Out of curiosity, do you know what e-on’s Ozone used as its sky model? I always thought the sky and clouds in Vue were some of the best out there.

1 Like