PBR MAT

From Derivative
Jump to: navigation, search


Summary

The PBR MAT creates a material using a Physically Based Rendering (PBR) lighting model. It has support for textures, reflections, bumps, cone lights, rim lights, alpha maps and more.

It also supports Substance Designer PBR materials loaded in the Substance TOP.

You can output its GLSL shader into two DATs for further adaptation in a GLSL MAT by using the Output Shader parameter.

This OP creates physically based materials from texture maps you assign to it and works with any content pipeline whether you use Maya, Houdini, Unreal, Photoshop etc

See also: Substance TOP, and the PBR texture libraries such as Quixel and Poliigon

PythonIcon.pngpbrMAT_Class


Parameters - RGB Page

Base Color basecolor - Base color of the texture, used to calculate diffuse and specular contributions.

  • Red basecolorr -
  • Green basecolorg -
  • Blue basecolorb -

Specular Level specularlevel - The amount of contribution the Specular Level Map adds to the material.  

Metallic metallic - The amount of contribution the Metallic Map adds to the material.  

Roughness roughness - The amount of contribution the Roughness Map adds to the material. Used to calculate specular D, R, and F (blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf page 3).  

Ambient Occlusion ambientocclusion - The amount of contribution the Ambient Occlusion Map adds to the material. Ambient Occlusion affects the contribution from the Environement Light COMP.  

Env Light Quality envlightquality - The sampling quality of the Environment Light with the material.  

Emit emit - This is the color that the material will emit even if there is no light.

  • Red emitr -
  • Green emitg -
  • Blue emitb -

Constant constant - Adds to the final color. Where there are point colors, finalcolor += Point Color * Constant Color. This behaves like there is ambient illumination of 1 1 1. It is not affected by textures or transparency.

  • Red constantr -
  • Green constantg -
  • Blue constantb -

Polygon Front Faces frontfacelit - - Controls how the polygon's normal is used to light the front face of the polygon. For more information refer to the Two-Sided Lighting article.

  • Use Per-Light(s) Parameter uselight -
  • Front Lit frontlit -
  • Back Lit backlit -

Polygon Back Faces backfacelit - - Back Face's</span> backfacelit - Controls how the polygon's normal is used to light the back face of the polygon. For more information refer to the Two-Sided Lighting article.

  • Use Per-Light(s) Parameter uselight -
  • Front Lit frontlit -
  • Back Lit backlit -

Output Shader... outputshader - This button will bring up a dialog that will create a GLSL MAT and Text DATs with shader code that this PBR MAT is currently using. Since shaders are dependent on the number and type of lights, it will list some possible different shader choices, based on what lighting configurations have been used in the current system. If no shaders are listed in the dialog, it means no shader has been rendered in the current session of TouchDesigner. Turn on the viewer for the Phong MAT, or setup a render in a Render TOP. That will create/compile some shaders and will cause the list to be populated. For example if you want to see a shader that does shadow mapping, setup a render that does shadow mapping and you will see that come up in the list.


Parameters - Maps Page

Substance TOP substance - Reference a Substance TOP containing an .sbsar file. Referencing the TOP will automatically unpack all enabled textures without having to manually fill in any of the below texture maps. Manually filling in any of the texture map parameters will override the texture automatically pulled from the .sbsar package.

Texture Sampling Parameters

Base Color Map basecolormap - Clicking on the arrows to the right of the map field will open the Texture Sampling Parameters for Color Map. The other Map parameters below will have their own Texture Sampling Parameters as well.

Texture Sampling Parameters

Extend U basecolormapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V basecolormapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W basecolormapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter basecolormapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter basecolormapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord basecolormapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation basecolormapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Specular Level Map specularlevelmap - Specifies a specular level map.

Texture Sampling Parameters

Extend U specularlevelmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V specularlevelmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W specularlevelmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter specularlevelmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter specularlevelmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord specularlevelmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation specularlevelmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Channel Source specularlevelmapchannelsource - -

  • Luminance luminance -
  • Red red -
  • Green green -
  • Blue blue -
  • Alpha alpha -
  • RGB Average rgbaverage -
  • RGBA Average average -

Metallic Map metallicmap - Specifies a metallic texture map. This is equivalent to the Metallic map in Substance Designer.

Texture Sampling Parameters

Extend U metalnessmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V metalnessmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W metalnessmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter metalnessmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter metalnessmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord metallicmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation metallicmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Channel Source metallicmapchannelsource - -

  • Luminance luminance -
  • Red red -
  • Green green -
  • Blue blue -
  • Alpha alpha -
  • RGB Average rgbaverage -
  • RGBA Average average -

Roughness Map roughnessmap - Specifies a roughness texture map. This is equivalent to the Roughness map in Substance Designer.

Texture Sampling Parameters

Extend U roughnessmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V roughnessmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W roughnessmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter roughnessmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter roughnessmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord roughnessmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation roughnessmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Channel Source roughnessmapchannelsource - -

  • Luminance luminance -
  • Red red -
  • Green green -
  • Blue blue -
  • Alpha alpha -
  • RGB Average rgbaverage -
  • RGBA Average average -

Ambient Occlusion Map ambientocclusionmap - Specifies a ambient occlusion texture map. This is equivalent to the Ambient Occlusion map in Substance Designer. Ambient Occlusion affects the contribution from the Environement Light COMP.

Texture Sampling Parameters

Extend U ambientocclusionmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V ambientocclusionmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W ambientocclusionmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter ambientocclusionmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter ambientocclusionmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord ambientocclusionmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation ambientocclusionmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Channel Source ambientocclusionmapchannelsource - -

  • Luminance luminance -
  • Red red -
  • Green green -
  • Blue blue -
  • Alpha alpha -
  • RGB Average rgbaverage -
  • RGBA Average average -

Height Map heightmap - Specifies a height texture map. This is equivalent to the Height map in Substance Designer.

Texture Sampling Parameters

Extend U heightmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V heightmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W heightmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter heightmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter heightmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord heightmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation heightmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Channel Source heightmapchannelsource - -

  • Luminance luminance -
  • Red red -
  • Green green -
  • Blue blue -
  • Alpha alpha -
  • RGB Average rgbaverage -
  • RGBA Average average -

Normal Map (Bump) normalmap - Uses a Normal Map from TOPs to create a 'bump map' effect. Bump-mapping simulates bumps or wrinkles in a surface to give it a 3D depth effect. Your geometry must have tangent attributes created for this feature to work (T[4]). Create these using the Attribute Create SOP.

Texture Sampling Parameters

Extend U normalmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V normalmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W normalmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter normalmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter normalmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord normalmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation normalmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Bump Scale bumpscale - A multiplier for the 'bump effect' created by the Normal Map parameter.  

Parallax Mapping parallaxmapping - Enable parallax mapping. Must be used in conjunction with a normal map.

Parallax Clamp parallaxclamp - Clamp the parallax shift to a certain value. Parallax shift refers to the calculated offset of the mapped textures.  

Emit Map emitmap -

Texture Sampling Parameters

Extend U emitmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V emitmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W emitmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter emitmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter emitmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord emitmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation emitmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -


Parameters - Alpha Page

Note: Simply applying alpha to an object does not make it transparent. For more information refer to the Transparency article.

Alpha Map alphamap - This map multiplies the alpha of the object. It uses the red channel of the map, other channels are ignored.

Texture Sampling Parameters

Extend U alphamapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V alphamapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W alphamapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter alphamapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter alphamapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord alphamapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation alphamapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Uniform Alpha alphamode - Turning this off will make the alpha change depending on orientation of each polygon's normal compared to the camera. Normals that are pointing at the camera will results in the polygon having an alpha of Alpha Front. Normals that are perpendicular to the camera (facing sideways/up/down) will have Alpha Side for their alpha.

Alpha Front alphafront - The opacity of the material. This parameter is multiplied by point alpha of the object (as will as any other alpha source).  

Alpha Side alphaside - This is used for non-uniform alpha. It is the alpha value polygons that are facing away from the camera will get.  

Alpha Rolloff rolloff - Controls how the alpha changes from Alpha Front to Alpha Side.  

Post-Mult Color by Alpha postmultalpha - At the end of all of the calculations, the color (RGB) is multiplied by the calculated alpha. You can stop this from happening by turning off this checkbox.

Mult Alpha by Light Luminance alphamultlight - When this is enabled, the luminance of the lighting will be multiplied by the alpha, to decreease/increase it.


Parameters - Rim Page

Other rim lights have the same parameters, internal parameter names just have a different number instead of 1.

Enable Rim Light 1 rim1enable - Enables this rim light.

Rim Color Map rim1map - This map will multiple the calculated rim light color.

Texture Sampling Parameters

Extend U rim1mapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V rim1mapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W rim1mapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter rim1mapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter rim1mapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord rim1mapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation rim1mapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Rim Color rim1color - The color of the rim light.

  • Red rim1colorr -
  • Green rim1colorg -
  • Blue rim1colorb -

Rim Center rim1center - The center of the rim lights location, situated somewhere on a 360 degree circle.

Rim Width rim1width - How far from the center the rim light extends.  

Rim Strength rim1strength - Controls the brightness of the rim light.  

Rim Strength Ramp rim1strengthramp - You can specify a horizontal ramp (it will sample the texture at v = 0.5), which controls the the rim lights strength.

Texture Sampling Parameters

Enable Rim Light 2 rim2enable - Enables this rim light.

Rim Color Map rim2map - This map will multiple the calculated rim light color.

Texture Sampling Parameters

Extend U rim2mapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V rim2mapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W rim2mapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter rim2mapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter rim2mapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord rim2mapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation rim2mapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Rim Color rim2color - The color of the rim light.

  • Red rim2colorr -
  • Green rim2colorg -
  • Blue rim2colorb -

Rim Center rim2center - The center of the rim lights location, situated somewhere on a 360 degree circle.

Rim Width rim2width - How far from the center the rim light extends.  

Rim Strength rim2strength - Controls the brightness of the rim light.  

Rim Strength Ramp rim2strengthramp - You can specify a horizontal ramp (it will sample the texture at v = 0.5), which controls the the rim lights strength.

Texture Sampling Parameters


Parameters - Advanced Page

Shadow Strength shadowstrength - This parameter will control how much being in a shadow will change the color of the lighting. At 1 the object will take on the Shadow Color parameter, at 0 it will behave as if it's not in a shadow, even if it is.  

Shadow Color shadowcolor - The color that will be used in shadowed areas.

  • Red shadowcolorr -
  • Green shadowcolorg -
  • Blue shadowcolorb -

Darkness Emit darknessemit - The Phong MAT calculates the current brightness of color of the objects, after taking into account lights, rim lights, emission etc. It then uses this brightness (between 0-1) and fades in the Darkness Emit Color. The darker the area, the more of the darkness emit color that will be applied.

Darkness Emit Color darknessemitcolor - The color that is used for areas that are in darkness.

  • Red darknessemitcolorr -
  • Green darknessemitcolorg -
  • Blue darknessemitcolorb -

Darkness Emit Map darknessemitmap - This map multiplies the Darkness Emit Color. This maps alpha is not used.

Texture Sampling Parameters

Extend U darknessemitmapextendu - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend V darknessemitmapextendv - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Extend W darknessemitmapextendw - -

  • Hold hold -
  • Zero zero -
  • Repeat repeat -
  • Mirror mirror -

Filter darknessemitmapfilter - -

  • Nearest nearest -
  • Linear linear -
  • Mipmap Linear mipmaplinear -

Anisotropic Filter darknessemitmapanisotropy - -

  • Off off -
  • 2x 2x -
  • 4x 4x -
  • 8x 8x -
  • 16x 16x -

Texture Coord darknessemitmapcoord - -

  • Texture Layer 0 (uv[0-2]) uv0 -
  • Texture Layer 1 (uv[3-5]) uv1 -
  • Texture Layer 2 (uv[6-8]) uv2 -
  • Texture Layer 3 (uv[9-11]) uv3 -
  • Texture Layer 4 (uv[12-14]) uv4 -
  • Texture Layer 5 (uv[15-17]) uv5 -
  • Texture Layer 6 (uv[18-20]) uv6 -
  • Texture Layer 7 (uv[21-23]) uv7 -
  • Screen Space Coordinates screenspace -

Coord Interpolation darknessemitmapcoordinterp - -

  • Perspective Correct perspectivecorrect -
  • Linear (noperspective) linear -

Write Camera Space Depth to Alpha writecameradepthtoalpha - This cause the camera space depth of the pixel to be written to the alpha channel of the output TOP. This value can be useful for post-processing effects, but ofcourse you will not have the result of all the alpha calculations if you turn this on (although they'll get used to multiply the output color, assuming Post-Mult Color by Alpha is enabled.

Apply Point Color applypointcolor - Normally the color attribute (Cd[4]) coming from the SOP is used in the lighting calculation, you can turn off using the color attribute by un-checking this parameter.

Instance Texture instancetexture - When provider per-instance textures in the Geometry COMP, this parameter selects which map the instance texture will be applied as.

Color Buffer 1 RGB colorbuffer1rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.

Color Buffer 2 RGB colorbuffer2rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.

Color Buffer 3 RGB colorbuffer3rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.

Color Buffer 4 RGB colorbuffer4rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.

Color Buffer 5 RGB colorbuffer5rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.

Color Buffer 6 RGB colorbuffer6rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.

Color Buffer 7 RGB colorbuffer7rgb - Allows sending things like normals or emit color to different Render TOP color buffers in a single pass.


Parameters - Optimize Page

Note: The features on this page are legacy and should not be needed on modern GPUs. The below parameters avoid doing extra work in the pixel shader for some vectors, resulting in faster rendering. However this can result in lighting artifacts. Try them out and see if they make a visual difference to your scene.

Each of the parameters below uses the following menu

  • Use Global Settings - Uses the global settings found in the Preferences dialog under Edit > Preferences > MATs
  • Yes - Turns the option on.
  • No - Turns the option off.

Fast Normalize Half-Angle fastnormhalfang - -

  • Use Global Settings useglobal -
  • Yes yes -
  • No no -

Don't Re-normalize Normal dontrenormnorm - -

  • Use Global Settings useglobal -
  • Yes yes -
  • No no -

Don't Re-normalize Light Vector dontrenormlightvec - -

  • Use Global Settings useglobal -
  • Yes yes -
  • No no -

Don't Re-normalize Spot Vector dontrenormspotvec - -

  • Use Global Settings useglobal -
  • Yes yes -
  • No no -

Don't Re-normalize Eye Vector dontrenormeyevec - -

  • Use Global Settings useglobal -
  • Yes yes -
  • No no -

Fast Deform Tangent fastdeformtangent - -

  • Use Global Settings useglobal -
  • Yes yes -
  • No no -


Parameters - Deform Page

Deform dodeform -

Get Bone Data: deformdata - -

  • From a SOP sop -
  • From another MAT mat -
  • From a DeformIn MAT deformin -

SOP with Capture Data targetsop -

pCaptPath Attrib pcaptpath -

pCaptData Attrib pcaptdata -

Skeleton Root Path skelrootpath -

MAT mat -



Parameters - Common Page

Blending

Blending is summing the color value of the pixel being drawn and the pixel currently present in the Color-Buffer. Blending is typically used to simulate Transparency. The blending equation is: Final Pixel Value = (Source Blend * Source Color) + (Dest Blend * Destination Color)


Blending(Transparency) blending - This toggle enables and disables blending. However see the wiki article Transparency.

Source Color * srcblend - - This value is multiplied by the color value of the pixel that is being written to the Color-Buffer (also know as the Source Color).

  • Zero zero -
  • Dest Color dcol -
  • One Minus Dest Color omdcol -
  • Source Alpha sa -
  • One Minus Source Alpha omsa -
  • Dest Alpha da -
  • One Minus Dest Alpha omda -
  • Source Alpha Saturate sas -
  • One one -

Destination Color * destblend - - This value is multiplied by the color value of the pixel currently in the Color-Buffer (also known as the Destination Color).

  • One one -
  • Src Color scol -
  • One Minus Src Color omscol -
  • Source Alpha sa -
  • One Minus Source Alpha omsa -
  • Dest Alpha da -
  • One Minus Dest Alpha omda -
  • Zero zero -

Separate Alpha Function separatealphafunc - This toggle enables and disables separate blending options for the alpha values.

Source Alpha * srcblenda - - This value is multiplied by the alpha value of the pixel that is being written to the Color-Buffer (also know as the Source Alpha).

  • Zero zero -
  • Dest Color dcol -
  • One Minus Dest Color omdcol -
  • Source Alpha sa -
  • One Minus Source Alpha omsa -
  • Dest Alpha da -
  • One Minus Dest Alpha omda -
  • Source Alpha Saturate sas -
  • One one -

Destination Alpha * destblenda - - This value is multiplied by the alpha value of the pixel currently in the Color-Buffer (also known as the Destination Alpha).

  • One one -
  • Src Color scol -
  • One Minus Src Color omscol -
  • Source Alpha sa -
  • One Minus Source Alpha omsa -
  • Dest Alpha da -
  • One Minus Dest Alpha omda -
  • Zero zero -


Depth Test

Depth-Testing is comparing the depth value of the pixel being drawn with the pixel currently in the Frame-Buffer. A pixel that is determined to be in-front of the pixel currently in the Frame-Buffer will be drawn over it. Pixels that are determined to be behind the pixel currently in the Frame-Buffer will not be drawn. Depth-Testing allows geometry in a 3D scene to occlude geometry behind it, and be occluded by geometry in-front of it regardless of the order the geometry was drawn.

For a more detailed description of Depth-Testing, refer to the Depth-Test article.


Depth Test depthtest - Enables and disables the Depth-Test. If the depth-test is disabled, depths values aren't written to the Depth-Buffer.

Depth Test Function depthfunc - - The depth value of the pixel being drawn is compared to the depth value currently in the depth-buffer using this function. If the test passes then the pixel is drawn to the Frame-Buffer. If the test fails the pixel is discarded and no changes are made to the Frame-Buffer.

  • Less Than less -
  • Less Than or Equal lessorequal -
  • Equal equal -
  • Greater Than greater -
  • Greater Than or Equal greaterorequal -
  • Not Equal notequal -
  • Always always -

Write Depth Values depthwriting - If Write Depth Values is on, pixels that pass the depth-test will write their depth value to the Depth-Buffer. If this isn't on then no changes will be made to the Depth-Buffer, regardless of if the pixels drawn pass or fail the depth-test.


Alpha Test

Alpha-testing allows you to choose to draw or not draw a pixel based on its alpha value.


Discard Pixels Based on Alpha alphatest - This enables or disables the pixel alpha test.

Keep Pixels with Alpha alphafunc - - This menu works in conjunction with the Alpha Threshold parameter below in determining which pixels to keep based on their alpha value.

  • Less Than less -
  • Less Than or Equal lessorequal -
  • Greater Than greater -
  • Greater Than or Equal greaterorequal -

Alpha Threshold alphathreshold - This value is what the pixel's alpha is compared to to determine if the pixel should be drawn. Pixels with alpha greater than the Alpha Threshold will be drawn. Pixels with alpha less than or equal to the Alpha Threshold will not be drawn.  


Wire Frame

The wire-frame feature will render the geometry as wire-frame, using the actual primitive type used in the render. What this means is surfaces like Metaballs, NURBs and Beziers will become a wire-frame of the triangles/triangle-strips used to render them (since these types of primitives can't be natively rendered in OpenGL).


Wire Frame wireframe - - Enables and disables wire-frame rendering with the option of OpenGL Tesselated or Topology based wireframes.

  • Off off -
  • OpenGL Tesselated Wire Frame tesselated -
  • Topology Wire Frame topology -

Line Width wirewidth - This value is the width that the wires will be. This value is in pixels.  


Cull Face

The cull face parameter will cull faces from the render output. This can be used as an optimization or sometimes to remove artifacts. See Back-Face Culling for more infomation.


Cull Face cullface - - Selects which faces to render.

  • Use Render Setting userender - Use the render settings found in the Render or Render Pass TOP.
  • Neither neither - Do not cull any faces, render everything.
  • Back Faces backfaces - Cull back faces, render front faces.
  • Front Faces frontfaces - Cull front faces, render back faces.
  • Both Faces bothfaces - Cull both faces, render nothing.


Polygon Depth Offset

This feature pushes the polygons back into space a tiny fraction. This is useful when you are rendering two polygons directly on-top of each other and are experiencing Z-Fighting. Refer to Polygon Depth Offset for more information. This is also an important feature when doing shadows.


Polygon Depth Offset polygonoffset - Turns on the polygon offset feature.

Offset Factor polygonoffsetfactor -  

Offset Units polygonoffsetunits -  


MATs
Constant • Depth • GLSL • In • MAT• MAT Common age• Null • Out • PBR • Phong • Point Sprite • Pointsprite • Select • Switch • Texture iltering• Texture Sampling arameters• Wireframe

An Operator Family that associates a shader with a SOP or Geometry Object for rendering textured and lit objects.

A 3D image created with the Render TOP. Also used more generally to include the compositing (with TOPs) to generate an output image.

The OpenGL code that creates a rendered image from polygons and textures. Shaders can be made of up to three parts: Vertex Shader, Geometry Shader and/or Pixel Shader, which are either embedded inside Materials, or placed in Text DATs and referenced to a GLSL Material.

An Operator Family that contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Path.

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

Parameters in TouchDesigner are an operator's settings (numbers, menus, flags, strings, paths) which the user can alter. Parameters for any operator can be opened by right-clicking on the operator and selecting "Parameters..." A currently selected operator's parameters can be viewed in a Network Editor by pressing the keyboard shortcut 'p'.

An Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.

A Link.

Operators that have 1 or more input, like a Math CHOP, are called filters. See Generator.

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.

(1) A Geometry Component can render its SOP geometry many times using CHOP samples, (2) an OP that doesn't actually have its own data, but rather just refers to an OP (or has an input) whose data it uses. This includes Null OPs, Select OPs and Switch OPs.

TouchDesigner is a hierarchy of components. "root" is the top-most network in the hierarchy. The Path is simply /. A typical path is /project1/moviein1.

The location of an operator within the TouchDesigner environment, for example, /geo1/torus1, a node called torus1 in a component called geo1. The path / is called Root. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.

The term "Frame" is used (1) in the Timeline, (2) as a time-unit in CHOPs, (3) as a time-unit in TOPs, and (4) with movies images which are read and created with TOPs.

The connection of an output of one node to the input of another node in a network. In contrast, see Link.