|
Todas las declaraciones que se pueden poner en un interior caracterizan el aspecto de la sustancia de la cual está hecho el objeto. Al escalar el objeto, cambiando su tamaño, no se cambia esta sustancia. Dos piezas de hierro de la misma calidad, aun siendo una el doble de grande que la otra, ambas tienen la misma densidad. Sin embargo, la más grande es bastante más pesada.
Por eso, en POV-Ray, si diseñas una lente de un cristal con un ior de 1.5 y la escalas de manera que quede mucho más grande, la distancia focal de la lente será mayor a la vez que el ior permanece igual. Respecto a la atenuación de luz esto significa que un objeto se "oscurecerá" después de haber sido escalado. La intensidad de luz se decrementa un poco por cada unidad de POV (POV-unit). Si un objeto se vuelve más grande tendrá más unidades, por tanto se desvanecerá más luz.fade_distance
y fade_power
no han sido cambiados.
Lo mismo se aplica al medio (media). Imagina un medio como una densidad de partículas. Especificas 100 partículas por unidad cúbica. Si
escalamos un objeto de 1 unidad cúbica para que sea dos veces más grande en cada dirección, tendremos un total de 800 partículas en el objeto. El objeto
tendrá una apariencia diferente, ya que tenemos más partículas a través de las cuales mirar. No obstante, la densidad del objeto sigue siendo
100 partículas por unidad cúbica. En media, esta "densidad de partículas" se define por el color después de emmision
,
absorption
, o en la declaración de scattering
.
#version 3.5; global_settings {assumed_gamma 1.0} camera {location <0, 0,-12.0> look_at 0 angle 30 } #declare Container_T= texture { pigment {rgbt <1,1,1,1>} finish {ambient 0 diffuse 0} } #declare Scale=2; box { //El objeto de referencia <-1,-1,0>,<1,1,.3> hollow texture {Container_T} interior { media { intervals 1 samples 1,1 emission 1 } } translate <-2.1,0,0> } box { // Objeto escalado al doble de su tamaño <-1,-1,0>,<1,1,.3> // Se ve diferente, pero tiene hollow //la misma densidad de partículas texture {Container_T} interior { media { intervals 1 samples 1,1 emission 1 } } scale Scale translate<0,0,12> } box { // Objeto escalado al doble de su tamaño <-1,-1,0>,<1,1,.3> // Parece igual, pero su densidad de partículas hollow //se ha escalado negativamente texture {Container_T} interior { media { intervals 1 samples 1,1 emission 1/Scale } } scale Scale translate<0,0,12> translate<4.2,0,0> }
El tercer objeto descrito en la escena de arriba muestra lo que se debe hacer si quieres escalar el objeto y además quieres que tenga la misma apariencia que antes. La característica "interior" tiene que ser dividida por la misma cifra por la cual fue escalado el objeto en cuestión. Esto es posible sólo cuando el objeto se escala uniformemente.
En general, la relación correcta es escalar la densidad del medio proporcionalmente al cambio en el volumen del contenedor. Para un escalamiento no uniforme, si se quiere conseguir un resultado sin ambigüedades que pueda ser explicado en términos físicos, necesitamos hacer lo siguiente:
Densidad*sqrt(3)/vlength(Escala)
donde Densidad es la densidad original del medio y Escala es el vector escalar que se aplica al contenedor.
Nota: Los modificadores de densidad dentro de la declaración density{}
son escalados junto con el objeto.
|