Defines

Material Requirements Flags

Defines

#define  MTLREQ_2SIDE   (1<<0)
  The material is 2-sided.
#define  MTLREQ_WIRE   (1<<1)
  The material is wire frame material.
#define  MTLREQ_WIRE_ABS   (1<<2)
  Wire frame material, absolute size.
#define  MTLREQ_TRANSP   (1<<3)
  The material uses transparency.
#define  MTLREQ_UV   (1<<4)
  The material requires UVW coordinates.
#define  MTLREQ_FACEMAP   (1<<5)
  The material uses "face map" UV coordinates.
#define  MTLREQ_XYZ   (1<<6)
  The material requires object XYZ coordinates.
#define  MTLREQ_OXYZ   (1<<7)
  The material requires object ORIGINAL XYZ coordinates.
#define  MTLREQ_BUMPUV   (1<<8)
  The Material requires UV bump vectors.
#define  MTLREQ_BGCOL   (1<<9)
  The material requires background color (e.g.
#define  MTLREQ_PHONG   (1<<10)
  The material requires interpolated normal.
#define  MTLREQ_AUTOREFLECT   (1<<11)
  The material needs to build auto-reflect map.
#define  MTLREQ_AUTOMIRROR   (1<<12)
  The material needs to build auto-mirror map.
#define  MTLREQ_NOATMOS   (1<<13)
  This is used by the Matte material for example.
#define  MTLREQ_ADDITIVE_TRANSP   (1<<14)
  Normally, if this is not specified, the background color is attenuated.
#define  MTLREQ_VIEW_DEP   (1<<15)
  Maps or materials which depend on the view should set this bit in their Requirements() method.
#define  MTLREQ_UV2   (1<<16)
  The material requires second uv channel values (vertex colors).
#define  MTLREQ_BUMPUV2   (1<<17)
  The material requires second uv channel bump vectors.
#define  MTLREQ_PREPRO   (1<<18)
  Pre-processing.
#define  MTLREQ_DONTMERGE_FRAGMENTS   (1<<19)
  No longer used.
#define  MTLREQ_DISPLACEMAP   (1<<20)
  Material has a Displacement map channel.
#define  MTLREQ_SUPERSAMPLE   (1<<21)
  This tells the scanline renderer that you want super sampling - the Standard material uses this.
#define  MTLREQ_WORLDCOORDS   (1<<22)
  This flag is set by UVGen and XYZGen when world coordinates are involved.
#define  MTLREQ_TRANSP_IN_VP   (1<<23)
  This flag should be returned true for any material that wants to be transparent in the viewport.
#define  MTLREQ_FACETED   (1<<24)
  The material should be rendered faceted in the viewports.
#define  MTLREQ_NOEXPOSURE   (1<<25)
  Do not do the tone-op (ie, for matte/shadow material, etc)
#define  MTLREQ_SS_GLOBAL   (1<<26)
  Material requires supersampling but use global sampler.
#define  MTLREQ_REND1   (1<<28)
  USED IN RENDERER.
#define  MTLREQ_REND2   (1<<29)
  USED IN RENDERER.
#define  MTLREQ_REND3   (1<<30)
  USED IN RENDERER.
#define  MTLREQ_REND4   (1<<31)
  USED IN RENDERER.

Detailed Description

See also:
Class MtlBase, Class RenderInstance

Define Documentation

#define MTLREQ_2SIDE   (1<<0)

The material is 2-sided.

#define MTLREQ_WIRE   (1<<1)

The material is wire frame material.

#define MTLREQ_WIRE_ABS   (1<<2)

Wire frame material, absolute size.

#define MTLREQ_TRANSP   (1<<3)

The material uses transparency.

#define MTLREQ_UV   (1<<4)

The material requires UVW coordinates.

#define MTLREQ_FACEMAP   (1<<5)

The material uses "face map" UV coordinates.

#define MTLREQ_XYZ   (1<<6)

The material requires object XYZ coordinates.

#define MTLREQ_OXYZ   (1<<7)

The material requires object ORIGINAL XYZ coordinates.

#define MTLREQ_BUMPUV   (1<<8)

The Material requires UV bump vectors.

#define MTLREQ_BGCOL   (1<<9)

The material requires background color (e.g.

Matte mtl).

#define MTLREQ_PHONG   (1<<10)

The material requires interpolated normal.

#define MTLREQ_AUTOREFLECT   (1<<11)

The material needs to build auto-reflect map.

#define MTLREQ_AUTOMIRROR   (1<<12)

The material needs to build auto-mirror map.

#define MTLREQ_NOATMOS   (1<<13)

This is used by the Matte material for example.

The matte material samples the background itself and handles the fogging characteristics, so it does not need to have the atmospheric shader do this again. This suppresses the atmospheric shader. (used by Matte mtl)

#define MTLREQ_ADDITIVE_TRANSP   (1<<14)

Normally, if this is not specified, the background color is attenuated.

For instance, for a material that 30% transparent (70% opaque), you take 30% of the background color and 70% of the material color.

Setting this flag causes the computation to be done by multiplying 0.7 times the material color and then adding this to the background color, which is left un-attenuated. Specifies that transparent composites are done additively.

#define MTLREQ_VIEW_DEP   (1<<15)

Maps or materials which depend on the view should set this bit in their Requirements() method.

#define MTLREQ_UV2   (1<<16)

The material requires second uv channel values (vertex colors).

#define MTLREQ_BUMPUV2   (1<<17)

The material requires second uv channel bump vectors.

#define MTLREQ_PREPRO   (1<<18)

Pre-processing.

MtlBase::BuildMaps is called on every frame.

#define MTLREQ_DONTMERGE_FRAGMENTS   (1<<19)

No longer used.

#define MTLREQ_DISPLACEMAP   (1<<20)

Material has a Displacement map channel.

#define MTLREQ_SUPERSAMPLE   (1<<21)

This tells the scanline renderer that you want super sampling - the Standard material uses this.

This takes multiple samples spread around in the pixel which provides an additional level of anti-aliasing. The material requires supersampling

#define MTLREQ_WORLDCOORDS   (1<<22)

This flag is set by UVGen and XYZGen when world coordinates are involved.

The renderer looks at this and if it is set, takes the validity interval of the Node's transform matrix into account in computing the validity of a displacement mapped mesh. The material has world coordinates are used in material/map evaluation.

#define MTLREQ_TRANSP_IN_VP   (1<<23)

This flag should be returned true for any material that wants to be transparent in the viewport.

The material is transparent in the viewport ( opacity < 100, or opacity map & ShowMapInVP set).

#define MTLREQ_FACETED   (1<<24)

The material should be rendered faceted in the viewports.

#define MTLREQ_NOEXPOSURE   (1<<25)

Do not do the tone-op (ie, for matte/shadow material, etc)

#define MTLREQ_SS_GLOBAL   (1<<26)

Material requires supersampling but use global sampler.

#define MTLREQ_REND1   (1<<28)

USED IN RENDERER.

#define MTLREQ_REND2   (1<<29)

USED IN RENDERER.

#define MTLREQ_REND3   (1<<30)

USED IN RENDERER.

#define MTLREQ_REND4   (1<<31)

USED IN RENDERER.