Volumteric bidirectional spectral patch need your help

Wow! Great stuff! Does the bidirectional integrator bring improvements with other shaders? Like SSS For example.

Well, Luxrender, Yafaray, many other commercial renders can do same or better for long time ago, so it not THAT cool, but as it not force you to redone materials it can be useful anyway. SSS is another story, it use cheat to render fast, i very doubt it will help a lot, maybe some extra accuracy colors in complex setups, but not speed. I have many unfixed bugs to illustrate it side by side examples, need more work.

I wonder how it will react to the negative strength value of the light source?

you settings of lights paths are very very bad that’s why it is so slow but in lux render bidirectional is a bit quicker then path.

you settings of lights paths are very very bad that’s why it is so slow but in lux render bidirectional is a bit quicker then path.

It is intentional, i am not render seller, but coder and use most hard setup to show worst case, as i am know weak parts very well. Those pictures posted more for other coders not artists to show current state of patched Cycles. If i wanted to show “wow” pictures that would post 0-1 max bounce volume “ray in fog” scenes that get zero noise in 30 sec or less.

The last comparison is very promising, for Interior scenes this is a huge benefit. :slight_smile:
Thanks for your work storm!

It’s amazing! And I think it’s faster than LuxRender and (in some cases) is faster than VRay (although it’s not correctly to compare these engines). On my PC it must be about 4x times slower - it’s about 52 mins (in Bidir). But it really seems faster than Lux. I’ve didn’t compared to the last Lux’s version but I don’t think they’ve made a big “jump” of speed-up. For me it was very slow to render (I’ve cleaned up a not too complex bath scene in about 20-24 hours and still very noisy) and pretty hard to setup properly.
The results that I see at yours and the simplicity of Cycles’ setup “beats” LuxRender in my eyes.

Congratulations and cheers!

Two major very old bugs fixed, new volume bsdf node with more common settings as other renerers use, as separate color absorption, scattering and g factors. rewriting to new volume model unfinished, only homogeneous work as expected.

User visible changes, new Volume BSDF node (old not work, just leftover, will be removed later), and slightly faster noise cleaning in bidirectional mode. Also, final render (F12 and animation) now can work w/o segfault thanks to Brecht help, you need “Progressive refinement” turned on. Next target is last piece of MCMC/MLT core, pool of initial seeds for Markov chains, if it will be finished we will get almost full MCMC/MLT render solution.


I love you blender developers.

Sort of understand this… but can you explain it for dummies?

@lsscpp: very tricky method to faster calculate light, especially in case of huge difference in light, as caustic from lenses / mirrors, when very many bounces used. For almost flat images it work bad, but shine for “bright sun light room with window” or "light souce behind corner ". Better google it, very versatile and popular last decade or two. It default for Luxrender, Maxwell, many other renderers. Dont expect miracles for usual almost flat low contrast scenes, but some extreme caases will clean noise much faaster, some 100x or even more.

In short, it trying to fire rays in directions that need to clean noise more then already good picture parts, but not naive “adaptive” way, measuring picture noise using some filter and history. Instead, it “walk” in all multi dimensional sampling space, sweeping faster places with less noise and stay longer in bright areas.

That is not new method, and very well described in details (Eric Veach dissertation), some open source examples as Luxrender exist, so need just coding time and tuning defaults. Bidirectional is not required, it can be applyed to PT as well, but good for some cases (caustics), so for me it was pre-requisite for MCMC.

Sounds pretty understandable!
Thank you very much for doing this! 15 mins for this quality (on CPU, right?) is a miracle for me. When it will be available for 3d textures and smoke textures (voxel data?)… we will get a lot of new cool renders! :slight_smile: Indiana Jones is waiting! :smiley:
Probably that the issue with this method’s usage regarding to low-contrast areas (and frames) is fixable by making it from high contrast renders using Z-Depth mixing and etc.

All pieces in place, and we have MCMC/MLT bidirectional render. Patch in bf-cycles mail list.


It glitching as hell, but work. That glass figure was taking enormous time W/O MCMC sampling, now i can even see light scattering inside, and proper subsurface fade. Not ready yet, but sure big step ahead.

Warning: all old bugs in place, so never save important data with patched Blender. Overall brightness usaually incorrect 10x times or even more, i use that cool “Exposure” Color management slider for instant brightness tweaking in preview.

wow! hope to see a build on graphicall soon, can’t wait to test it!

No changes, just another hard light picture, look at “yellowish cone” from left top plate, it is secondary bounce from light to yellow plate then hit media fog. That cone was very noisy in 2 days+ times, now almost perfect in 10 hours. The problem is metallic perfect mirror plate cannot be sampled in other way except trace from light, and probability obviously very low. But not for MCMC, it solve it up to almost final quality!


I discover new 2 very bad glitches that is currently trying to fix, it become mad and skip big parts of initial seeds for no reason, looks like huge jump of overall brightness after change some random paremeter in integrator panel that force rendering from start. Another one, sometime it catch very black (i think it negative in extreme range of float point) brightness and spread it over all screen as MC walk, mostly when spectral sampling take place.

Noooo, it hit graphicall? plz do not use it, that one is very very hackish.

Edit: same picture, i raised Exposure to show noise more. Hehe, need to fix most ugly bugs faster, to make it more graphicall ready.


That is realy good news. and people should focus more on that then stupid UI think.

@Kramon

But do not expect it happen fast, it seems that learning curve too steep in that probability things for many ppl. More realistically, Brecht maybe will write simple MCMC sampler for current PT, skipping all that crazy extra bidir/volume complexity in my patch. It will need only one additional output buffer to store not-black initial seeds, and tweaks to session/tile manager to make two mode, “seed pool building” and “MCMC main loop”. In fact, that approach will be absolutely independand on any other existing parts (new things like HAIR, SSS, maybe some in GSoS) and completely support all previous Cycles features.

That will make Cycles handle many things much faster, like internal “light from window” case when that super bright hilight on floor is main source of wall colors. Later, bidir part can be added, after fixing all bugs.

hey! where is it? On graphicall? can’t find it…

Congrats @storm_st, it will be a great feature in Cycles.

Thanks.

Another update, MIS related bug fixed and as result few scenes get boost in noise cleaning speed. Now it feel somewhat comparable with Luxrender or Maxwell, previous was definitely painfully slow in comparison. MCMC/MLT experiments are mixed, next picture is successful variant, single point lamp above kettle, speedup is not that big vs bidir case, but image look correct, and glass grid seems render a bit nicer in MCMC then bidir case, and surprisely low firefly number. 40 min, 4 bounces, CPU i7 3770K



Edit: finished after hit 65536 samples limit, as MCMC render much less pixels in every sample (250 * number of 128 wide tiles because of hack used). Posting it just to show converging speed. many places still in noise.

Beside, i figured that i forgot to revert to power MIS heuristic before sending patch, balance heuristic used instead. Not big deal, quality almost same, jist a bit worse look in very simple scenes like mostly direct light. Will send updated variant shortly.