Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Características reflectantes de los objetos de gráficas

Reflectancia especular o difusa

Puede especificar las características reflectantes de los objetos de parche y superficie y que, por tanto, afectan el modo en que se ven cuando se aplican las luces a la escena. Es probable que ajuste estas características de forma combinada para generar resultados determinados.

Vea también el comando material, se trata de un modo práctico de crear determinados efectos de iluminación.

Puede controlar la cantidad de reflejo especular y difuso desde la superficie de un objeto configurando las propiedades SpecularStrength y DiffuseStrength. Esta imagen ilustra varias configuraciones.

Luz ambiental

La luz ambiental es luz sin dirección que brillas de forma uniforme sobre todos los objetos de la escena. La luz ambiental solo es visible cuando hay objetos de luz en los ejes. Existen dos propiedades que controlan la luz ambiental: AmbientLightColor es una propiedad de los ejes que configura el color y AmbientStrength, una propiedad de los objetos de parche y superficie que determina la intensidad de la luz ambiental sobre un objeto concreto.

Esta ilustración muestra tres colores distintos de luz ambiental en varias intensidades. Esta esfera es de color rojo y hay presente un objeto de luz de color blanco.

La luz ambiental de color verde [0 1 0] no afecta a la escena porque no hay un componente de color rojo en la luz verde. Sin embargo, el color definido por los valores RGB [.5 0 1] cuenta con un componente de color rojo, por lo que contribuye a la iluminación de la esfera (pero menos que la luz ambiental de color blanco [1 1 1]).

Exponente especular

El tamaño del punto de iluminación especular depende del valor de la propiedad SpecularExponent del objeto de parche y superficie. Los valores habituales para el intervalo de esta propiedad van de 1 a 500, con objetos normales que tengan valores en un intervalo de 5 a 20.

Esta ilustración muestra una esfera de color rojo iluminada por una luz blanca con tres valores distintos de la propiedad SpecularExponent.

Reflectancia del color especular

El color de una luz reflejada de forma especular puede oscilar desde una combinación del color del objeto y el color de la fuente de luz hasta solo el color de la fuente de luz. La propiedad SpecularColorReflectance de parche y superficie controla este color. Esta ilustración muestra una esfera de color rojo iluminada por una luz blanca. Los valores de la propiedad SpecularColorReflectance oscilan de 0 (color de la luz y del objeto) a 1 (color de la luz).

Iluminación de la cara trasera

La iluminación de la cara trasera resulta de utilidad para mostrar la diferencia entre las caras interna y externa. Estas imágenes de superficies cilíndricas cortadas ilustran los efectos de la iluminación de la cara trasera.

El valor predeterminado de BackFaceLighting es reverselit. Esta configuración invierte la dirección de las normales de los vértices que miran hacia el lado opuesto de la cámara, haciendo que la superficie interna refleje la luz hacia la cámara. Establecer BackFaceLighting en unlit deshabilita la iluminación de las caras con normales que apuntan en dirección contraria a la cámara.

También puede utilizar BackFaceLighting para eliminar los efectos de los bordes de los objetos cerrados. Estos efectos se producen cuando BackFaceLighting está establecida en reverselit y los píxeles que se encuentran a lo largo de los bordes de un objeto cerrados están iluminados como si las normales de los vértices estuvieran frente a la cámara. Esto da lugar a un píxel mal iluminado, porque el píxel es visible pero verdaderamente está mirando hacia el lado opuesto de la cámara.

Para ilustrar este efecto, la siguiente imagen muestra la ampliación del borde de una esfera iluminada. Establecer BackFaceLighting en lit evita la incorrecta iluminación de los píxeles.

Posicionamiento de luces en el espacio de datos

En este ejemplo se crean una esfera y un cubo y se iluminan con dos fuentes de luz. Los objetos de luz se ubican en el infinito, pero en las direcciones indicadas por sus vectores de posición.

% Create a sphere
sphere(36);
axis([-3 3 -3 3 -3 3]) 
hold on
% Create a cube
fac = [1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];
vert = [1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2];
patch('faces',fac,'vertices',vert,'FaceColor','y');
% Add lights
light('Position',[1 3 2]);
light('Position',[-3 -1 3]);
hold off

Las funciones light definen dos objetos de luz ubicados en el infinito en las direcciones indicadas por los vectores de Position. Dichos vectores se definen en las coordenadas de los ejes [x, y, z].