Cycles MLT patch

Sure you have one of your Demolition Builds lying around - have you seen Gravity? :wink: (You should, if not. I’m sure you gonna want to throw some stuff into your ISS-NASA (?) Model :wink:

EDIT: btw have you used Adaptive Sampling?

@bashi:
Of course, I saw Gravity. The VFX Oscar was well deserved :slight_smile:

Currently the ISS model would be a too complex for my softbody based Demolition approach but the new fracturing tools by Scorpion will enable us to do stuff of this magnitude. So the days of the space station are numbered :wink:

I didn’t use Adaptive Sampling.

“fracturing tools by Scorpion” oooohhh do you have any links?

I guess you used the Nasa Modell? How did you import the .lws? Or did you import the .lwo’s separate and then put them together?

Testing out underwater caustics with Metropolis. 8min render. Certainly couldn’t do this before! Couldn’t get volumetric scattering to work with v.14 so volume is faked by motion blurring a plane.


For comparison here’s PT with same time:


@LordOdin:
There is nothing to play with at the moment, it’s in pretty early development.
Here is the proposal page: http://wiki.blender.org/index.php?title=User:Scorpion81/Fracture

@bashi:
Yes, it’s the NASA model. It’s been a while (over a year) since I imported it but I remember it wasn’t too easy to import. I tried several ways also via different applications but can’t really tell what worked best in the end.

Ok, thanks.

I rerendered once again with Adaptive Sampling just to see the difference and I have to say the noise looks much more evenly distributed especially where the shadows are. Nice result.

Standard Path Tracing: ~11 min, 200 samples (old image):


Standard Path Tracing with Adaptive Sampling: ~13 min, 200 samples:


Will this be in the trunk soon ?

Not till after the official Blender 2.70 release.

I don’t think we can include this soon, it still needs work and some cleanup.

2h render. Node-based spectral dispersion (very small noise texture randomizes a blackbody value, same value per sample is converted back to RBG and used as IOR changer) + Metropolis:


can someone please explain (like im stupid) the difference between MTL and normal Path Tracing ?
or link something please.

when would you use MLT instead of PT and why ?

astonishing job! the screen of nodes would be very welcome for many people. :slight_smile:

I will add my tests:

PT: (10K samples ~5 hours on gtx680m (+bitcoin mining…)



Metro: (100 samples, very slow (~4-5 hours, I didn’t count), on i7-3720QM)

Blend File: Caustic.blend (140 KB)
in the material, I have used the first cluster (mode switch=0), the second cluster makes strange green color.

as you can see it enhance the color dispersion and the noise quality.

can you tell me how did you do it?

Since I just setup my Windows toolchain, I thought I’ll just post my build here. It’s based on today’s trunk, built with VC2013 for Windows x64 (x32 will follow soon). It lacks some features (mainly GPU and OSL), but the standard stuff should work.
To quote from the developer thread what the new patch version does:

New patch version, the adaptive stuff got a massive update, importance equalisation now works again and CUDA/OpenCL should build again (without Metro support). Adaptive stopping works on CPU and GPU, although it might slow down GPU a bit since every test has to fetch the buffers from device memory. I didn’t test it, but in ~1 week I’ll get access to a CUDA 2.0-capable system so I can fix the CUDA support. Adaptive sampling will get GPU support, but it’s not finished yet.
For adaptive stopping, set the Stopping Threshold value under the Performance tab to a value > 0. The adaptive stopping works parallel to the classic samples-value stopping, so if a tile hits the specified sample number, it’s stopped regardless of whether its error is below threshold or not. In my experience, something around 1 gives a rough-preview-quality result while values <= 0.25 appear noise-free. The test whether the tile is done starts after some warmup samples have passed and is performed in a specifix interval, the settings for these are under the threshold. The checkbox will activate adaptive sampling inside the tiles. By the way, adaptive stopping also works for Metro.
In Metro mode, the adaptive sampling checkbox activates Importance equalisation. This setting basically causes the Metro sampler to distribute the samples more uniformly instead of sampling according to brightness (technically, it samples acccording to path brightness divided by average pixel brightness, therefor still favoring high-energy paths). Sometimes this helps really a lot, in other scenes it’s pretty useless.

Adaptive stopping looks at the tile and decides whether it’s done or not, while adaptive sampling distributes the samples inside the tile to areas of high error.
This is useful, for example, if the tile is at the boundary of Background/Object, since without adaptive sampling, all of the tile will be sampled until the error is low enough. With adaptive sampling, however, the Object will receive more samples than the background.
Basically, adaptive sampling is what the patch already did, while adaptive stopping is the new feature.

I hope I included every needed file, if something is missing, please tell me and I’ll post it. By the way, the patch doesn’t affect performance in classical PT without the new options in any way, in fact, on my machine this build renders faster than the 2.70a release.

Ah, a build that places one of the last pieces of the puzzle in the quest to get Cycles into becoming a truly fast solution for almost any scene.

I’ve done some initial tests with the build and things are looking very promising. I will give an update after more testing, but it seems like the only bug that’s out there is that some complex scenes might crash with multi-jitter sampling and metropolis (the type that’s way too big to attach).



New adaptive sampling, using 6 of my 8 cores. Just a little bit of an improvement :wink:

Been running it through a bunch of different test scenes here. Adaptive sampling/stopping seems to be at the very least some measurable improvement. Sometimes more than a little bit. Although I haven’t found anything that is 4x faster. :open_mouth: Most of my tests have been more along the lines of 20-50% faster.

Oh, and it does work with branched path now too. IIRC it didn’t in earlier patch versions. But now it does. Just make sure the warmup and update interval values make sense with the number of AA samples you’re tracing. The default is 20 for both, you’ll probably want something lower like 8. This should be lovely for hair/DOF/motion blur.

Finally, if you all want the OS X build I’m playing with, it’s here: https://dl.dropboxusercontent.com/u/1706676/blender.app.zip

It’s built against yesterday’s trunk, I didn’t feel like taking the time to see if it still compiles after the Cycles bake merge.

you should give is a description of whats going on here :stuck_out_tongue: