We are excited to bring you the first beta of Octane 2026.1. We have packed a large number of changes into this release, and are looking forward to getting your feedback prior to the upcoming release.
As with all experimental builds, we advise to not use this release for production purposes. We cannot guarantee that scenes saved with this version will be compatible in future releases, but we are trying our best to maintain this compatibility regardless. Please keep in mind that changes are still being made daily although this build already includes pretty much every single feature that will be shipped in the 2026.1 release.

Important notes:
- The minimum NVIDIA driver version required has been raised to R535 (R572 for GeForce RTX50 series).
- The minimum version of macOS required is 14.5.
- Various optimizations are still required so performance may not be 100% indicative of the final version.
Changes since 2026.1 Alpha 3
Gaussian splats
- Added support for loading from, and exporting to, SPZ compressed Gaussian splats format.
- Gaussian splat node now has clipping inputs that allow to remove points that are outside the clipping primitive bounds.
- Gaussian splats are now supported on macOS.
- Gaussian splats now can be clipped with clipping material.
- Wireframe toggle in the render view settings now also enables Gaussian splats clipping primitive bounds.
Vectron
- Vectron Circular array now has a Radius property to move the input away from the origin.
- Vectron primitives now use absolute values for edge rounding and shell thickness.
- Vectron primitives Box, Cylinder and Prism now support chamfered edges and a Tube modifier.
- Vectron Cylinder now supports more base shapes: Slice, Cut, Arc.
- Vectron Sphere now supports more base shapes: Spherical cone, Cut, Arc.
- In Octane standalone the Vectron nodes have been moved to a dedicated menu.
AOVs
- Render AOVs no longer have to be manually enabled to be used in output AOVs. Any render AOV used by an output AOV will be automatically rendered. If the render AOV has parameters, and these parameters are not specified by manually enabling the render AOV, the default parameters will be used. To prevent restarting the render when modifying output AOVs, the output AOV group node has a new "Lock render AOVs" pin.
- Using an unavailable render AOV or Cryptomatte mask in an output AOV now always produces the same result as if the render AOV or Cryptomatte mask was available and blank.
- Some output AOV layer node types now have a new input called "Effects". This allows applying layers to a render AOV/image file/solid color/etc. before blending it on top of the background.
- The following node types now have an Effects input:
- Render AOV
- Image file
- Solid color
- Texture
- Light mixer
- Load snapshot
- Added a heading to some output AOV layer node inputs.
- The Open Image Denoise and Remove hot pixels output AOV layer nodes have moved from the "Effects - post-processing" category to "Effects - denoise".
- The Open Image Denoise output AOV layer node now automatically sets up its albedo and normal inputs for convenience.
- The albedo/normal auxiliary inputs of an Open Image Denoise output AOV layer node are no longer used when the connected layer is disabled.
- Added a new render AOV: Environment (unoccluded). This is like the existing Environment render AOV but only contains the parts of the environment that are directly visible to the camera. This can be used for more accurate compositing for pixels that are partially covered by geometry, where the color of the environment in the covered part is significantly different to the color in the uncovered part.
- New output AOV layer node type "Cryptomatte mask", to replace "Mask with Cryptomatte". This can be used in conjunction with the "Mask" layer or the new "Unblend" layer.
- New output AOV layer node type "Expand/contract". This layer expands or contracts the alpha channel of the layer beneath it, which may be useful for cleaning up masks.
- New output AOV layer type: Unblend. This attempts to extract the original foreground from a composited image, and is useful for applying a Cryptomatte mask without the background bleeding in around the edges.
- New output AOV layer type: Reblend. This takes a blended image, splits it into background and foreground (using an Unblend layer internally), applies some effects to the background and some
effects to the foreground, and then blends them back together. This is useful when you want to use a Cryptomatte mask to apply color adjustments to some geometry, for example. - The output AOV and composite texture layer node types "Mask with layer group" have been renamed to simply "Mask".
- The output AOV layer nodes to save, load and discard "checkpoints" have been renamed to use the term "snapshots" instead.
- All denoised render AOVs are now disabled when the denoiser is disabled.
- The "Postfx media" render AOV node has a new input, "Separate mask and color". If this is enabled, an additional render AOV "Postfx media mask" will be output, and the "Postfx media" render AOV will be opaque. They can be composited with the main beauty pass by first blending the mask using "normal" blend mode and then blending the color using "add" blend mode. This is an alternative to simply using "normal" blend mode for the single render AOV, for cases where that doesn't work for transparent pixels due to limitations in the output format or compositing tool used.
- The Adjust opacity output AOV layer can no longer produce alpha values greater than 1 if you set the value outside the slider range.
- The alpha render AOV is now correctly white when used in an output AOV when the render does not have an alpha channel.
- The default Cryptomatte type when creating a Cryptomatte render AOV has changed from "Material node" to "Material node name", which is stable between runs.
- The different choices for "Regions" in blending settings of an output AOV layer now have slightly more intuitive names.
- The minimum slider value for the Radius parameter of Blur and Sharpen output AOV layer nodes is now zero.
- Three new blend modes for output AOV layers: "Normal (reverse)", "Subtract (reverse)" and "Divide (reverse)". These are the same as their non-reversed counterparts with the foreground and background inputs swapped. This allows you to, for example, put a layer underneath a composited image without having to reorganize the layers.
- Increased accuracy of the post processing render AOV at the edges of geometry in some cases when "Include environment" is enabled and the new "Environment (unoccluded)" render AOV is also enabled.
- Allow fully transparent emissive pixels to be produced in render AOVs. For example, the postfx media render AOV when light beams are being used without fog.
LOD data
- Added support for meshlets on macOS.
- Meshlet meshes are now built and cached immediately after loading a scene and not during the geometry compilation for rendering. This process happens in the background but is indicated in the status bar. When you start rendering, it won't begin until all meshlet meshes, that are part of the currently rendered scene, have been built and cached.
- You can set the bias of individual virtual textures in the image load preferences.
- The directory used for caching large files can now be changed.
- The preferences to set paths to caches and other directories in the file system are now on a separate page in the preferences panel.
- Added more functions to the Lua module
octane.cachesthat allow you to manage the meshlets and virtual texture caches via Lua scripts (see chapter "Lua API" below).
Fixes
- USD importer : Resolved issues with relative UDIM paths.
- Fixed MaterialX image nodes issues around caching, reloading and manual file path updating.
- Fixed black edges where Vectron objects and meshes intersect.
- Fixed wrong transforms used when connecting the same transform node to multiple projections.
- Fixed the issue that the IOR info AOV didn't take IOR textures into account. This bug affected the standard and universal materials.
- Fixed hang when enabling virtual texturing on an image node that doesn't contain data.
- Fixed updates after an asynchronous virtual texture build finishes.
- Fixed possible crash at shutdown if closing Octane right after adding a virtual texture.
- Fixed Tile set node on macOS.
- Fixed crash if trying to use an OSL baking camera on macOS. (We are currently unable to support this feature on macOS).
- Fixed mask produced by the old, pre-2023.1 Cryptomatte mask output AOV node, which could be fully white in the RGB channels.
- Fixed popup submenus sometimes being slow to open when moving the mouse.
- Fixed using shift+scroll to change values in the node inspector on macOS.
- Fixed USDZ scenes that loaded empty when loaded from an ORBX package.
- Fixed a crash that could occur when picking a Vectron (e.g. with the object or camera focus pickers) on macOS.
- Fixed an issue that made it possible that a volume's velocity channel loaded via a plugin or
.luascript, rather than from a VDB in Octane standalone, either didn't get exported or was marked as inactive in the VDB import preferences dialog after saving the scene. - Fixed errors in the log when some nodes have no projection node connected.
- Fixed issues preventing the correct selection of the velocity grids in the VDB import preferences dialog in certain circumstances.
- Fixed bug that IOR on standard surface material wasn't clamped to the valid range.
- Fixed virtual textures not loading correctly if you have an image node with a virtual texture in the scene, and you create another image node with the same file name.
- Fixed activation dialogs not showing up in plugins.
- Fixed issue where
TfTokenvalues were not correctly read from USD scenes which could cause wrong render results. - Fixed issue causing error message "Could not initialize DXGI adapter" to be displayed when enabling SLI.
- Fixed an issue where the USD importer used an incorrect subdivision scheme.
- Fixed issues with UVs and material assignments on
UsdBasicCurves. - Fixed issues related to loading transformation data from
UsdPrim. - Fixed memory leak happening in some scenarios where the Octane application would not initialize properly.
- Fixed too small cursors at high DPI settings when using tools like the material picker in the render view port.
- Fixed render failure if there is a COFR file in your cache folder that was created with older versions of Octane.
- Fixed network render when using the new displacement system.
- Removed unnecessary dialogue displayed after closing the sign in window.
- Correct documentation of
_getuv()OSL function to refer to 1-based indices instead of 0-based indices. - Fixed virtual texture caches sometimes not readable after Octane unexpectedly closes.
- Fixed crash when trying to use a Instance color texture node.
- Fixed MaterialX vertical flip of splittb, ramptb and ramp4 texture nodes.
Other changes
- Added support for macOS 26.
- Added support for Apple M5 devices.
- IOR and Anisotropy inputs on all materials and material layers now allow texture inputs.
Note: metallic IOR inputs were not converted for performance reasons. Inverse IOR maps are removed to be consistent across all materials. Scenes that use inverse IOR maps are automatically converted by adding a reciprocal node.
- Added
Materials > OpenPBRsurface material node. - Reorganized some lists of node types to make things easier to find in the Node Graph Editor panel.
- Added support for image sourcing from
.usdzarchives using paths like:/path/to/archive.usdz[internal/file.ext] - Added support for image sourcing of UDIM tiles using paths like:
/path/to/tiles.<UDIM>.ext - Added support for image sourcing of UDIM tiles from
.usdzarchive using paths like:/path/to/archive.usdz[internal/tiles.<UDIM>.ext] - All image node types now support all combinations of sourcing from
.usdzw/out UDIM patterns w/out virtual texturing in.ocs/.orbx - Improved MaterialX and USD importers support for all image file formats when sourcing from USDZ and/or using UDIM tiles
- Improved node UI in Standalone for MaterialX image nodes and for displaying all relevant information in all modes
- Updated MaterialX node definitions to version 1.39.4
- Added new MaterialX image nodes LatLongImage, HexTiledImage and HexTiledNormalMap
- Added new MaterialX procedural node Fractal2d
- Added CMYK halftone procedural effect which simulates CMYK halftone print.
- The 2024.1 compatibility mode for projection nodes is now more accurate when using OSL projection nodes. When using such nodes as projections for image textures, 2024.1 used to ignore the
string variant = "image"metadatum, and the resulting projection was always the unmodified form used for 3D procedurals, even if the OSL projection had built-in projection nodes as input. 2025.1 and 2025.2 produce the wrong UV mapping for these nodes in 2024.1 compatibility mode — this output will not be reproduced by any compatibility mode going forward.. - Composite texture has been moved into the same submenu as all the layers that can be used with it.
- Cryptomatte types are now grouped under "Stable" and "Unstable" headings.
- Increased accuracy of results from the Octane denoiser at the edges of geometry in some cases.
- MaterialX importer now has improved support for .mtlx files exported from 3dsMax.
- New optional Diffuse BRDF model named 'Oren-Nayar (Energy preserving)' that preserves energy at high roughness
- New optional Sheen BRDF model named Fuzz with better Cloth shading and that can also be used for
Dust coating at high roughness. Selection input for Sheen BRDF has been added to the Sheen Layer,
Metallic, Glossy, Standard Surface and Universal materials. - The new Fuzz BRDF model is now always used in the Fuzz layer of the OpenPBR Surface material.
- Apple M1/M2 devices now make use of Metal's ray-tracing software fallback.
- Deleted release log flag
compDisableMetalRt. - Octane now supports 10 float vertex attributes (up from 4) and 10 color vertex attributes (up from 2).
- Environment nodes have new pins to add the sun/sky to trace sets and to control which objects can cast shadows from the sun via trace sets.
- The range of IOR values visible in IOR info pass changed from [1..8] to [0..10].
- New kernel compatibility version that enables legacy IOR info pass behavior.
- The top-level category "Texture layers" has been renamed to "Composite textures" and Composite texture has been moved in there.
- OSL function
getattribute()has more strict matching of output variable types, it is now more in line with what the OSL specification allows: apart from standard implicit conversions, only float to float[2], and float[2] to triple (point, vector, etc...) are allowed. For fetching a vertex attribute, the output type must be float or triple. - If the output variable of the OSL function
getattribute()doesn't have the right type, the compilation no longer fails, but instead the standard behavior is followed (the output variable is not modified and thegetattribute()call returns 0). - Directional lights now have an object layer pin to allow using trace sets to control light visibility and which objects cast shadows.
- Toon lights now have an object layer pin to allow using trace sets to control light visibility and which objects cast shadows.
- Added support for the animated visibility attribute in USD
- The new texture displacement implementation is the default and specified in the
Texture displacementsettings by settingQualitytoHigh.
Lua API
-
getMxInputNamesAndPinIds()now returns 3 arrays instead of 2 with the third being the mapped node pin indices. - Added the following functions to
octane.cachesto manage the meshlets and virtual textures caches:-
octane.caches.hasMeshletCacheFile()checks whether a meshlet cache file exists for a mesh node. -
octane.caches.checkMeshletBuildStatus()determines the current state of the meshlet cache entry of a given mesh node. -
octane.caches.clearMeshletCacheFileForNode()deletes the meshlet cache entry of a given mesh node if it's not used anywhere else. -
octane.caches.getVirtualTextureCacheSize()returns the currently configured size of the virtual texture cache. -
octane.caches.getVirtualTextureCacheUsedSize()returns the amount of data is currently stored in the virtual texture cache. -
octane.caches.pruneVirtualTextureCache()prunes the data stored in the virtual texture cache to the specified amount. -
octane.caches.checkVirtualTextureStatus()determines the current state of the virtual texture cache entry of a given texture node. -
octane.caches.clearVirtualTextureCacheForNode()deletes the virtual texture cache entry of a given texture node if it's not used anywhere else.
-
- Removed the previously optional
useMetalRayTracingargument fromoctane.render.setDevicesActivity, because Metal RT is now always enabled. - Deleted function
octane.render.hardwareRayTracingEnabledas this is now always true.
Downloads
Downloads for Studio+ Subscription Users
OctaneRender Studio+ 2026.1 Beta 1 Standalone for Windows (installer)
OctaneRender Studio+ 2026.1 Beta 1 Standalone for Windows (ZIP archive)
OctaneRender Studio+ 2026.1 Beta 1 Standalone for Linux
OctaneRender 2026.1 Beta 1 Standalone for macOS
OctaneRender Studio+ 2026.1 Beta 1 Node for Windows (installer)
OctaneRender Studio+ 2026.1 Beta 1 Node for Windows (ZIP archive)
OctaneRender Studio+ 2026.1 Beta 1 Node for Linux
Happy rendering
Your OTOY team

