This the first stable release of the 2.2x development cycle. Quite a few things have changed, so if you didn't follow the development releases please read the list of major changes since the last stable release. If you followed the development builds, please read the change log below the major changes.
Major changes since version 2.17:
Render layers
Render layers allow you to separate your scene geometry into one part that you want to be visible and the rest that "captures" the side effects of the visible geometry on it, as proposed here.
To assign an object to a layer you use the pin "Layer ID" in the object layer node, which you assign via an object layer map node to a mesh. The render target has a new pin "Render Layer" which connects to a render layer node. There you can specify the layer you want to be visible. The main beauty pass will then only render this layer and cut out everything else, but the real power is in the shadow and reflection layer passes, where the "side effects" of the render layer are captured. They allow you to compose the render layer on some background with shadows and reflections.
If the option "visibility only" is disabled (default) you should activate the alpha channel, since those parts of the image without geometry on the active layer are rendered black, i.e. the environment is not visible in the main pass.
If the option "visibility only" is enabled, everything that is not on the active layer will be treated as invisible. The environment will be rendered and you don't have to enable the alpha channel. As a consequence, the reflection and shadow passes don't work anymore.
We currently distinguish between 2 shadow types: "black shadows" and "coloured shadows". Black shadows are caused by opaque materials or specular materials that don't have the "fake shadow" option enabled. They are basically what the matte material is capturing and can be composed using normal alpha blending. Coloured shadows are shadows that are cast by specular materials with the "fake shadow" option enabled. The corresponding coloured shadow layer pass needs to be composed onto the background using multiplication. The "shadow layer pass" will capture both black and coloured shadows and also needs to be composed onto the background using multiplication.
More details on how to use render layers for compositing can be found here.
Light passes
Light passes let you split the image by the contribution of light sources. Similar to layers, you can assign a light pass ID to emitters and then enable the corresponding pass in the render passes node. There also two additional passes for the sky and the sun. You can find a more detailed explanation here.
Multiple UVs
A triangle mesh can have now up to 3 UV sets and the UV projection node got an option to choose the UV set you want to use. Unfortunately, OBJ doesn't support multiple UVs and Alembic doesn't have an "official" specification for multiple UVs and most Alembic exporters don't seem to export them. Octane tries to look for data that looks like additional UV sets in Alembic files and the plugins have the possibility to export them, too, via the Octane API.
Out-of-core textures
Out-of-core textures allow you to use more textures than would fit in the graphic memory, by keeping them in the host memory. Of course, the data needs to be sent to the GPU while rendering therefore slowing the rendering down. If you don't use out-of-core textures, rendering speed is not affected.
Out-of-core textures come also with another restriction: They must be stored in non-swappable memory which is of course limited. So when you use up all your host memory for out-of-core textures, bad things will happen, since the system can't make room for other processes. Since out-of-core memory is shared between GPUs, you can't turn on/off devices while using out-of-core textures.
You can enabled and configure the out-of-core memory system via the application preferences. For net render slaves you can specify the out-of-core memory options during the installation of the daemon.
Alpha refractions
A new option in the specular material that, if enabled, will give specular materials alpha transparency if the alpha channel is enabled in the kernel settings. The way how that works is by making reflections opaque and but refractions transparent. As a consequence, absorption, SSS and coloured specular transmission are not properly rendered with this option enabled.
Refactored asset references
We refactored the way asset file references are handled inside of Octane. One small change which has some major impact is that if you save a project as
.ocs
file, all assets coming from packages (i.e. image/geometry/... files coming from .ocm/.orbx files) are now stored as references and not unpacked anymore. In the past, we were unpacking those and storing a reference to the unpacked file instead.Not unpacking packaged assets has several advantages:
- Less clutter on your hard disc, since the assets stay in the packages they come from originally (like the LiveDB/LocalDB) and are not scattered around to where you save your projects.
- Updating a texture of a material in your LocalDB will automatically update all projects that use the material.
- If you import some material into your project and then save and close the project and then import the same material into your project again, the assets are now detected to be the same as the first imported material. This helps saving texture memory.
Unfortunately there is one disadvantage: Due to a limitation in older versions (< 2.22), the assets of these scenes won't be found, when opened in those versions. If you want to make such a project usable in older versions, the easiest way would be to save the project into a package, which will pull all assets into the package and which can then be opened properly in 2.21 or older. If there is demand we could provide a Lua script that does that packing and unpacking automatically.
Other changes
- The environment render pass contains the environment over the whole image instead of only the area that is not hidden by foreground objects.
- Restructured the way how post-processing is done when render passes are enabled: If the post-processing pass is enabled, it will not be included in the main beauty pass anymore. You can also specify whether the environment should be included in the post-processing pass or not.
- Added pins "F-stop", "Sensor width" and "Focal length", which allow you to control FOV and DOF like on a camera.
- Added option "pixel aspect ratio" to the thin-lens camera node, which allows you to render to a non-square pixel format (like NTSC or PAL).
- Added option "aperture aspect ratio" to the thin-lens camera node, which allows you to stretch/squash the DOF disc.
- Added stereo panoramic rendering.
- Added pin "keep upright" to the panoramic camera node. If enabled, the up-vector is kept at (0, 1, 0).
- Added option "pano blackout latitude" to the panoramic camera node, which defines the minimum latitude (in spherical camera coordinates) at which the rendering is "blacked out", when stereo rendering is enabled. This is to avoid eye strain, when people try to look up or down at the poles.
- Added over-under stereo mode.
- Reducing the reflectivity of a specular material will increase its transmissivity (see http://render.otoy.com/forum/viewtopic.php?f=9&t=44816).
- Improved Fresnel reflection for specular and glossy materials. Until now the code assumed that the light was always polarized perpendicular to the reflection plane, which is usually not true. As a consequence, the Fresnel reflections were too strong at medium viewing angles (see http://render.otoy.com/forum/viewtopic. ... 39#p227739).
- Subdivision surface vertex/edge sharpness is now imported correctly from Alembic files (if provided).
- Clay rendering and sub-sampling are now stored with the project preferences.
- Animation scripts store their settings now per project instead globally in the application settings.
- Added multi-connect feature, which is activated when you hold down the CTRL key (CMD key on OSX) while connecting a node with another. If only one connection is possible, this feature is inactive.
- Added connection "cutter" that kicks in if you hold down the CTRL key and draw a line over the connection to remove.
- Improved the usability of the node graph editor when zoomed out a lot: Connections can't be changed anymore, node items can still be moved and and drawing is simplified and faster. Also added auto pan, when you drag an item outside of the editor pane.
- Added a search dialog to quickly find and select nodes and dynamic pins that contain the entered search string. Use CTRL-F to open the dialog.
- Added a quick search tool to the Lua API browser as well.
- Added all enums of the SDK to the Lua API. You can find them in the module "octane".
- Added various Lua helper functions to
octane.gui
. - Added the ability to select multiple files in a file chooser via the Lua API.
- Added per-project storage of Lua script information via the table
octane.storage.project
. - Added tool
octane-cli.exe
to the Windows Octane version, which allows you to run Octane via the command prompt. It will block until Octane has been closed. All logging to stdout (if logging flag "logToStdout" is enabled), will go to the command prompt, too.
Changes since version 2.22.2:
- Extra UV coordinates are now loaded correctly from Alembic files exported with Crate (see http://render.otoy.com/forum/viewtopic. ... 94#p230294).
- Brought back the kernel option "keep environment".
- Changed the direction of the cube-map: The center of the view (i.e. that part that usually would appear in the center of the equirectangular projection) is now in the -Z face (was in the +X cube face).
- Fixed pixel filter radius for info channels (see http://render.otoy.com/forum/viewtopic.php?f=30&t=45729).
- Fixed bug that info passes didn't have an alpha channel even if the alpha channel was enabled in the kernel settings.
- Fixed the bug that made matte objects stand out from environment due to different DOF.
- Fixed GPU crashes when using out-of-core textures with multiple devices.
- Fixed object motion blur for some cases (see http://render.otoy.com/forum/viewtopic. ... 81#p230581).
- Fixed crash when loading some Alembic files with subdivision sharpness set (see http://render.otoy.com/forum/viewtopic.php?f=45&t=46006).
- Tried to improve stability of the OctaneLive authentication, when the Internet connection is unstable.
- The option "Skip existing image files" in the render animation script is not ignored anymore.
- Enabled access to inputs of a scripted graph immediately after calling setInputLinkers().
Quick-fix release 2.23.1:
- Fixed broken alpha channel if "keep environment" is enabled.
- Fixed broken alpha channel in the info channel kernel.
Quick-fix release 2.23.2:
- Added single face cube map projections, allowing you to render only one face of the cube, which will become useful for animation overlays in stereo panorama renderings.
- Fixed the batch rendering script (see http://render.otoy.com/forum/viewtopic. ... 80#p233280) and merged it with the animation render script. This allows you to render animations of multiple render targets in one go.
- Fixed incorrect UV subdivisions (see http://render.otoy.com/forum/viewtopic. ... 84#p233284).
- Fixed layer mask alpha channel, which is now exactly the same as for the other info channels (except the layer ID pass).
- Fixed light pass alpha channel, to make it match the alpha channel of the other channels.
- Fixed incorrect evaluation of destination nodes of Lua script graphs when a project is loaded and converted to the current version.
Downloads:
Windows
- 64-bit commercial version (installer)
- 64-bit commercial version (ZIP archive)
- 64-bit demo version (installer)
- 64-bit demo version (ZIP archive)
- 64-bit OctaneVR (installer)
- 64-bit OctaneVR (ZIP archive)
Mac OS X
- 64-bit commercial version (DMG image)
- 64-bit demo version (DMG image)
- 64-bit OctaneVR (DMG image)
Linux
- 64-bit commercial version (ZIP archive)
- 64-bit demo version (ZIP archive)
- 64-bit OctaneVR (ZIP archive)
Happy rendering,
Your OTOY NZ Team