# Constantes de Material

Essas constantes definem propriedades comuns a todos os tipos de materiais, com exceção das Operações de Combinação de Texturas que se aplicam apenas a [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] e [page:MeshPhongMaterial.combine MeshPhongMaterial].

## Lado (Side)

`THREE.FrontSide THREE.BackSide THREE.DoubleSide`

Define qual lado das faces será renderizado - frente, verso ou ambos. O padrão é [page:Constant FrontSide].

## Modo de Mesclagem (Blending Mode)

`THREE.NoBlending THREE.NormalBlending THREE.AdditiveBlending THREE.SubtractiveBlending THREE.MultiplyBlending THREE.CustomBlending`

Eles controlam as equações de mesclagem de origem e destino para RGB e Alpha do material enviadas ao WebGLRenderer para uso pelo WebGL.
[page:Constant NormalBlending] é o padrão.
Note que [page:Constant CustomBlending] deve ser definido para usar Equações de [page:CustomBlendingEquation Mesclagem Personalizadas].
Veja os exemplos [example:webgl_materials_blending materials / blending].

## Modo de Profundidade (Depth Mode)

`THREE.NeverDepth THREE.AlwaysDepth THREE.EqualDepth THREE.LessDepth THREE.LessEqualDepth THREE.GreaterEqualDepth THREE.GreaterDepth THREE.NotEqualDepth`

Define qual função de profundidade o material usa para comparar a profundidade Z dos pixels de entrada com o valor atual do buffer de profundidade Z. Se o resultado da comparação for verdadeiro, o pixel será desenhado.
[page:Materials NeverDepth] nunca retornará true.
[page:Materials AlwaysDepth] sempre vai retornar true.
[page:Materials EqualDepth] retornará true se a profundidade Z do pixel de entrada for igual à profundidade Z do buffer atual.
[page:Materials LessDepth] retornará true se a profundidade Z do pixel de entrada for menor que a profundidade Z do buffer atual.
[page:Materials LessEqualDepth] é o padrão e retornará true se a profundidade Z do pixel de entrada for menor ou igual à profundidade Z do buffer atual.
[page:Materials GreaterEqualDepth] retornará true se a profundidade Z do pixel de entrada for maior ou igual à profundidade Z do buffer atual.
[page:Materials GreaterDepth] retornará true se a profundidade Z do pixel de entrada for maior que a profundidade Z do buffer atual.
[page:Materials NotEqualDepth] retornará true se a profundidade Z do pixel de entrada não for igual à profundidade Z do buffer atual.

## Operações de Combinação de Texturas

`THREE.MultiplyOperation THREE.MixOperation THREE.AddOperation`

Definem como o resultado da cor da superfície é combinado com o mapa do ambiente (se presente), por [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] e [page:MeshPhongMaterial.combine MeshPhongMaterial].
[page:Constant MultiplyOperation] é o padrão e multiplica a cor do mapa de ambiente pela cor da superfície.
[page:Constant MixOperation] usa refletividade para misturar as duas cores.
[page:Constant AddOperation] adiciona as duas cores.

## Funções de Estêncil (Stencil Functions)

`THREE.NeverStencilFunc THREE.LessStencilFunc THREE.EqualStencilFunc THREE.LessEqualStencilFunc THREE.GreaterStencilFunc THREE.NotEqualStencilFunc THREE.GreaterEqualStencilFunc THREE.AlwaysStencilFunc`

Define qual função de estêncil o material usa para determinar se deve ou não realizar uma operação de estêncil.
[page:Materials NeverStencilFunc] nunca retornará true.
[page:Materials LessStencilFunc] retornará true se o valor de referência do estêncil for menor que o valor do estêncil atual.
[page:Materials EqualStencilFunc] retornará true se o valor de referência do estêncil for igual ao valor atual do estêncil.
[page:Materials LessEqualStencilFunc] retornará true se o valor de referência do estêncil for menor ou igual ao valor do estêncil atual.
[page:Materials GreaterStencilFunc] retornará true se o valor de referência de estêncil for maior que o valor de estêncil atual.
[page:Materials NotEqualStencilFunc] retornará true se o valor de referência do estêncil não for igual ao valor do estêncil atual.
[page:Materials GreaterEqualStencilFunc] retornará true se o valor de referência do estêncil for maior ou igual ao valor do estêncil atual.
[page:Materials AlwaysStencilFunc] sempre retornará true.

## Operações de Estêncil (Stencil Operations)

`THREE.ZeroStencilOp THREE.KeepStencilOp THREE.ReplaceStencilOp THREE.IncrementStencilOp THREE.DecrementStencilOp THREE.IncrementWrapStencilOp THREE.DecrementWrapStencilOp THREE.InvertStencilOp`

Define qual operação de estêncil o material executará no pixel de buffer de estêncil se a função de estêncil fornecida for aprovada.
[page:Materials ZeroStencilOp] definirá o valor do estêncil para 0.
[page:Materials KeepStencilOp] não alterará o valor atual do estêncil.
[page:Materials ReplaceStencilOp] substituirá o valor de estêncil pelo valor de referência do estêncil especificado.
[page:Materials IncrementStencilOp] irá incrementar o valor atual do estêncil em `1`.
[page:Materials DecrementStencilOp] diminuirá o valor atual do estêncil em `1`.
[page:Materials IncrementWrapStencilOp] irá incrementar o valor atual do estêncil em `1`. Se o valor aumentar além de `255`, ele será definido como `0`.
[page:Materials DecrementWrapStencilOp] irá incrementar o valor atual do estêncil em `1`. Se o valor diminuir abaixo de `0`, será definido como `255`.
[page:Materials InvertStencilOp] executará uma inversão bit a bit do valor de estêncil atual.

## Tipo de mapa normal

`THREE.TangentSpaceNormalMap THREE.ObjectSpaceNormalMap`

Define o tipo do mapa normal Para TangentSpaceNormalMap, as informações são relativas à superfície subjacente. Para ObjectSpaceNormalMap, as informações são relativas à orientação do objeto. O padrão é [page:Constant TangentSpaceNormalMap].

## Versão GLSL

`THREE.GLSL1 THREE.GLSL3`

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]