I would like to have realistic voxel clouds in Unity game - I found a very promising article on fast fluid simulations, however the the output of the algorithm itself is 3D grid of cloud densities (=3D texture). My question is - how can I render such 3D texture into clouds?

My research so far:
The original article suggest two pass rendering of particles for each voxel, in first pass reading output after each particle(!) is rendered. This approach is both slow and outdated not leveraging modern shader pipeline in addition to being overly complicated.
Searching for voxel clouds in Unity suggests using ray marching while the actual implementations does not seem to do any ray marching, but rather using Fractal Brownian Motion to same 2D noise texture. This approach gives decently looking results (with some problems addressed in horizon zero dawn slides), but would not make use of my realistic simulation.
The most promising source I could find was this answer, namely last paragraphs. However the answer itself rather vague on actual algorithm and links it provides are either broken or inacessible.

  • \$\begingroup\$ From all information I managed to find actual ray marching is way to go, but sampling density along the ray(which is not a problem) is not sufficient to render the cloud - it does not take in account lighting, currently I am failing to derive the correct equating/algorithm for that. \$\endgroup\$
    – wondra
    Commented Jan 5, 2017 at 14:06
  • \$\begingroup\$ I implemented Raymarching in Unity Engine github.com/smkplus/UnityRayMarching \$\endgroup\$ Commented Nov 18, 2017 at 19:26


You must log in to answer this question.

Browse other questions tagged .