lunes, 23 de junio de 2008

Introducción a Brazil r/s

En este texto voy a explicar rápidamente los parámetros básicos de renderizado de Brazil r/s, un sistema de render con iluminación global para 3D Studio MAX. La versión a la que se hace referencia es la última que había en el momento en que escribí este texto: Test 0.4.53 para 3D Studio MAX 3.1.

Opciones generales


En esta persiana se configuran diversas opciones que no tienen nada que ver con la calidad del render. En el cuadro Tools sólo puede desactivarse el VFB (la ventana donde se ve el progreso del render). El resto de opciones están deshabilitadas en la versión gratuita (diversas opciones para guardar y cargar configuraciones, mostrar el VFB y la Consola).

En el cuadro Console Options se puede activar/desactivar el mostrar la consola al lanzar un render (Auto Launch), se puede configurar para que borre su contenido al renderizar un nuevo fotograma (Clear on new frame) y se puede variar el nivel de información que proporciona (Verbose level).

En Bucketing Options se puede configurar el tamaño de la celda de render (el cuadrado que va renderizando). El tamaño no varía el tiempo de render. También se puede configurar el orden de render (arriba-abajo, izq-dcha, etc.). Si se elije Priority Map se puede renderizar siguiendo el orden de un mapa de prioridad, en el cual el blanco tiene la máxima prioridad y el negro la mínima. Con el botón R se invierte el orden de render.

El cuadro Multithreading Options sirve para controlar la administración de tareas y procesadores. En el caso de tener un equipo con varios procesadores, desde aquí se controla el número de procesadores que se utilizan. La configuración por defecto usa todos los procesadores disponibles.

Image sampling

Desde esta persiana se controla el Image sampling y el Depth of Field.

En Image Sampling Control se controla la alisación de la imagen. Desde Min Samples y Max Samples se controla cuántos Samples se están utilizando por pixel para realizar la alisación. Un mismo valor para ambos campos desactiva la alisación adaptativa y emplea el valor dado para todos los píxeles. Sin embargo, si los valores varían Min Samples controla el valor mínimo empleado para todos los píxeles y Max Samples controla el valor máximo, que se aplica según el resto de parámetros. En mis pruebas he llegado a la conclusión de que un valor mínimo de 0 y un valor máximo de 2 dan bastante buenos resultados para la mayor parte de los casos (con esta configuración se calcula sólo una vez la alisación por pixel y se refina cuatro veces cuando halla un borde de un objeto, de un grupo de suavizado, etc). Low Contrast y High Contrast controlan el contraste que ha de haber entre dos píxeles para usar el valor de Max Samples. Object Edge activa la alisación adaptativa en los bordes de los objetos. RPrim Edge refina también los bordes de las caras (conviene que esté desactivado y usarlo sólo en casos en los cuales ocurran errores de alisación entre caras). Smooth Groups hace lo mismo que los parámetros anteriores, pero entre los grupos de suavizado y, por último, Material ID activa el uso de la alisación adaptativa entre los diferendes ID de material. Show Adapt Samples se puede utilizar para visualizar para qué píxeles se está utilizando la alisación adaptativa, puesto que los tinta del color indicado (por defecto se verían píxeles amarillos, principalmente en los bordes de los objetos). Jitter Samples aleatoriza el patrón que usa Brazil para alisar, así se evita que se pueda notar de una celda de render a otra. Valores entre 0,7 y 1 son los más apropiados.

La opción más importante del Depth of Field Sampling es On (para activarlo :). Initial rate controla la calidad del efecto (mínimo 5), lo que hace es definir el número mínimo de muestras por pixel. Adapt Level controla el número de veces que se refina el patrón del DoF recursivamente (toma!). Esto viene a decir que si se aumenta el valor de Adapt Levels, Initial rate se refinará a sí mismo el número de veces indicado por Adapt Levels. Si se ve que el efecto conseguido gusta y se ha subido Adapt Levels a 4 ó 5, mejor subir en 1 Initial Rate y deja Adapt Levels a 2 ó 3. f-Stop es un concepto heredado directamente de las cámaras reales y representa la abertura del diafragma del objetivo. Cuanto más bajo sea su valor más luz entrará en el objetivo y menor será la profundidad de campo, aunque sólo se emplea aquí el efecto sobre la profundidad de campo. Focal Dist define a qué distancia de la cámara está el punto focal, es decir, dónde está enfocado. En ese punto la distorsión es nula y aumentará según un objeto esté más alejado de ese punto. Jitter funciona de manera similar al Jitter de Image Sampling. Para obtener los resultados deseados fácilmente sin realizar muchas pruebas con f-Stop y Focal Dist se puede emplear esta calculadora de profundidad de campo.

Bokeh es el efecto que se produce en fotografía cuando un objeto muy brillante está muy desenfocado y aparecen formas geométricas simples (hexágonos, etc). En el panel desplegable se puede seleccionar el tipo de Bokeh utilizado. Invert invierte la forma que se origine y Reverse at Focus la invierte sólo cuando pasa por el punto focal. Exponent controla el exponente si se selecciona el tipo Exponent en la lista desplegable.

Image/texture filtering

En Image Filter se seleccionará el filtro utilizado para la alisación de la imagen. Se puede utilizar cualquiera de los que aparecen, aunque suelo emplear el que viene por defecto (Mitchell-Netravalli). Dependiendo del tipo de filtrado, se pueden configurar el Blur, el Ringing o el Radius (también los dejo con los valores por defecto).

En el cuadro 2D Map Filtering se configura el filtrado de texturas. On lo activa (se puede desactivar para lanzar renders de prueba). Derivative Blur indica la cantidad de desenfoque que se aplicará al mapa. Blur Offset indica la cantidad amplificada de distorsión que aplica. Bump Derivative Blur y Bump Derivative Offset hacen lo mismo, pero aplicado a los mapas de bultos.

Ray server

Desde esta persiana se controla el trazado de rayos (relexión y refracción). En el cuadro Ray Tracing Depth Control podemos controlar el número de veces que se puede reflejar un rayo (por ejemplo, cuando hay un espejo frente a otro) con el campo Reflected. Con Refracted se controla el número de veces que un rayo se refracta en el interior de un objeto antes de salir, con lo que se puede controlar la calidad de la refracción. Para un efecto óptimo no hay que bajar el valor nunca por debajo de ocho (para alguna escena compleja basada en objetos complejos refractivos puede convenir subir incluso a 12). Total es el número total de reflexiones y refracciones de un rayo. Así, si establecemos Reflections y Refractions a 8 y Total a 8 se generarán ó 8 reflexiones ó 8 refracciones o una combinación de ambas que sume 8 (según autodetecte Brazil). Auto Cutoff es un porcentaje que controla cúando un rayo ya no necesita ser emitido, por aportar muy poca información. Esto evita trazar más rayos de los necesarios. Max Transparent Intersections controla el número de planos solapados con un grado de opacidad inferior a 100 que se afectan unos a otros. Es decir, cuántos planos uno tras otro transparentes (no refractivos) se usan para calcular el aspecto de los objetos tras ellos.

En el cuadro Options se pueden habilitar/deshabilitar la reflexión y/o la refracción en la escena. Esto se hace activando/desactivando Secondary Effects y, más particularmente, Raytrace Reflections y Raytrace Refractions. Glossy activa o desactiva las reflexiones y refracciones de tipo Glossy (las de los materiales cromados, por ejemplo). En la versión test gratuita no está disponible.

Desde el cuadro Secondary Effect Options se puede activar la autoreflexión de los objetos (que un objeto se pueda reflejar a si mismo) con Enable Self Reflect. Secondary Atmospherics habilita la reflexión/refracción de efectos atmosféricos, como pueda ser la niebla o la combustión (ver humo dentro de una botella, por ejemplo). Secondary Material IDs permite que se reflejen o refracten los IDs de material.

Desde Ray Tracing acceleration se puede configurar la aceleración del trazado de rayos, desde el cuadro de diálogo que aparece al hacer clic en el botón con los tres puntos suspensivos.

Luma server


Desde esta persiana se controlan todos los parámetros relacionados con la iluminación, uno de los aspectos más destacados e importantes de Brazil.

Desde el cuadro Direct Illumination se pueden activar o desactivar los tipos de luces que van a intervenir en la escena. Los parámatros de SkyLight se explican más adelante.

En el cuadro Indirect Illumination se pueden seleccionar los tipos de luces que serán usadas en la iluminación global, simulando la iluminación natural en la cual la luz es reflejada por los objetos. Allow Caustics activa la proyección de cáusticas cuando la luz atraviesa objetos refractivos o se refleja en objetos reflexivos (cuando atraviesa un vaso, por ejemplo). Volumetrics hace que la iluminación global afecte también a los efectos atmosféricos.

En el cuadro Miscellaneous se puede activar la proyección de sombras con Shadows y se pueden activar las luces por defecto del Max con Allow Default Lights. Enhance Bump Shadows activa la mejora de sombras en mapas de bultos. No está disponible en la versión gratuita.

El cuadro Sub-Surface Effects controla el Sub-Surface Scattering (efecto de translucidez avanzado en el que se simula la dispersión de la luz al atravesar materiales que no son completamente opacos), aunque tampoco está disponible en la versión gratuita.

Desde el cuadro Global Illumination se controla todo lo relacionado con la iluminación global (GI). Lock to Image Rate iguala los Samples de la GI a los de la alisación. Esto no conviene, ya que generalmente incrementa el tiempo de render innecesariamente. Min y Max controlan los Samples de la GI. Funcionan igual que en Image Sampling con la alisación. Los valores positivos indican el número de veces que se calcula el valor de cada píxel según los que hay a su alrededor, para mayor precisión. Sin embargo, un número negativo señala cada cuántos píxeles se realiza este cálculo, incrementando considerablemente la velocidad del render. A esta técnica se le denomina Undersampling y, aunque genera "nubarrones" en los objetos, se puede corregir aumentando el View Rate, que controla la calidad del resultado final. Show Samples y Contrast funcionan de manera equivalente a los campos del mismo nombre en Image Sampling. Bounces indica cuántas veces un rayo se refleja contra un objeto. Cuanto más alto sea el valor se conseguirá una iluminación más realista (sobre todo en interiores), pero el tiempo de render aumentará considerablemente. En el cuadro Indirect Energy Filters se controla la intensidad de los rayos tras cada impacto contra un objeto. El valor en Diffuse se multiplica por el valor que se genera en la ecuación que usa Brazil para calcular la intensidad del rayo rerebotado. Es usado para la componente difusa. El valor de Specular hace lo mismo, pero sirve para la componente especular y las cáusticas.

En el cuadro SkyLight se controlan los parámetros del SkyLight, que se trata de una fuente de luz que proviene de todos los puntos del fondo y viene muy bien para simular la iluminación solar indirecta (causada por disipación en la atmósfera). La opción Transparent Shadows indica a Brazil que respete la opacidad de los objetos transparentes no refractivos a la hora de proyectar su sombra. Use Environment Settings hace que se usen las opciones señaladas en el cuadro de diálogo Entorno en el menú Representar. Desde Color se puede regular la intensidad del SkyLight (1,0 por defecto), su color y seleccionar un mapa de entorno que marcará el tono de la luz (muy útil con mapas HDR, que capturan un mayor rango dinámico de luminosidad).

Por último, en el cuadro Shader Degradation se controla la aceleración de la GI. Existen dos modos: Full Shade Always y Quick Shade. En Full Shade se usan los materiales de los objetos tal y como son para el cálculo de los valores de color de los rayos al rebotar en los objetos. Sin embargo, si se selecciona Quick Shade sólo se tendrán en cuenta los colores que haya en los cuadros Ambiental, Difusa y Especular del material (con el consiguiente aumento de velocidad). Diffuse Map hace que sí se use el mapa difuso para el cálculo, pero que se use el color sólido para el resto de mapas del material. Start Depth indica a partir de qué rebote se comienza a usar Quick Shade en vez de Full Shade.

CSG server


Desde esta persiana se puede crear un plano infinito generado con una ecuación, que renderiza más rápido que cualquier plano generado con polígonos. Se puede configurar su altitud, su color y el material.


Este texto lo escribí hace ya algunos años. Dado que su contenido aún es aplicable he considerado oportuno rescatarlo de mi antigua página y volver a publicarlo aquí, para que no se pierda en el tiempo.

No hay comentarios: