6.8  Medio (media)

La sentencia media se utiliza para especificar partículas de materia suspendidas en un medio como agua o aire. Puede utilizarse para precisar humo, bruma, niebla, gas, fuego, polvo, etc. Anteriores versiones de POV-Ray tenían dos sistemas incompatibles para generar estos efectos. Uno era halo para los efectos en el interior de objetos transparentes o semi-transparentes. El otro era atmosphere para los efectos que impregnaban la escena en su totalidad. Esta duplicación de sistemas era compleja e innecesaria. Tanto halo como atmosphere han sido suprimidos. Ver "¿Por qué son necesarios Interior y Medio?" para más detalles respecto a este cambio. Ver "El objeto Medio" para detalles de cómo utilizar media con los objetos. Ver "Medio Atmosférico" para detalles sobre el uso de media para efectos atmosféricos en el exterior de los objetos. Esta sección y las siguientes sub-secciones explican los detalles de las diversas opciones de media, las cuales son útiles tanto para el medio en relación con el objeto como para el medio en la atmósfera.

El medio funciona haciendo un muestreo de las partículas en un número de puntos específico a lo largo de la trayectoria del rayo. También se toman sub-muestreos hasta alcanzar un determinado nivel de fiabilidad. POV-Ray proporciona tres métodos de muestreo. Cuando se utiliza en la sentencia interior de un objeto, el muestreo sólo ocurre dentro del objeto. Cuando se utiliza en medio atmosférico, los muestreos van desde la localización de la cámara hasta que el rayo impacta en un objeto. Por lo tanto, para efectos localizados lo mejor es utilizar un objeto envolvente, incluso aunque el patrón de densidad sólo pueda producir resultados en un área pequeña, se trate de un medio cerrado o no.

La sintaxis completa para la sentencia media es como sigue:

MEDIA:
    media { [IDENTIFICADOR_MEDIA] [ELEMENTO_MEDIA...] }
MEDIA_ITEMS:
    method Número | intervals Número | samples Min, Max |
    confidence Valor  | variance Valor | ratio Valor |
    absorption COLOR | emission COLOR | aa_threshold Valor |
    aa_level Valor | 
    scattering { 
       Type, COLOR [ eccentricity Valor ] [ extinction Valor ]
    }  | 
    density { 
       [IDENTIFICADOR_DENSIDAD] [TIPO_PATRÓN] [MODIFICADOR_DENSIDAD...]
    }   | 
    TRANSFORMACIONES
MODIFICADOR_DENSIDAD:
    MODIFICADOR_PATRÓN | LISTA_DENSIDAD | LISTA_COLOR |
    color_map { CUERPO_MAPA_COLOR } | colour_map { CUERPO_MAPA_COLOR } |
    density_map { CUERPO_MAPA_DENSIDAD }

Valores por defecto de media:

aa_level     : 4
aa_threshold : 0.1
absorption   : <0,0,0>
confidence   : 0.9
emission     : <0,0,0>
intervals    : 10
method       : 3
ratio        : 0.9
samples      : Min 1, Max 1
variance     : 1/128
SCATTERING
  COLOR        : <0,0,0>
  eccentricity : 0.0
  extinction   : 1.0

En caso de especificar un identificador de media, éste debe ser el primer elemento. Todos los demás elementos del medio pueden ser especificados en cualquier orden. Todos son opcionales. Puedes tener múltiples sentencias density en una única sentencia media. Ver "Densidad múltiple frente a múltiples medios" para más detalles. Las transformaciones sólo se aplican a las sentencias density que ya han sido especificadas. Cualquier density posterior a una transformación no se verá afectado. Si media no tiene sentencias density y tampoco se han especificado en otro identificador de media, la transformación no tendrá efecto. El resto de los elementos de media, excepto density y las transformaciones, anulan los valores por defecto o cualquier otro valor previamente establecido en esa sentencia media..

Nota: algunos efectos de media requieren fuentes de luz. Sin embargo, la participación de una fuente de luz va en función de los identificadores media_interaction y media_attenuation. Ver "Interacción con el medio atmosférico" y "Atenuación atmosférica" para más detalles.

Nota: La documentación de POV-Ray 3.1 decía:

"Quede constancia de un extraño efecto secundario que fue descubierto durante la fase de pruebas y que era demasiado complicado para arreglarlo. Si el objeto contenedor emplea transmit en vez de filter para la transparencia, media no proyecta sombras."
Esto ya no pasa en POV-Ray 3.5. Si especificas transmit o filter para crear un objeto contenedor transparente, media siempre proyectará una sombra. Si no se desea la sombra, hay que utilizar el modificador no_shadow en el objeto contenedor.

En 'Medio' ...
6.8.1   Tipos de medios
6.8.2   Parámetros y métodos para el muestreo
6.8.3   Densidad