Cycles Development Updates

OIDN (and I believe Optix) work fine on LuxCore with Path/MLT and Bidir/MLT, so the same should carry across to Cycles

When it comes to neural networks, speaking of “should” often doesn’t work. Neural networks can have very unexpected knowledge gaps. It may also fail miserably. The only way to know whether it works is to try it out.

2 Likes

Even without the actual data we don’t know a whole lot and they refused to be coaxed earlier this year when I tried asking :slight_smile: https://github.com/OpenImageDenoise/oidn/issues/51

  • We don’t know what renderers were used to train OIDN so far
  • We don’t know how many scenes were used or the content of those scenes (did they contain subsurface scattering, volumetrics, motion blur, transparency, caustics, hair, etc. etc.?)
  • We don’t know the sample counts or sampling patterns used when generating the test scenes (e.g. is denoising quality affected by using PMJ vs SOBOL?)

That it works so well in blender so far is pretty amazing.

1 Like

Is the blender 2.91 windows build 's builds image viewer is broken? I am bot able to view any images in texture paint panel, uv editor panel or image viewer. I know it is under heavy development. Still :grinning:

I have created an open dataset for Cycles and provide it on request, which happened 4-5 times (due to many changes this is currently on hold though). However, I don’t know whether Intel or Nvidia requested it and are actually using it for the training.

I was reading this about Cycles + displacement memory optimization link

Just realized that Blender was computing all objects in my scene while they were hidden, they weren’t excluded from render.

Any news if this will be fixed in future developments ?

If not, which render engine do you recommend using that allows microdisplacement to be rendered without memory problems?

Thx in advance

If you can afford it try the corona renderer. Since version 5 IIRC it has a 2.5D displacement which optimizes speed and memory usage.

1 Like

Pretty much every other render engine does microdisplacement better than Cycles, but I’ve been using Octane lately and it’s insane how fast and memory friendly it is

5 Likes

The Adaptive Subdivision already does some optimization based on the camera view, using a lower dicing rate for object that are far or outside of the view.
It’s probably object-based, so if your object is huge like the moon in your example, it sure isn’t enough. But slicing the moon in several objects could potentially help already.

Cycles really needs better memory management with texture tile caching and smarter displacement for GPU rendering. It’s crazy to run out of VRAM so quickly even with a 12GB video card.

5 Likes

Yes, splitting the mesh into different objects does help with memory use.

Also, the default values of the Subdivision settings on the Render Properties tab are too high IMO, I changed my defaults to be like this:
image
And it helps a LOT, it obviously depends on the scene and the final resolution you’re rendering to, but I think that’s a good starting point.
And a final tip, which I think is a bug in cycles, is to set the subsurf modifier’s Levels Viewport to 0, if you set it higher it will subdivide the mesh again on top of the value you set on the Subdivision settings.
image

11 Likes

Damn, I thought that bug had been fixed already! Thanks for the reminder.

The situation regarding OpenSubDiv in general is getting better (because of the work by Hans), but the devs. unfortunately don’t appear to be in any hurry to fix the issue you are talking about (as part of microdisplacement being a low-priority feature even though it is standard issue in most render engine).

Microdisplacement is still worth using though because it, from 2.8x on, actually interpolates UV coordinates correctly (though your scene in the viewport might look different).

1 Like

To improve Cycles realism I’d also love to see proper micro-roughness added.

Have a look at this interesting Blender Artists thread for more info:

4 Likes

What is “proper”? It’s a property you can’t obtain, only base it on observations. This setup allows control of falloff curve shape and effect, I never needed anything more and it’s very intuitive. I’m not exposing normal due to lack of input can lead to garbled data channel, but I made this before I knew I could use a dummy bump node to fix it.


The fLerp group node is just a color mix node, just for floats. Use RGBMix node if you don’t have something similar, or the new map range.

1 Like

I’d like to see an implementation that mimics the visual real-world behaviour as accurately as possible. Did I formulate that properly? :wink:

The most important thing Cycles needs is a full time dedicated developer.

106k euros monthly with 20/21 hired devs and no one on Cycles… duh… :expressionless::expressionless::expressionless:

13 Likes

Imagine if they had a workhorse like Pablo Dobarro working on Cycles.

10 Likes

Well, diffuse shader is an extreme simplification of a volume shader, but it still does the job. I had a quick look at it in the other thread, and I guess it’s ok. Not sure if dot product is quicker than 1-facing, but the latter does allow normal input (which I don’t expose anyway by default).
I thought he was doing the full paper Thea was based on which iirc includes some heavy trig maths which I find completely unnecessary. I’m unable to find it atm. Roughness changes with the physical state as well - i.e. a deflated rubber balloon is much rougher than an inflated one. Stretching skin makes roughness change from isotropic to anisotropic, so things can go ridiculously complex really fast. So to me, artistic controls beats costly accuracy very often. But hey, I love doing senseless things myself sometimes :smiley: (too often actually).

6 Likes

Well, they are 20/21 hired devs to handle 13 modules.

That means less than 2 developers per module.
And of course, it is not working as is because things are a little bit more complex.

Developers don’t have same experience. Some entered the team, recently. Some are part of the team since more than one decade.
There is a need of people with transversal knowledge to maintain an harmony between modules.
And they are human beings, not cores of a CPU ; they need to be able to go out of a certain routine from time to time.

Render & Cycles module is shared between 4 developers.
Two of the most experienced developers Brecht and Sergey.
Stefan employed by tangent animation.
And Lukas, I don’t know who is employing him or if he is still a student.
But he does a great job.

They try to build a solid organization with what they have.
I don’t expect them to have uniquely one developer involved per module.
That would be a fragile management. What would happen if this person quits ?

If they had more than 26 developers hired ; we probably could expect to have one developer dedicated to one module.
And Cycles would probably be one of the top priority module to receive one.

11 Likes

NanoVDB will be arriving in master shortly, although it seems it won’t be enabled in the build for 2.91: https://developer.blender.org/D8794

5 Likes