There is currently very little documentation for this addon – unfortunately you’re on your own! If you’d like to help write something up, please let me know and I can help you.



3Delight/blender uses its own variable parsing for many user-set paths, which isn’t available in the standard blender. This functionality was added to make up for blender lacking easy means of using environment variables or expressions in string fields. These variables will be checked in paths in the following order:

  1. Environment Variables
    If these are already set outside of Blender, these will be preserved and not overridden by Blender. Otherwise if the variables are not set, they will be initialised by what’s in the Render Properties → Environment Variables panel,
  2. Special 3delight/blender data variables
    • {blend} – blend file name (without file extension)
    • {scene} – scene name
    • {object} – object name

    These are only accessible where relevant, when there is an obvious context. Eg. {object} is available in the shadow map path (translating to the name of the light), but not in the RIB export path, where there is no specific object that can be implied.

  3. Frame numbers
    3delight/blender will convert sequences of hashes to the current frame number where possible. Eg. /path/file_####.exr -> /path/file_0001.exr
  4. Blender relative paths
    Eg. //myfile.exr

3Delight/blender uses some environment variables by default (eg. $OUT, $SHD, $PTC), which can be easily set in the Render Properties → Environment Variables panel. If these variables are already set in the environment they will be inherited, and not overridden by blender.


Shader Parameter Annotations


checkbox –> Boolean property

optionmenu –> Enum property

floatslider –> Float property with slider

inputfile –> String property, with file selector


Using Primitive Variables





§ 6 Responses to Documentation"

  • Bernardo Rivera says:


    I have become increasingly interested in text-based shaders recently, and with OSL in Blender being still early in development I decided to give 3delight another go. I tried rendering a katana I modeled, but the render only uses the first material, instead of using all of the assigned materials in their respective faces. Is this a current limitation of the exporter, or is there a work-around?

    Thanks for your time and hard work on this,
    Bernardo J Rivera

  • Matt says:

    Hi Bernado, at the moment that’s a known limitation. You can work around it by separating your object by materials.

  • Bernardo Rivera says:

    I see. I guess it’s not too bad of a work around since I only render stills.

    Thanks for the quickly!

  • Cristian Jimenez says:

    Hello, how are you?

    I am trying to connect blender 2.64 to 3delight, and the preview works just fine, but when rendering I only get a black screen, and the license server conse outputs a “license request” and “license release”, but no render.

    Thank you.

  • Dileep says:


    Is there is a way to keep certain lights from contributing to pbgi? What I do is I open up the point cloud RIB and remove the lines that make up the light and then render the RIBs externally and it works. Kinda tedious for animations even with a batch text replacing tool. I am also trying to avoid rendering in two passes.


  • Giuseppe says:

    Hello, I worked a lot with 3Delight on a 3D softare C++ i wrote several years ago, it worked really well but the UI was really limited. Now I discovered your add-on for Blender. It seems really good. I installed the package on Blender 2.79b, It seemed ok at a first glance, (i see it on blender interface) but if i try to render a cube the cube is black (bkgr is transparent) so no lights.. I don’t understand how to use 3dl shaders/lightshaders on Blender Interface…
    Any help will be really appreciate..
    Thank you!

Leave a Reply to Giuseppe Cancel reply

Your email address will not be published. Required fields are marked *