I’m creating volumetric clouds in Cycles. The result is good visually speaking, but the render time is terrible. Yet, I have an RTX 3080 Ti.
The problem is concerning overlapping volumes. The render time is still fast if there are two or three overlapping volumes, but it increases exponentially as I add more overlapping volumes.
I also had good-looking results with clouds made from geometry nodes, but the render time was terrible because of the overlapping volumes.
I experimented a lot with volumetric rendering and it’s complex to get good results. There are many parameters and large volumes create artifacts. Without positioning volumes that overlap, it is far more difficult to create scenes with clouds, fog and haze.
Possible solutions: As a solution or workaround to create an atmosphere with clouds and haze, I created a large volume that combines two shaders as groups: “Clouds” and “Haze”. In the atmosphere material, I combine the density of the two shader groups. That way, I’m able to come up with only one volume, which is faster. The problem is that I need to increase the "Max Steps" for example to avoid artifacts because the volume is really large. The render time is still slow, but not exponential. There are caveats. I don’t have much control over the placement of the clouds and I’m limited in quality and render time to create a real-size atmosphere.
Another solution that I would probably try is to create one volume with many cloud groups inside to represent different cloud fragments assembled. By combining the density of each fragment, I can create a more complex shape in one volume. I can also control the position of each fragment represented by groups. That would work well for a small number of fragments since I have to position the fragments manually inside the volume shader.
In generally, it is faster to have one large volume with a noise texture inside to create different clouds than having one cloud created from many overlapping volumes.
Question: Is there a way to deal with more complex volumes when they are overlapping without having an exponential render time?