Material Constants

These constants define properties common to all material types, with the exception of Texture Combine Operations which only apply to MeshBasicMaterial, MeshLambertMaterial, and MeshPhongMaterial.

Side

v3d.FrontSide v3d.BackSide v3d.DoubleSide v3d.TwoPassDoubleSide

Defines which side of faces will be rendered - front, back or both. Default is FrontSide.

TwoPassDoubleSide will renderer double-sided transparent materials in two passes in back-front order to mitigate transparency artifacts.

Blending Mode

v3d.NoBlending v3d.NormalBlending v3d.AdditiveBlending v3d.SubtractiveBlending v3d.MultiplyBlending v3d.CustomBlending

These control the source and destination blending equations for the material's RGB and Alpha sent to the WebGLRenderer for use by WebGL.
NormalBlending is the default.
Note that CustomBlending must be set to use Custom Blending Equations.
See the materials / blending example.

Depth Mode

v3d.NeverDepth v3d.AlwaysDepth v3d.EqualDepth v3d.LessDepth v3d.LessEqualDepth v3d.GreaterEqualDepth v3d.GreaterDepth v3d.NotEqualDepth

Which depth function the material uses to compare incoming pixels Z-depth against the current Z-depth buffer value. If the result of the comparison is true, the pixel will be drawn.
NeverDepth will never return true.
AlwaysDepth will always return true.
EqualDepth will return true if the incoming pixel Z-depth is equal to the current buffer Z-depth.
LessDepth will return true if the incoming pixel Z-depth is less than the current buffer Z-depth.
LessEqualDepth is the default and will return true if the incoming pixel Z-depth is less than or equal to the current buffer Z-depth.
GreaterEqualDepth will return true if the incoming pixel Z-depth is greater than or equal to the current buffer Z-depth.
GreaterDepth will return true if the incoming pixel Z-depth is greater than the current buffer Z-depth.
NotEqualDepth will return true if the incoming pixel Z-depth is not equal to the current buffer Z-depth.

Texture Combine Operations

v3d.MultiplyOperation v3d.MixOperation v3d.AddOperation

These define how the result of the surface's color is combined with the environment map (if present), for MeshBasicMaterial, MeshLambertMaterial and MeshPhongMaterial.
MultiplyOperation is the default and multiplies the environment map color with the surface color.
MixOperation uses reflectivity to blend between the two colors.
AddOperation adds the two colors.

Stencil Functions

v3d.NeverStencilFunc v3d.LessStencilFunc v3d.EqualStencilFunc v3d.LessEqualStencilFunc v3d.GreaterStencilFunc v3d.NotEqualStencilFunc v3d.GreaterEqualStencilFunc v3d.AlwaysStencilFunc

Which stencil function the material uses to determine whether or not to perform a stencil operation.
NeverStencilFunc will never return true.
LessStencilFunc will return true if the stencil reference value is less than the current stencil value.
EqualStencilFunc will return true if the stencil reference value is equal to the current stencil value.
LessEqualStencilFunc will return true if the stencil reference value is less than or equal to the current stencil value.
GreaterStencilFunc will return true if the stencil reference value is greater than the current stencil value.
NotEqualStencilFunc will return true if the stencil reference value is not equal to the current stencil value.
GreaterEqualStencilFunc will return true if the stencil reference value is greater than or equal to the current stencil value.
AlwaysStencilFunc will always return true.

Stencil Operations

v3d.ZeroStencilOp v3d.KeepStencilOp v3d.ReplaceStencilOp v3d.IncrementStencilOp v3d.DecrementStencilOp v3d.IncrementWrapStencilOp v3d.DecrementWrapStencilOp v3d.InvertStencilOp

Which stencil operation the material will perform on the stencil buffer pixel if the provided stencil function passes.
ZeroStencilOp will set the stencil value to 0.
KeepStencilOp will not change the current stencil value.
ReplaceStencilOp will replace the stencil value with the specified stencil reference value.
IncrementStencilOp will increment the current stencil value by 1.
DecrementStencilOp will decrement the current stencil value by 1.
IncrementWrapStencilOp will increment the current stencil value by 1. If the value increments past 255 it will be set to 0.
DecrementWrapStencilOp will increment the current stencil value by 1. If the value decrements below 0 it will be set to 255.
InvertStencilOp will perform a bitwise inversion of the current stencil value.

Normal map type

v3d.TangentSpaceNormalMap v3d.ObjectSpaceNormalMap

Defines the type of the normal map. For TangentSpaceNormalMap, the information is relative to the underlying surface. For ObjectSpaceNormalMap, the information is relative to the object orientation. Default is TangentSpaceNormalMap.

GLSL Version

v3d.GLSL1 v3d.GLSL3

Custom Blending Equation Constants

These work with all material types. First set the material's blending mode to v3d.CustomBlending, then set the desired Blending Equation, Source Factor and Destination Factor.

Code Example

const material = new v3d.MeshBasicMaterial({color: 0x00ff00}); material.blending = v3d.CustomBlending; material.blendEquation = v3d.AddEquation; //default material.blendSrc = v3d.SrcAlphaFactor; //default material.blendDst = v3d.OneMinusSrcAlphaFactor; //default

Examples

materials / blending / custom

Blending Equations

v3d.AddEquation v3d.SubtractEquation v3d.ReverseSubtractEquation v3d.MinEquation v3d.MaxEquation

Source Factors

v3d.ZeroFactor v3d.OneFactor v3d.SrcColorFactor v3d.OneMinusSrcColorFactor v3d.SrcAlphaFactor v3d.OneMinusSrcAlphaFactor v3d.DstAlphaFactor v3d.OneMinusDstAlphaFactor v3d.DstColorFactor v3d.OneMinusDstColorFactor v3d.SrcAlphaSaturateFactor

Destination Factors

All of the Source Factors are valid as Destination Factors, except for v3d.SrcAlphaSaturateFactor

Source

For more info on how to obtain the source code of this module see this page.