La especificación de interfaz RenderMan , [ 1 ] o RISpec para abreviar, es una API abierta desarrollada por Pixar Animation Studios para describir escenas tridimensionales y convertirlas en imágenes digitales fotorrealistas . Incluye el lenguaje de sombreado RenderMan .
RISpec , la especificación técnica de Pixar para un protocolo de comunicación estándar (o interfaz ) entre programas de modelado y programas de renderizado capaces de producir imágenes fotorrealistas, es un concepto similar a PostScript , pero para describir escenas 3D en lugar de diseños de página 2D. De este modo, los programas de modelado que entienden el protocolo RenderMan Interface pueden enviar datos al software de renderizado que implementa RenderMan Interface, independientemente de los algoritmos de renderizado que utilice este último.
La interfaz se publicó por primera vez en 1988 (versión 3.0) y se diseñó para ser suficientemente adaptable a futuras tecnologías y poder incorporar avances durante un número considerable de años. La versión actual es la 3.2.1, publicada en noviembre de 2005.
Lo que diferenció a RISpec de otros estándares de la época fue que permitió usar primitivas geométricas de alto nivel, como cuádricas o parches bicúbicos, para especificar primitivas geométricas implícitamente, en lugar de depender de una aplicación de modelado para generar polígonos que aproximaran explícitamente estas formas de antemano. Otra novedad introducida por RISpec en ese momento fue la especificación de un lenguaje de sombreado .
El lenguaje de sombreado RenderMan permite describir las definiciones de materiales de las superficies no solo ajustando un pequeño conjunto de parámetros, sino también de forma arbitrariamente compleja mediante un lenguaje de programación similar a C para escribir procedimientos de sombreado , comúnmente conocidos como texturas y sombreadores procedimentales . La iluminación y los desplazamientos en la superficie también son programables mediante este lenguaje. El lenguaje permite que cada instrucción se ejecute de forma SIMD , pero no lo exige. Otra característica que distingue a los renderizadores basados en RISpec de muchos otros es la capacidad de generar variables arbitrarias como una imagen: normales de superficie, pases de iluminación independientes y prácticamente cualquier otra cosa pueden generarse desde el renderizador en un solo pase.
RenderMan tiene mucho en común con OpenGL (desarrollado por la ahora desaparecida Silicon Graphics ), a pesar de que ambas API están dirigidas a diferentes tipos de usuarios (OpenGL a la renderización en tiempo real asistida por hardware y RenderMan a la renderización fotorrealista fuera de línea). Ambas API adoptan la forma de una máquina de estados basada en pila con renderización (conceptualmente) inmediata de primitivas geométricas. Es posible implementar cualquiera de las dos API a partir de la otra.
Capacidades requeridas
Para que un motor de renderizado se considere compatible con RenderMan, debe implementar al menos las siguientes capacidades:
- Un estado gráfico jerárquico completo, que incluye las pilas de atributos y transformaciones, así como la lista de luces activas.
- Transformaciones de visualización ortográfica y de perspectiva .
- Eliminación de superficies ocultas basada en la profundidad .
- Filtrado de píxeles y suavizado espacial .
- Corrección gamma y tramado antes de la cuantización .
- Genera imágenes que contienen cualquier combinación de RGB, A y Z. La resolución de estos archivos debe ser la especificada por el usuario.
- Incluye todas las primitivas geométricas descritas en la especificación y proporciona todas las variables primitivas estándar aplicables a cada primitiva.
- La capacidad de realizar cálculos de sombreado mediante sombreado programable por el usuario.
- La capacidad de indexar mapas de texturas, mapas de entorno y mapas de profundidad de sombras.
- Los quince sombreadores estándar de fuente de luz, superficie, volumen, desplazamiento e imagen requeridos por la especificación. Cualquier sombreador adicional, y cualquier desviación de los sombreadores estándar presentados en esta especificación, debe documentarse proporcionando el sombreador equivalente expresado en el lenguaje de sombreado de RenderMan .
Capacidades avanzadas opcionales
Además, el renderizador puede implementar cualquiera de las siguientes capacidades opcionales:
Lecturas adicionales
- Apodaca, Anthony A .; Larry Gritz ; Ronen Barzel (1999). Advanced RenderMan: Creación de CGI para películas . San Francisco: Morgan Kaufmann Publishers. ISBN 1-55860-618-1OCLC 42621055
- Ebert, David S.; F. Kenton Musgrave ; Darwyn Peachey ; Ken Perlin ; Steven Worley (2003). Texturizado y modelado: un enfoque procedimental, 3.ª ed . Burlington, MA: Morgan Kaufmann Publishers. ISBN 1-55860-848-6OCLC 52689816
- Raghavachary, Saty (2005). Rendering for Beginners: Image synthesis using RenderMan . Burlington, MA: Focal Press . ISBN 0-240-51935-3OCLC 57670361
- Stephenson, Ian (2002). Essential RenderMan Fast . Londres, Nueva York: Springer. ISBN 1-85233-608-0OCLC 50494960 .
- Upstill, Steve (1990). The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics . Reading, Mass: Addison-Wesley . ISBN 0-201-50868-0. OCLC 19741379 .
- Cortes, Rudy ; Saty Raghavachary (2007). The RenderMan Shading Language Guide . Course Technology PTR. ISBN 978-1-59863-286-6.
Véase también
Referencias
- ↑ "RenderMan - Rincón del desarrollador - Especificación RI" . Archivado del original el 16 de mayo de 2009. Consultado el 12 de junio de 2009 .
Enlaces externos
- Especificaciones de Pixar RI en WebArchive: las especificaciones oficiales.
- Repositorio de RenderMan en WebArchive
- Referencias y tutoriales de gráficos por computadora del profesor Malcolm Kesson
- Notas de RenderMan , notas sobre la escritura de sombreadores, en WebArchive.
- Lenguaje de sombreado RenderMan por Dominik Susmel, en WebArchive
- Renderizado para principiantes: archivos RIB y sombreadores del libro, en WebArchive.
- Software de gráficos 3D
- RenderMan