ygjb / Aura

Volumetric Lighting for Unity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Aura - Volumetric Lighting for Unity

Aura - Volumetric Lighting for Unity


Please read this document before using this solution.

An extended version of this document can be found as the "Starting Guide.pdf".

About Aura

Aura is an open source volumetric lighting solution for Unity. The development is hosted on GitHub and the latest package is published on the Asset Store.

Aura simulates the scattering of the light in the environmental medium and the illumination of micro-particles that are present in this environment but invisible to the eye/camera. This effect is also called “volumetric fog”.

The directional light is scattered into the air and illuminates the invisible micro-particles.

Aura uses a globalist approach that makes every lights and injection volumes interconnected. This means that when you locally modify the environment somewhere, it will automatically affect all the lights and injection volumes. No boring and redundant per-instance setup ...

Also, all lights and injection volumes are dynamic and then, can be created, modified or destroyed at runtime.

Aura packs a bunch of features such as full lighting support, injection volumes and particles illumination.

Click here to view the recap of all the features of Aura (on YouTube). Click here to view the recap of all the features of Aura (on YouTube)


Overview

Aura relies on Bart Wronski (@BartWronsk)’s Presentation and particularly the idea that the volumetric lighting could be solely computed in the frustum and pre-integrated in a 3D texture.

Starting from that, 7 additional points were targeted :

  • Dynamic quality (not fixed ones)
  • Ease of use (not hours of integration or many parameters to struggle with)
  • Make it cascaded (for further range) -> Not implemented yet but bases are set
  • Use Unity’s full lighting system (not only one directional light)
  • Use injection volumes (locally modify the density, lighting and scattering)
  • Illuminate Unity’s particles (to have macro and micro particles volumetric lighting)
  • Plug other processes (so we could have volumetric GI, custom smoke, …)

Here’s the schematic overview of Aura’s internal process : Schematic overview of Aura's internal process

Click here to visit the online API Documentation.

Please note that Aura is meant to be an evolving project. Importing updates might require re-tweaking, re-assigning Aura components or deleting the asset’s folder prior importing.


Requirements

Aura strictly requires full support of the following elements to work :

  • RenderTextures (3D as well)
  • Texture2DArrays
  • ComputeShaders

Please verify that the support of these elements is not limited especially on lower platforms.

Historically, Texture2DArrays were introduced in Unity 5.4 which makes it the lowest version compatible with Aura.

However, multi-threaded ComputeShaders compilation was introduced in Unity 2017.2 which makes it the advised minimum version.

The main ComputeShader has many variants (for performance purposes). This will lead its compilation, and therefore the import of the package in Unity, to take a long time (usually from 20 minutes to an hour!). PLEASE DO NOT KILL UNITY AND WAIT UNTIL THE IMPORT IS DONE. If you did kill Unity, or experienced any trouble, during importation, re-import the file Aura/Shaders/ComputeShaders/ComputeDataComputeShader.compute

Also, please also understand that you might need a Technical Artist or a Graphics Programmer if you want to make Aura fit some special requirements.


Acknowledgement

Aura uses the following works :

About the provided demo scene :

Please let me know if I forgot any reference.


Special Thanks

For their time and help, I would like to cheerfully thank :


License

Aura is released under MIT License. Please refer to the license.txt file located in the Aura/License folder for the full license.

TL;DR;

  • You can sell and make money with your projects that use Aura (or any derived form)
  • You can do whatever you want with Aura but not sell Aura (or any derived form)
  • You must propagate this license
  • There is no warranty of any kind
  • Please consider crediting Aura (or any derived form) in your projects, with the provided logo if relevant

FAQ

Why releasing Aura for free?

For several reasons :

  • Aura was actually never meant to be sold. It was a personal challenge I set to myself. When people asked me about its price, I was just answering that such a solution would be worth around 40$.
  • I am a self learner. Half of the knowledge I have is from dissecting sources from people that shared them. I wanted to give this opportunity back to the community. As a Teacher I really feel like this is a good deed.
  • I just want to make the Unity community thrive and make Unity better on my own level.

Can we make donations?

I didn’t expect that, thank you! You can click on the following button for making a donation via Paypal.

You can click on the following button for making a donation via Paypal.

Will Aura’s development be continued?

Hopefully yes! At least until Unity drops the legacy lighting system. Furthermore, I still have a bunch of feature ideas to implement, fixes and todos.

Will Aura support the Scriptable Render Pipeline?

Anyhow, all this work cannot stop with the end of the legacy pipeline. So yes, my plan is to make it work with the SRP for the long term continuation. It may however be part of another branch/repository.

Does Aura work on Unity xxx?

The technical requirement for Aura are specified in the Requirements section. The minimum version possible for Aura is Unity 5.4 but the release is targeted for 2017.2.

Does Aura support VR?

I couldn’t tell. I didn’t do any specific work to that end as I don’t have the hardware to test..

Why did it take so long?

Aura was a personal project, a challenge for myself. It was developed during my free time. I am a full-time Technical Art Teacher and aside, we released our game (Outcast Second Contact) a few months ago. This, combined with my family life gives a pretty good idea of the amount of time I was able to manage for Aura.

How can we help you developing Aura?

There are many ways you can help me facilitating the development of Aura :

  • You can spread the words about Aura.
  • You can branch the repo, improve the code, develop new features, fix bugs, ... I’ll merge with the Master if relevant.
  • You can share your work made with Aura (on my Twitter) or tips using Aura.
  • You can make a demo scene and send it to me. (Make sure to own the content of it so I can publish it in the package)
  • You can make a donation, like previously said.
  • Anything that can help making Aura a great project!

How can I keep updated about Aura?

Two sure possibilities :


Contact

Feel free to contact me : @RaphErnaelsten

View Counter

About

Volumetric Lighting for Unity

License:Other


Languages

Language:C# 79.0%Language:HLSL 13.2%Language:ShaderLab 6.9%Language:GLSL 0.9%