Alpha 3.06 Release

This is a small release solely to address an issue with environment maps that exists in versions 3.05 and earlier. A download has been posted.

The specific issue being fixed here is that in 3.05 and earlier, multiple importance sampling was not enabled for a scene’s environment map. The result of this is that environment maps with uneven lighting, such as a single bright point for a sun, would result in incredibly noisy and overly dark renders.

I’ve made the picture below to illustrate this change. This is two renders of exactly the same scene lit by an environment map, one in 3.05 and one in 3.06.


Thanks to Duncan Howdin for bringing this to my attention.

Alpha 3.05 Release

Today is the release of plugin version Alpha 3.05. A download is available and the changelog has been updated and is included below.

  • Changed: Updated internal Cycles code to parity with Blender 2.78
  • Changed: Emission shader strength map will now be multiplied by the strength scalar value
  • Added: NVIDIA Pascal cards are now supported for CUDA renders (GTX 10-series)
  • Added: Max 2017’s Physical Sun and Sky environment can now be used
  • Added: Depth-of-field is now supported through Max’s Physical Camera
  • Added: New “Multiscatter GGX” distribution for glossy, glass, and anisotropic shaders
  • Added: New node graph editor nodes
    • Input -> Tangent
    • Input -> Texture Coordinate
  • Added: New shader graph slate material that can use up to 16 texmaps
  • Fixed: Environment maps will no longer render with incorrect gamma
  • Fixed: Hair shader will now have uv-based tangents set by default
  • Fixed: Corrected broken buttons in Cycles Shader parameter rollout

This release includes some but not all of the new features that have recently been added to Cycles, notably missing are micropolygon displacement and spherical stereo rendering. I wasn’t able to have these features ready in time for this release, but they will be coming in the future.

I’ll also be releasing another short Youtube video soon covering how to effectively use the Physical Sun and Sky environment map from Max to light a scene.

Upcoming Alpha 3.05 Release

I’ve fallen a bit behind my target of monthly updates so I wanted to write up a quick post about what is going on.

New features for the next release are now largely complete and I’m working to integrate the changes in Cycles itself from the recently-released Blender 2.78. This is taking a bit longer to do than I initially expected and has exposed a few regressions in the plugin I’m working to correct.

If all goes well the new version should be ready for release within a week, but it may take a few extra days depending on how the rest of the new Cycles integration goes.

Alpha 3.03 Release

Alpha 3.03 has been released today. As usual, the changelog and download pages have been updated.

I have also just uploaded a new youtube video showing off the process for converting a Standard Max material into a Cycles-compatible material. The video is intended to be more of an introduction to building Cycles materials within this plugin rather than just demonstrating recently-added features as I have done in the past.

Alpha 3.02 and Roadmap

Alpha 3.02 has been released today. This is another minor release in the alpha 3 series that brings some small fixes and user-requested features. A download is posted and the changelog has been updated.

From here on my plan is to do a new minor release approximately monthly until all of the Alpha features below have been added.

This is a list of features I plan on adding to this plugin up to and past the release of version 1.0. If there are any features missing from here that you would to see in the plugin, please leave a comment and I will look at what needs to be done to support your request.


  • Physical Camera
    • At the least, the plugin will support both motion-blur and depth-of-field through this camera type.
  • Physical Sky
    • It will be possible to do a render using Max 2017’s new physical sky map. This will likely be achieved by baking out the physical sky to an HDR bitmap.
  • ActiveShade Rendering
    • Nothing more to say here, ActiveShade will be coming in a future update.
  • Revamped Normal Map Support
    • Normal maps in the current Slate materials are close to useless as all the parameters are locked.
    • Each material will expose full control of all normal map parameters.
  • Simple PBR Shader
    • This will be a new material type that is a simplified version of an ubershader. It will provide an easy way to render a material based on Substance or Substance-like PBR channels.
  • Node Editor Updates
    • There are still many cycles node types not available in the editor. Most of these will be added in the alpha phase.
    • It will be possible to define environment maps through the node editor. Right now the editor only supports geometry shaders.
  • More Slate Nodes
    • A number of important cycles nodes are only currently supported through the node graph editor. More of these will become available through Slate during Alpha.


  • The beta phase will start when all of the alpha features above are supported. No major features are planned to be added during beta.

Post 1.0

  • OpenCL Support
    • I lack AMD hardware to test this on so I would have trouble providing support or stable builds. I’ll reconsider adding OpenCL support post-launch.
  • OSL Support
    • OSL is only supported for CPU rendering and for pre-release versions I want to focus on features that will work for both CPU and CUDA renders.

Alpha 3.01 Release and Bug Reporting

Today is the release of version 3.01 of the plugin. This release focuses on fixing up some usability issues with the Shader Graph material as well as rendering in progressive refine mode. Changelog and downloads have been posted.

I’ve also just recently added a Report Bug page to this website. It isn’t a proper bug tracker but should serve fine for now. If you have any problems with using the plugin please post a comment there with details and I’ll look into it.

Alpha 3.00 Release

Today I have published the first release of the Alpha 3 series. This release includes what I intend to be the last major feature before 1.0: A new node graph editor. This editor allows users to construct Cycles node graphs with much more creative freedom than was possible in previous iterations of this plugin.

I’ve put together a short youtube video showing how the new node graph editor can be used from inside 3ds Max:

As always, the changelog and download pages have been updated.

New Node Editor

As promised a few weeks ago I’m here with another update on how plugin development is progressing, this time focusing on a Cycles shader graph node editor that I’ve been working on recently. Below is a short video demonstrating this node editor being used to create shader graphs for Cycles’ XML frontend.

Now for a bit on my motivation for making this.

An early problem I faced when making the Cycles plugin for 3ds Max was to find a way to allow users to define Cycles shader graphs in Max. The solution I settled on to begin with was to create a Max material plugin for each type of shader node in Cycles. This allows users to author shader graphs and modify/animate all parameters of those graphs using the normal Max user interface.

This approach is great for letting users assemble simple shaders without needing to learn any Cycles-specific knowledge, but comes with some limitations and unintuitive behavior that might confuse a new user. A few examples of such behavior are:

  • Some cycles nodes simply can’t work within the Max material API. This API limits outputs to be either Texmaps or Materials and only allows one output slot per node. This means that concepts in Cycles like vector maps and float maps, as distinct types from color maps, are not visible to the user. This also makes it difficult to include things like math nodes.
  • All texmaps must be baked out to bitmaps prior to rendering. As it stands, a user must know about this and know that settings for texmap baking can be modified through the use of a ‘Cycles Bitmap Filter’ node. Without this knowledge, texmaps will all bake out at default resolution which will likely produce a render with blurry textures. The plugin should make the user more aware that this baking is happening, and offer a more discoverable way to configure it.
  • Some texmaps and materials that are native to Max could be connected to texture and closure inputs on Cycles materials, but most Cycles materials or texmaps could not be used as inputs to native materials. This allows users to easily create invalid materials by accident if they don’t understand how the plugin builds the Cycles shader graph from the Max shader graph. I can’t expect users to know that, particularly new users, so the plugin should do more to not allow such materials to be made in the first place.

Because of these reasons and more, I thought it would be best to simply let the user work directly with Cycles shader graph nodes rather than having the user construct a graph in Max nodes, then translating it (poorly; with the above problems) to Cycles nodes.

To that end, I created this node editor. It is a light library (depending only on NanoVG and GLFW) that creates a window with a drag and drop GUI vaguely resembling the Blender node editor. Users can use this GUI to build a complete Cycles shader graph.

I’m planning to include this new node editor in the Alpha 3 release of this plugin, which should be ready some time in late June. I’ll have more specific details about how it will integrate with Max at that time. I also plan to release the source to this node editor as an Apache- or BSD-licensed  library once I have the API figured out. This will likely be around the same time as the Alpha 3 release.

That is all for now. As usual, continue to watch this blog for updates.