Smoke and Mirrors

Final render in 4k

A chain of random events led me to create this render. I did some car, and there in the search lamp it was necessary to make fresnel lens. At the beginning i made them by a simple bump texture, but it didn't look very good. After that, i decided to make it by geometry. I began to study how fresnel lenses are generally arranged, read articles, and plunged deep into it. As a result, i made a physical-correct lens.

Lens Hi Poly 32-512 Chamfer.jpg
Lense by it's own

3dsmax 2021-03-26 22-08-30-37.png
It's a lot of polygons. But it is necessary for right refractions.

I did even two lenses - convex and concave. For the test, i tried to make the simplest binoculars from them.

physical-correct binoculars

But i wanted to look at the behavior and trajectories of all the refracted rays of light. And this is clearly visible in the fog. But rendering a real volume caustics is one of the most difficult and resource-intensive tasks for a render engine. I tried Vray, but the result was not good.

To make the caustic in vray to be enough visible — i had to turn on "direct visualization" in caustics menu. On the maximum samples, at which the scene does not fly away beyond the RAM limits - it gave this result.

So i started to trying renderers one by one. For some or other reasons - Maxwell didn't make it, Arnold didn't make it, Octane (and his clone) didn't make it, Redshift didn't make it, Corona (with a different settings in dev-tab) didn't make it, LuxCoreRender at that moment didn't have Max plugin. So, without any hope, i installed Indigo Renderer. But surprisingly, he did well. Thanks to "Bidirectional pathtracing with MLT" algorithm.
Simultaneously, i remembered the movie "Iron Man 2", where Tony, while creating a new element, almost burned the room with a laser. I thought - let's try to make a laser.

Good old Vray gave up

But Indigo did it well

Volume Dispersion

A parallel directed beam of light (from an almost point source) is hell for true-pathtracing engines. And in addition with a volumetric caustics - it's double-hell. But indigo more or less managed it. Then i thought - it will be great to make a scene with a bunch of different elements. So that the whole scene is illuminated only by this laser beam, without any background lights or other lights. In general, the idea seemed cool to me - a single small plane that does everything - laser beams of volumetric caustics, GI, refraction, projection, dispersion, and everything else.

Well, i started to create everything that came to mind. It took quite a lot of time for each element, because each render test is an hour. Meaning just render a little picture to see if this element works - it's a hour of time. Sometimes i even left it to render at night, and in the morning i looked at result. For example, the two images above (with dispersion, and with blue glass) are rendered in this way, at nights.


Typical render-test at early stages of rendering. Abstract looking stuff.

Main idea was to squeeze in to one scene as many elements as possible. As a result, we have:

1) Classic dispersion prism. Well, not a completely classic, i had to work with the shape and parameters of the glass to make it do what i need. Idea of dispersion-heart is rooted in tests on the FryRender engine, which i dabbled in long time ago. It was modelled in Rhinoceros 3. From that scene, i pulled out the heart-spline, and reworked it a little.


A big problem was created by reflected parasitic rays flying in the opposite direction, near the main white laser beam


It took a long time to get rid of these parasitic rays

2) My logo. I thought: how would i make a large volume figure from a single beam? It takes some time, and i came up with this option, which we see in the scene. Good old reflections.


3) While studying articles about glass and lenses, i took from SLR cameras the idea of splitting the light beam. The same principle is used here. This allowed the scene not to be limited to one element, and to make a whole bunch of elements.

4) A box with glowing circles. Here i wanted to make a some stencil, but with a more or less uniform brightness of all the elements. This was solved by the good old diffuse scattering, and frosted glass.


Tests of box

5) Three R-G-B beams. It was one of the first ideas - to split one ray to three, and then each of them saturated to color of that glass, which he was going through. And after that, beams must go up, and hit the ceiling, so that creating a smooth red-green-blue gradient of scene lighting. It almost non visible in final render, because of main white beam is giving a too much of scattered light.

Render of same scene without fog. Here we can see the idea of RGB-gradient light.

6) The projection with the smile came from my memories of some sort of stained-glass windows on cathedrals, and the sun lighting from them, creating beautiful multicolored rays. But in this current scene, the stained-glass windows felt like out of place, so i replaced them with a crazy-smile glass. However, it require a certain area of parallel rays that would simulate the sun. This is where our fresnel lens came in. With one lense, we scatter the beam, and with the second lense, we make it parallel again, but already on the area we need.

Here again, we can see the parasitic rays reflected back, which created problems. In particular, on the wall and floor on the right you can see a piece of smile. I partially solved this by putting "flat washer" on the light beam.

7) The star was born one of the last, and i squeezed it into the scene after i had set up the camera and arranged all the other elements. I wanted something cool, blue and orange. And that the rays pass through each other, reflecting from the same mirror, but on a different trajectory. And idea of such a star was came up in to my head.


One of the first variants of laser trajectory

8) Laser itself. It was a challenge to create a directed light beam of parallel rays, since indigo does not support direct lights. I tried several different options, but almost all of them either did not work, or sent the rendertime into space. And as for the visual appearance - technically it's just an inconspicuous black cylinder, but i wanted something more spectacular, so i built a sci-fi style case. Initially, i wanted there to be glowing parts, but indigo couldn't provide a correct SSS with such a bright light source.


Attempts to make SSS work normally - failed


Indigo didn't find paths to the light. As a result, the red (as i planned) sticks did not «light up»

9) Last of all, i have made all these coasters, objects, brackets, sockets, and other things.

10) Also there were many other ideas, but they could not be implemented. They were either rendered for a thousand years, or they just didn't work in indigo.

Along the way, i had to solve about a million different problems that constantly appear. I think it would be easier and faster to build this scene in real life.

There are also defects in the final render that indigo could not overcome. There are several of them, but they are of the same type. An attentive viewer has probably already discovered them.


If you look at the first (and second) glass on the left, you can see that the laser is not visible behind them

This test shows that for some reason, indigo really does not want to find paths for the refracted laser. If the laser beam is in the direct visibility, then it always find it, but behind the glass - finding is many times worse. And even the reflected laser beam not always appears.


That's how it rendered. In a lots of places we don't see a laser beam in refractions and reflections.


And that's how it must look. Lots of reflections/refractions of beam, and no insanely overbrights on the floor.

And now, the cherry on the cake. Do you have such a stable expression? Cherry on the cake. Meaning this is final sweetest fact. Rendertime in 4k was 720 hours. That is a month. For one frame. Of course it is GG EZ for big render-companys, but that's why they're big.

Render time.png

...Sorry if my english was a little bit crappy.
I express my gratitude to colleague Konstantin, the final 720-hours frame was rendered on his computer, and not on mine.

721 0 850 1