diffuse
Reflectância difusa (lambertiana) de uma superfície para uma dada direção de luz.
Categoria: Graphics > Formatting and Annotation
Sintaxe
R = diffuse(Nx, Ny, Nz, S)
Retorna a reflectância difusa em cada ponto da superfície, dadas as componentes da normal e a direção da luz S.
Descrição
A função implementa a lei do cosseno de Lambert. Cada normal e a direção da luz são normalizadas, e o resultado é o produto escalar entre elas, limitado a zero, de modo que superfícies voltadas para o lado oposto à luz ficam simplesmente escuras.
Os valores servem para sombrear uma superfície manualmente. Para iluminar um objeto gráfico diretamente, use light e lighting.
Argumentos de entrada
Nx, Ny, Nz- Arrays do mesmo tamanho com as componentes x, y e z das normais da superfície, por exemplo obtidas de
surfnorm. S- Direção da luz, como vetor
[x y z]ou como o par[azimute elevação]em graus.
Argumentos de saída
R- Array do mesmo tamanho de
Nx, com valores de 0 (sem luz) a 1 (luz incidindo de frente).
Exemplo
Normais inclinadas em relação à luz
Nx = [0 0 1];
Ny = [0 1 0];
Nz = [1 1 1];
R = diffuse(Nx, Ny, Nz, [0 0 1])
Saída
R = 1×3
1.0000 0.7071 0.7071