Isn't everything in the world a volumetric?

I was experimenting with a node setup, and it occurred to me, pretty much everything is basically volumetric (in as much as, we have a lot of empty space between our atoms, and indeed, in our atoms).

So I did an experiment. Default cube with just a volume shader, rendered at 10x density each time. At around 1000 density, it starts to look solid (3rd iteration). By the time you get to the 6th iteration (1,000,000) it’s a solid black cube.

Shouldn’t volume be the default PBR shader, since essentially, everything is volume in RL.

I’m by no means an expert, but I was watching a lecture about light transport simulations, and one of the main reasons that the Maxwell equations aren’t feasible on their own for rendering is that it models light on a nanometer scale. Though physically correct, there is a realistic limit to our computing power and thus we need a computational model that approximates how light works in the real world.

Everything in CG is a cheat. We shade our objects to look like they are skin or glass or have texture, but it is all a cheat to approximate reality with the resources we have available. Modeling objects to the atom-level would be not only impossible in the scale of a human’s lifetime, but in the limited computational abilities we have at this time.

5 Likes

Basically what Hunkadoodle said, everything is an approximation. Shading models get more refined year after year, but they still only approximate reality. It’s an efficiency problem, where you strive for the highest “accuracy vs. time” ratio.

If you look at the old “Cycles volume shader” thread, you’ll see awesome examples of hardsurface models being “carved” out of a box with triplanar-projected textures.

(although I can’t find these specific images at this link)

1 Like

I agree absolutely with you. However, my post was on the premise that volumetrics only get attention for things such as light haze, fog etc. when in fact, given more, proper attention, PBR would become a thing of the past, because using volume shaders for literally everything would be the most accurate rendering model available.

For the record, my “basic cube” tests didn’t show a marked difference in render time on GPU. Slower, yes. Unbearably slow, no.

This is a typical problem of scale. Sure, it might work fine for one or two objects, but what happens when your scene has 1000 objects? 10,000? That’s when things start to hit the proverbial fan.

I know, and I appreciate that the HW may not yet be up to it, but when it is, to quote 2 minute papers, “What a time to be alive”

EDIT:
I may, experimentally, take one of my more complex scenes. strip out almost everything except one model (still complex), and see if it’s even possible just using volumetrics.

1 Like

The problem is, the current volume shader implementations dont include terms for surface normals or refraction, so you cant simulate glossy or reflective surfaces or glass using volume shaders in cycles.

I have used the volume shaders to create a more accurate sub surface scattering shader its on blendswap) - but I still had to use glossy and refraction nodes to simulate surface effects.

1 Like

(I was actually watching the good Dr. Zsolnai-Fehér’s light transport lectures on YouTube. :wink: )

1 Like

The question is : why do you want to do that ?
Most of material send back photon after it has been “deep” inside the material probably less than 1 for many millions so except if you use many millions ray simulation per pixel, you haven’t any benefit to use volume instead of surface.
For normal case, principled BSDF is accurate enough to fake the reality.

2 Likes

And there’s the rub, “accurate enough”. But in the real world, everything is volumetric.

I understand the need to simulate, and I get that current volumetrics don’t allow for metal, dielectric etc. (though if the volume shader was accurate it probably could).

My point is, at some time in the future, when hardware makes today’s hardware look like a Casio calculator, maybe we will have true, real life shaders to play with.

Of course, I’ll probably be dead by then, but it’s a nice thought.

Great explanation!

Although I have seen many still images that were AMAZING, I use Blender for simple animations and have seen very few movies (even major movies) with CGI that “tricked” me with their “cheats”.

Even Pixar… there has been impressive scenery, but the character animations still don’t look any better than Walt Disney films. “Snow White” still blows me away and that was 1937.

Thanks for listening.

1 Like

… every dwelling will have a “RAM Room”.

The keyboard, mouse and monitor will return to their original “dumb terminal” status.

You also have to model moving all those points if you want to animate anything.

As for time taken to render: as pointed out, most real objects bounce or absorb light in the first millimeter or so. So you could, for most things, render a very thin, dense point cloud just under the surface (like using the solidify modifier with a negative offset) instead of trying to fill the entire volume, and still be physically accurate.

But for very bright lights or thin materials, things need to be rendered more deeply. And things like water and air need to be completely filled, though not so densely as solids.

Which brings up another problem: even though air is very sparse compared to a solid, there’s a lot of air volume. Air is about 1.2 kg/m³, where human muscle is about 1100 kg/m³, and steel is like 8000 kg/m³.

A human body takes up about 0.07 m³, while the volume of air surrounding a human in a scene is at least 2 m³ (a 1m x 1m square the human is standing on, 2m high), and that’s just where they’re standing. So you’ve got 1.2 kg of particles surrounding a human who is filled with 77 kg of particles.

Seems like not much, but even a small bedroom is 30 m³ (about 3m x 4m floor, and about 2.5m high), or 36 kg. Move up to a 2-car garage and we’re around 170 m³ (7.5m x 7.5m, 3m high), or 204 kg. A typical Wal-Mart store has a volume of almost 90000 m³, or 106000 kg of air.

Start rendering parking lots, forests, little houses on a prairie, and so forth, and the number of particles in your solid objects become irrelevant. Put a lake in there and you’re done.

1 Like

Purty interesting.