optimization strategy to reduce noise

A forum where development builds are posted for testing by the community.
Forum rules
NOTE: The software in this forum is not %100 reliable, they are development builds and are meant for testing by experienced octane users. If you are a new octane user, we recommend to use the current stable release from the 'Commercial Product News & Releases' forum.
Post Reply
mishal
Licensed Customer
Posts: 11
Joined: Wed Aug 03, 2016 12:52 am

Hi,
I am wondering if finding out which pixels are still noisy and calculating a relative "pixel noisiness" measure can help in optimizing the ray tracing engine (like progressively concentrating the rays on those noisy pixels/patches and reducing rays or even eliminating them for pixels that are already clean).

Honestly, I thought that this optimization strategy has been done long time ago until a saw a recent youtube of someone explaining the new features of an advanced unbiased renderer which includes a "manual way" for focusing rays on noisy areas. With today's advances in image/signal processing, I can't imagine a need to do this manually.

I've attached a simple test render I made with Octane (1000 SPP) with corresponding pixel noisiness level using a simple algorithm I developed in MATLAB (noise is dispersed so I just used a threshold to separate noisy pixels (black) from the one that are already clean (white)). Maybe Octane development team can look into using this technique if not already done in the engine.

Mishal
Attachments
Noise level map
Noise level map
1000.png
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

Interesting! Nice to see matlab in action (I used it years ago besides gauss and r).

Could you compare the level of nosie in more dimensions - (ms/s, GI clamp, Coherent ratio) and post graphs (2D or 3D)?
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
User avatar
Terryvfx
Licensed Customer
Posts: 377
Joined: Tue Dec 30, 2014 12:43 am

I just saw a feature similar added to Corona and Renderman and now I'm jealous. :cry:
mishal
Licensed Customer
Posts: 11
Joined: Wed Aug 03, 2016 12:52 am

smicha wrote:Interesting! Nice to see matlab in action (I used it years ago besides gauss and r).

Could you compare the level of nosie in more dimensions - (ms/s, GI clamp, Coherent ratio) and post graphs (2D or 3D)?
That will be interesting but it requires the engine reporting these values to work with. Matlab is a great tool for many things and it is incredibly useful for signal and image processing applications.

Masayuki Tanaka has a paper regarding noisy images and they do not assume a noise pattern since even in SLR cameras the noise is dependent on the signal-to-noise ratio which is higher in bright areas (clean) and low in the shadow areas (similar to ray tracing problem ?). the paper can be found here;
http://www.ok.ctrl.titech.ac.jp/res/NLE ... ation.html

I think their method is an overkill for rendering engines (partitioning the image and iterative calculations etc) but it prompted me to look into a simpler and computationally efficient way to separate noisy pixels from clean ones and calculating a simple measure for noise level.

I am playing with the concept right now and I think I may have a way to even "clean up" the image using the additional information describing the noise pattern (machine learning methods ?)

Mishal
mishal
Licensed Customer
Posts: 11
Joined: Wed Aug 03, 2016 12:52 am

Terryvfx wrote:I just saw a feature similar added to Corona and Renderman and now I'm jealous. :cry:
I agree, I think Octane, despite its speed, can also benefit from such optimization.
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

OK, so can you post same graph for two different GI clamp values - 10000 and 1
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
mishal
Licensed Customer
Posts: 11
Joined: Wed Aug 03, 2016 12:52 am

smicha wrote:OK, so can you post same graph for two different GI clamp values - 10000 and 1
Hi Smicha,
sorry I misunderstood your original request, still learning Octane render :).
Sure, I attached GI clamp of 1 and 10000 noise images. I changed the engine to PT and now working with 16 bit images. the noise distribution is different than DL, which is expected. the only clear difference at a glance is in the bright spot on the wall which still shows noise at 1000 SPP for GI clamp of 10000. there could be more hidden in the noisy regions but it is difficult to distinguish visually.
I'm working on a method to reduce Octane render noise and hopefully I will post some proof of concept images if it does work.

Mishal
Attachments
PT-GI Clamp of 10000
PT-GI Clamp of 10000
PT-GI Clamp of 1
PT-GI Clamp of 1
User avatar
smicha
Licensed Customer
Posts: 3151
Joined: Wed Sep 21, 2011 4:13 pm
Location: Warsaw, Poland

Thank you! This is even more interesting. So one more test would be useful: there is so called 'path term power' and it affects noise in shadowed areas. So could you run tests for 0, 0.5, 1 of its values?
3090, Titan, Quadro, Xeon Scalable Supermicro, 768GB RAM; Sketchup Pro, Classical Architecture.
Custom alloy powder coated laser cut cases, Autodesk metal-sheet 3D modelling.
build-log http://render.otoy.com/forum/viewtopic.php?f=9&t=42540
mishal
Licensed Customer
Posts: 11
Joined: Wed Aug 03, 2016 12:52 am

mishal wrote:
smicha wrote:OK, so can you post same graph for two different GI clamp values - 10000 and 1
Hi Smicha,
sorry I misunderstood your original request, still learning Octane render :).
Sure, I attached GI clamp of 1 and 10000 noise images. I changed the engine to PT and now working with 16 bit images. the noise distribution is different than DL, which is expected. the only clear difference at a glance is in the bright spot on the wall which still shows noise at 1000 SPP for GI clamp of 10000. there could be more hidden in the noisy regions but it is difficult to distinguish visually.
I'm working on a method to reduce Octane render noise and hopefully I will post some proof of concept images if it does work.

Mishal
sorry I forgot to attach the images
Attachments
Gi Clamp 1 and SPP 1000
Gi Clamp 1 and SPP 1000
Gi Clamp 10000 and SPP 1000
Gi Clamp 10000 and SPP 1000
prehabitat
Licensed Customer
Posts: 495
Joined: Fri Aug 16, 2013 10:30 am
Location: Victoria, Australia

This thread is heading towards adaptive sampling right? Isn't that already locked in as an octane 3.1 feature?
Win10/3770/16gb/K600(display)/GTX780(Octane)/GTX590/372.70
Octane 3.x: GH Lands VARQ Rhino5 -Rhino.io- C4D R16 / Revit17
Post Reply

Return to “Development Build Releases”