Blender 4.2 - EEVEE-Next Feedback

Does it make sense to be so complicated?

If you say it’s Screen Space technique then it should be under “Screen Tracing”. But it still feels like renderer from 90’s, containing tons of parameters users should not be expected to care about.

Why not:

  1. Remove Horizon Scan precision and use Screen Tracing precision to drive it. That will give us “Overall GI Quality” slider.
  2. Remove Horizon Scan thickness and use Screen Tracing Thickness * 2 value to drive it.
  3. Move Horizon Scan bias in Screen Tracing under Max Roughness.

Yes, one could probably make argument that there will be some corner case where careful tweaking of 6 interdependent float values into some perfect constellation could yield slightly better quality/performance ratio, but I don’t think it’s worth the hit to have Eevee NEXT with the UX of 90’s renderers full of Bulgarian constants to tweak.

4 Likes

You do have a point.

But horizon scanning is still used even if the tracing method is not Screen Space (should it not be enabled in this case?).

But I’ll see how I can merge these settings together. Thanks for the suggesting!

5 Likes

True… I’d just rearrange the nesting of the settings a bit to imply that Global Illumination can work when raytracing method is set to none. But it still makes sense to have just one set of global illumination quality parameters.

I would just merge both Screen Tracing and Horizon Scan into one Global Illumination panel, where there are 2 subpanels:

  • Quality
    – Precision
    – Thickness
    – Bias
  • Ray Tracing (with checkbox)
    – Method
    – Resolution
    – Clamp
    -Separator-
    – Denoising on/off
    – Spatial Reuse
    – Temporal Accumulation
    – Bilateral filter

This would clearly imply GI is always active, and you can enable ray tracing to improve GI accuracy. It’s also a bit weird that Ray Tracing can be enabled using panel checkbox but Method can be set to none. Either, method should be removed if we have only Screen Tracing so far, or method should stay but the panel checkbox should go away, because it does the same thing as “None” method.

None method still uses the raytracing denoising pipeline and just uses lightprobes to find ray hit color.

Disabling the Raytracing module means that we only rely on prefilter probes without any ray generation or denoising. Maybe we should rename it “Probe only” instead.

The former can still be wanted for lookdev or asset work as it offers more accurate BSDFs representation than the prefiltered probes.
The later is a crude optimized path, aimed at low end hardware support or noiseless output.

I still think both have a use case.

2 Likes

Yeah, so there’s so many hidden interdependencies the UI fails to communicate. It’s all the more reason to rearrange and simplify it.

2 Likes

As I’ve mentioned more than once, its not even obvious in the settings how/if GI can even be disabled.

2 Likes

Just landed several shadow-related improvements:

They should be available in tomorrow’s builds.

35 Likes

Shadow look so much better now! In a full production scene they now look Better than on Eevee-Legacy.
At lunch will test how they animate.

Edit: Nope, no dice on the animation side yet… gives a new shadow at each frame.

Edit2: Render times aren’t bad… the same thing (a full scene with depth volumes, particles, geometry nodes, many assets, etc) on Eevee-Legacy takes 8 seconds per frame and on Eevee-Next 10 seconds per frame, this with GPU compositor enabled for both. On Eevee-Next looks much better tho.

I’ve rendered a bit more frames of animation just to be sure and each frame a new shadow is confirmed. I only have a sun lamp for the sun and 2 point lamps (without shadows) to give ambience.

7 Likes

EEVEE-Next renders world volume different compared to EEVEE-Classic. EEVEE-Classic renders the world volume taking the camera/view clipping in mind. EEVEE-Next takes the same approach as Cycles where the world volume is considered to be infinite and the world light itself not visible.

This makes the scene look different between EEVEE-Next and EEVEE-Classic. The idea when we discussed this change was to add an operator to convert the world volume to a mesh volume. #119734 - EEVEE-Next: Add operator to convert a world volume to mesh - blender - Blender Projects is the PR for this.

The reason why it is an operator is that when done as versioning code the mesh could be added to a collection you don’t want and scene data is being changed without you noticing it. Perhaps you did want to behavior of cycles, but forgot to switch the render engine back before saving the last time. World could also be linked and would not be saved when changed.

Although these are development oriented logical decisions I would like to know if there can be a consensus on doing this automatically versus as an operator from a user point of view.

Another option might be to detect this when loading a file and show a popup. Which might be annoying if you’re not interesting in it at that moment.

I’m not clearly seeing it… You’re mentioning the Volumes calculation, for example, how the depth mist/fog in a scene reacts to the world light!? :thinking:

Well, I sure don’t want a popup :smile:
… but a option to choose to have the clip start/end or not would be nice indeed. :slight_smile:

If it’s that, I actually like the new Eevee-next look better on the scene I’m working today for example… but on other cases may be useful indeed.

1 Like

Having an infinite volume and not being able to see the background is not often useful, and so using a volume with the world in Cycles usually requires lots of extra steps. It makes technical sense for it to be that way, but as an artist I find it annoying more often than not. A much more useful solution would be to add a control to limit the volume distance in the world in both Eevee Next and Cycles, decoupled from the view clipping, so that the artist can choose whether or not it’s infinite. While that’s more work on the rendering side, it would be an amazing workflow improvement. Is that possible?

5 Likes

If one try to render by the 3D viewport in View → Viewport Render Animation. Every frame gets on top of the previous one or something like that :slight_smile: looks like a big blur in motion. I tried with both motion Blur on and off and looks the same. From the normal render it doesn’t show up.

1 Like

What is the difference of having that on the world shader and applying such shader to a sphere? It doesnt make sense to do that on the world since it is supposed to be a global (and infinite) shader, you can already do what you are describing by doing on a geometry`s shader.
And if you insist on doing so on the world shader, you can also do it already.
Like so:

2 Likes

Thanks for this node setup! This will be very handy!

It looks like EEVEE-Next does not render the “Environment” pass. Is this a planned feature or should it work just like it works with EEVEE or Cycles?

Regarding Compilation speed.

In a new download of the build (so, no existing shader cache), this scene on first open takes approximately 30 seconds to go from shaded to preview in Eevee Next.

I’ve read the previous comments on compilation time, but nonetheless this seems very excessive. In the very same build, Eevee Legacy compiled and displayed the rendered view after a mere 2-3 seconds. (IE, fast enough that I didn’t find it troubling.)

I was going to bug report it (this was mentioned a week or two ago), but at present it sounds like this behavior is completely expected and acceptable.

1 Like

30 seconds of shader compilations on first run doesn’t sound too bad to me? Most games do a loooot longer.

It doesn’t sound bad that Eevee Next compiles a first run up to 10x slower than Eevee?

And that’s not a theoretical or funny number I’m just throwing out there for impact - I counted the seconds.

I just tried it with another scene (the one I’ve used above for many examples). Eevee was basically instant, under 2 seconds. Eevee Next was nearly 10 seconds.

Another test, just performed / first time load:

Eevee compile time: :41 seconds
Eevee Next compile time: 3:04

3 Likes

Few days ago I did some tests and in 1 minute on my PC (3600X/GTX1660) Blender (4.2) compiles ~116 simple shaders for the EEVEE-Next, while UE5 (5.4) compiles ~1100 complex shaders.

2 Likes

At the risk of sounding reductive, Eevee isn’t a game engine. This is an apples to orange comparison

1 Like