raphael-ernaelsten / Aura
- среда, 14 февраля 2018 г. в 03:16:24
Volumetric Lighting for Unity
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”.
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).
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 :
Here’s the 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.
Aura strictly requires full support of the following elements to work :
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.
Aura uses the following works :
About the provided demo scene :
Please let me know if I forgot any reference.
For their time and help, I would like to cheerfully thank :
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;
For several reasons :
I didn’t expect that, thank you! You can click on the following button for making a donation via Paypal.
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.
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.
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.
I couldn’t tell. I didn’t do any specific work to that end as I don’t have the hardware to test..
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.
There are many ways you can help me facilitating the development of Aura :
Two sure possibilities :