This is the second release of the 3.06 development cycle, mostly fixing bugs reported in the first test build.
Main changes and new features since version 3.05.3:
Adaptive sampling
We added experimental support for adaptive sampling to the direct lighting and the path tracing kernels, which disables sampling for pixels that have reached a specified noise level. This allows you to bump up the maximum samples quite high and then rely on the adaptive sampling to figure out which pixels actually need that many samples and which don't.
This feature is mostly useful in scenes that have areas that are a lot more noisy than other areas. If your whole image is just one noisy mess, this feature will not help.
We tried to make it also work with network rendering and in principle it should work, but there may still some weird effects due to the fact that the sample mask is not updated that regularly as with the local GPUs. Let us know if you see some major issues that we should address.
The new settings in the direct lighting and path tracing kernel nodes are:
- Adaptive sampling: Which enabled adaptive sampling.
- Noise threshold: Specifies the smallest relative noise level at which we enable full sampling.
- Min samples: Specifies the minimum samples that must have been calculated before adaptive sampling kicks in.
We are still trying out a few things and hopefully we can improve it further with the next releases, but let us know of what you find.
New DOF options and DOF support for the panoramic camera
To allow different bokeh shapes than just circles, we added these new options to the depth of field settings of the thin lens camera node:
- Bokeh side count: Defines the number of sides of the bokeh shape, which is usually the number of blades of the diaphragm in a camera.
- Bokeh rotation: Defines the orientation of the bokeh shape.
- Bokeh roundedness: Defines how round the bokeh shape sides should be rendered.
New texture nodes
We added an add and a subtract texture node. We also added a compare node which picks one of two input textures based on the comparison result of two other input textures.
The ridged multi-fractal texture node is now working correctly. It has been broken since beginning.
We also added a triplanar mapping texture which blends between 6 different textures depending on the surface normal. The projection of each texture is still applied and is set independently. The orientation of the 3 directions can be either in world or in local coordinate space. This is still work in progress and a transformation of the "blend cube" will be added as well as an easier way to set up the triplanar map texture.
Full texture evaluation of normal maps
We hacked the texture evaluation to also work for normal textures. This way you can now use mapping textures like the gradient texture node or the mix texture or the new triplanar mapping texture.
The problem we had thus far was the fact the texture evaluation was done using spectra while normal maps need RGB values and the conversion from RGB to spectrum back to RGB would introduce too large errors.
To work around this problem we modified the texture evaluation to stay in RGB colour space, but this breaks some textures like the gaussian spectrum node. We hope that this will be no problem for normal maps though.
We have also an idea to further improve normal texture support and to allow things like arithmetic operations (add/subtract/multiply) on normal textures, but that requires some more work, which isn't finished yet, but hopefully soon.
Displacement map filters
To reduce visible steps in displacement maps of LDR images, you can enable a filter to blur them over a specified radius. We provide two filter types: A box filter and a gaussian blur filter. With larger filter radii, the gaussian blur usually takes a bit longer to calculate during compilation time than the box filter.
As an example this is a rendering of an LDR displacement map without any filtering: This is with a filter of radius 4 applied: And this with a filter of radius 8:
Support for infinite planes
You can now add up to 4 infinite planes to a scene using the new plane geometry node. The UV mapping is aligned with the X/-Z coordinate axis, but you can also apply a transformation to the object using the placement/scatter nodes. Displacement mapping does not work on infinite planes.
New net render options
We added the possibility to scan multiple subnets for daemons, which might be useful if a master is connected with multiple subnets which have net render daemons. You can also "steal" a slave from a different master. This will stop the slave for the other master and will restart it for the current master:
Complete switch to CUDA 8
We completely switched the kernel compilation to CUDA 8. We had to make quite some changes to work around kernel crashes caused by CUDA 8 and to avoid slowdowns caused by the new toolkit. After all these changes were made rendering became a bit faster in most scenes. The difference is not tremendous (2-4%), but there are some cases where is made a larger difference (5-10%).
Please let us know if there are more or less issues with kernel crashes and if you experience any major slowdowns with specific scenes.
Changes since version 3.06 TEST:
- Added option to select the coordinate space in the tri-planar mapping texture.
- Changed how the docked windows are brought to front when Octane Standalone receives keyboard focus: The relative z-order stays the same, and the docks will not be raised above the main window.
- Introduced menu items to focus on docks, and a window picker which is shown when pressing CTRL-TAB.
- Improved noise estimate and fixed various bugs in adaptive sampling.
- Trying to simplify the adaptive sampling options: Removed the pins "adaptive strength" and "group pixels". The strength is now always 100% and a 2x2 grid is being used internally. Let us know if absolutely need any of those parameters back (in which case we would need an example scene showing the problem).
- Changed the defaults of the adaptive sampling parameters to some more conservative values ("noise threshold" is now 0.01 and "min samples" is now 512).
- Fixed broken info channels when adaptive sampling is enabled (see viewtopic.php?p=304878#p304878).
- Fixed missing tri-planar mapping node on OSX and Linux (see viewtopic.php?p=305105#p305105).
- Fixed bug that caused resolution to update even when the render lock was disabled (see viewtopic.php?p=304630#p304630).
- Fixed missing material and object layer pins when a plane node is connected with a material/object layer map node.
- Fixed render failure when texture pins of a gradient node are unconnected (see viewtopic.php?p=305357#p305357).
- Fixed render failure when a scene without a mesh but with an infinite plane is rendered.
- Fixed crash in net render slave during shutdown.
- Fixed crash bug in net render master that occurs when the interactive render region is changed.
- Fixed crash in net render master when a slave fails and interactive region rendering is enabled (see viewtopic.php?p=304961#p304961).
- Fixed crash in net render slave when the interactive render region is changed to a larger size than the largest film tile (see viewtopic.php?p=304961#p304961).
- Fixed double extensions in the batch render script (see viewtopic.php?p=304613#p304613).
- The batch render script now also disables any interactive render region.
Downloads for users with a regular license
regular version for Windows (installer)
regular version for Windows (ZIP archive)
regular version for Mac OS X (DMG image)
regular version for Linux (ZIP archive)
Downloads for users with a subscription license
subscription version for Windows (installer)
subscription version for Windows (ZIP archive)
subscription version for Mac OS X (DMG image)
subscription version for Linux (ZIP archive)
Photoshop workflow plugin download
A new version of the Photoshop plugin (1.0.5) has been made available, containing the following changes:
- Added support for noise layer added in v3.06.
- Added support for Photoshop 2017.
Windows and Mac OS X
Photoshop extension (v1.0.5) (ZXP archive)
Happy rendering,
Your OTOY NZ Team