appleseed Users Forum

Transparent BSDFs?

Hi,

I’m looking into transparent materials in appleseed studio, and the choice seems to be very limited. There is the glass BSDF, but everything else is a BRDF. How do people model non-glassy transparent materials? Are there any OSL materials available? Or do they use a custom combination of a BRDF and the specular BTDF? I was hoping for some ubershader that would support a wide range of transparent and nontransparent materials, but if it exists I haven’t found it.

On a related note, are there any plans to upgrade the Disney BRDF to the BSDF version from 2015?

kind regards,
Stefaan

Hi Stefaan,

Our ubershader is the asStandardSurface. It supports thin translucency and transparency as well as various subsurface scattering modes.

An overview about available shader is here: https://appleseed-maya.readthedocs.io/en/latest/shaders/shaders.html#materials

On a related note, are there any plans to upgrade the Disney BRDF to the BSDF version from 2015?

Not for now, the asStandardSurface has all the additions (e.g. sss) the current asDisney lacks.
We had discussions about supporting MaterialX in the future.

Internally, appleseed core implements various BSDF/BRDF:
https://github.com/appleseedhq/appleseed/wiki/Built-in-Entities#2-built-in-bsdf-models

On a note: Assigning materials by using one of our plugins (for Blender/Max/Maya/Gaffer) is easier than doing it inside studio.

Thank you very much, that asStandardSurface looks very promising. But I’m struggling a bit with how to use this as a material:

  • using Blenderseed, in the Shader editor, the asStandardSurface nodes Color output should go to an (undocumented?) asClosureAsSurface node, but I haven’t found yet what I should connect the nodes Transparency output to.
  • in Appleseed Studio, is it even possible to specify this as a material? I’ve found the as_standard_surface.osl file in the source, but I see no way to set a path to this via the “Create OSL Material” UI, nor via Surface Shader or Shader Group. I feel like I’m missing something, I assume manually editing the .appleseed file is probably the wrong way to use the “default” material of a renderer :slight_smile:

kind regards,
Stefaan

  • The output of the surface shader needs to be connected to asClosure2Surface (see screenshot below). This is similar to Cycles where the surface shader nodes are connected to the Material Node.
    You can connect the Transparency output to the asClosure2Surface instead of the Color output of asStandardSurface but that is not necessary. A change in transparency affects also the Color output.

  • appleseed studio is not really meant for scene creation or extensive modification. It is more a scene debugging and inspection environment. You cannot user friendly create a scene/materials from scratch with it.

When you export scenes from e.g. blenderseed then appleseed materials get translated into shader groups (see extract from scene file below). Unfortunately these shader groups are not (yet) editable with the Attribute Editor in studio.

I would suggest using the plugins for scene editing and then export to studio if you need to tweak.

Extract from exported scene file:

            <shader_group name="Material.001_tree">
                <shader type="shader" name="as_standard_surface" layer="asStandardSurface">
                    <parameter name="in_color" value="color 0 0 0" />
                    <parameter name="in_face_tint" value="color 0.258724 0.316538 0.396061" />
                    <parameter name="in_ior" value="float 1.49" />
                    <parameter name="in_transparency" value="color 0.710384 0.557016 0.595661" />
                </shader>
                <shader type="surface" name="as_closure2surface" layer="asClosure2Surface">
                </shader>
                <connect_shaders src_layer="asStandardSurface" src_param="out_outColor" dst_layer="asClosure2Surface" dst_param="in_input" />
            </shader_group>