This is the first release of the next development cycle with quite a few new features. There have been a lot of changes under the hood and we switched completely to CUDA 8 which is why we are releasing this version as a test build.
In the future we will probably continue doing this, i.e. every new development cycle we will start with some test releases in the development release forum. During the test phase we will introduce a feature freeze and then eventually release stable versions in the commercial releases forum.
Main changes and new features since version 3.05.3:
(I didn't have time to provide some nice pictures yet, but plan to add some more in the coming days.)
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.
- Adaptive amount: Determines how "strongly" the adaptive sampling is applied. A value of 0.7 means that if a pixel has reached the specified noise threshold, 70% of the time no sample is generated, but in 30% is. A value of 1 (the default) means that no samples are generated for a pixel that has reached the specified noise level.
- 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.
- Group pixels: Specifies the number of pixels that are grouped together. Only if all pixels of a group have reached the noise level, sampling will stop for all of these pixels.
To visualize the progress you can enable the noise pass in the render passes node. The pass is only calculated when adaptive sampling is enabled. The green pixels in that pass mark those pixels that have reached the specified noise limit. This mask is re-calculated every time a new result is blended into the film buffer and thus the distribution of those can change and a previously masked off pixel may be enabled for sampling again.
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.
While we were at it, we also added depth of field to the panoramic camera, which was requested a few times. We are not sure how useful DOF in panoramic renderings is, but it doesn't do any harm.
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.
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.
And the ridged multi-fractal texture node is now working correctly. It has been broken since beginning.
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.
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.
All changes since version 3.05.3:
- Added more options to control the shape of the bokeh, namely "bokeh side count", "bokeh rotation" and "bokeh roundedness".
- Added all depth of field parameters of the thin-lens camera to the panoramic camera.
- Added options "Filter type" and "Filter radius" to filter displacement maps.
- Added add texture and subtract texture to add or subtract two textures.
- Added comparison texture - to compare two textures and depending on the result pick one of two other textures.
- Added triplanar mapping texture.
- Added new geometry node "plane" which defines an "infinite" plane. There can be up to 4 infinite planes in a scene.
- Added full texture evaluation for normal textures. The way it's currently done is to hack it into the spectral texture code, but brings some limitations in what you can do. At least mix and gradient texture nodes are now supported this way. We are looking into improving it further.
- Switched completely to CUDA 8, which required some major changes to make it work. The changes eventually improved performance a little bit, but since we had to work around a couple of problems with CUDA 8, there may be more issues we didn't notice yet. Please let us know if you find more problems.
- Added option to the net render settings dialog to "steal" a slave from another master, by stopping the slave for the other master and restarting it for the current net render master.
- Added the ability to scan multiple sub-nets for daemons.
- The clamp texture clamps now each color channel separately instead of all together.
- Improved color noise for low samples per pixel.
- Improved the amount of data needed to store render pass information in the sample data. This should reduce the memory usage a bit if parallel samples has a higher value.
- Fixed the ridged multi-fractal procedural noise texture.
- Fixed incorrect shadow calculation of overlapping volumes.
- Improved mixing of overlapping volumes.
- Fixed batch render job graph to render correctly even if render target node and geometry are not in the same node graph.
- The batch render job graph disables the interactive render region before it starts rendering (otherwise it would never finish rendering, because the samples per pixel of the film are not increased during interactive region rendering).
- Fixed CUDA device failure with small film render regions in conjunction with deep pixel rendering.
- Fixed rendering of sphere primitives if only one radius is given in the mesh node data.
- Fixed incorrect sphere count statistics in scenes with instances.
- Trying to improve the OBJ material conversion (see viewtopic.php?p=303530#p303530).
- Fixed hang when Octane received empty or corrupt data from OctaneLive.
- Bringing the Octane windows into focus does not change the Z order of the various floating windows anymore.
- Loading a new project will not reload the layout anymore.
- Fixed file associations in the Windows installer of the Standalone.
- The Lua scripting dialog is now a module and can be integrated into the layout. The command to open it was moved to the Windows menu.
- The Lua API browser is now a module and can be integrated into the layout. The command to open it was moved to the Windows menu.
- Lua:
octane.nodegraph.copyFrom()
does not fail silently anymore, when given source items don't have the same owner. - Lua: Added
octane.image.fill()
to fill a rectangular area in an image with a color. - Lua: Added
octane.image.copyRegion()
to copy a region of one image to another. - Lua: A running Lua script can now always be killed via a button in the status bar, even if it was launched from the Lua scripting editor. (Removed the stop button from the scripting editor toolbar)
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.
You can download and install the plugin either via the Adobe Exchange platform (the latest version still needs to be approved by Adobe, so it may take some time to show up) or you can download it from the link below and manually install it.
Windows and Mac OS X
Photoshop extension (v1.0.5) (ZXP archive)
Happy rendering,
Your OTOY NZ Team