La Especificación de Interfaz RenderMan , [1] o RISpec en resumen, es una API abierta desarrollada por Pixar Animation Studios para describir escenas tridimensionales y convertirlas en imágenes fotorrealistas digitales . Incluye el lenguaje de sombreado RenderMan .
Como especificación técnica de Pixar para un protocolo de comunicaciones estándar (o interfaz ) entre programas de modelado y programas de renderizado capaces de producir imágenes con calidad fotorrealista, RISpec es un concepto similar a PostScript pero para describir escenas 3D en lugar de diseños de página 2D. Por lo tanto, los programas de modelado que entienden el protocolo de la interfaz RenderMan pueden enviar datos al software de renderizado que implementa la interfaz RenderMan, sin importar qué algoritmos de renderizado utiliza este último.
La interfaz se publicó por primera vez en 1988 (versión 3.0) y fue diseñada para ser lo suficientemente preparada para el futuro como para abarcar los avances en tecnología durante un número significativo de años. La revisión actual es 3.2.1, publicada en noviembre de 2005.
Lo que diferenciaba a RISpec de otros estándares de la época era que permitía usar primitivas geométricas de alto nivel, como cuadrículas 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 se aproximen explícitamente a 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 superficies no solo ajustando un pequeño conjunto de parámetros, sino de una manera arbitrariamente compleja mediante el uso de un lenguaje de programación similar a C para escribir procedimientos de sombreado comúnmente conocidos como texturas de procedimiento y sombreadores . La iluminación y los desplazamientos en la superficie también son programables mediante el lenguaje de sombreado. El lenguaje de sombreado permite que cada declaración se ejecute de manera SIMD , pero no insiste en ello. Otra característica que distingue a los renderizadores basados en RISpec de muchos otros renderizadores es la capacidad de generar variables arbitrarias como una imagen: normales de superficie, pasadas de iluminación separadas y prácticamente cualquier otra cosa se puede generar desde el renderizador en una sola pasada.
RenderMan tiene mucho en común con OpenGL (desarrollado por Silicon Graphics , ahora desaparecido ), a pesar de que las dos API están dirigidas a diferentes conjuntos de usuarios (OpenGL para renderizado asistido por hardware en tiempo real y RenderMan para renderizado fotorrealista fuera de línea). Ambas API adoptan la forma de una máquina de estado basada en pilas con una representación (conceptualmente) inmediata de primitivas geométricas. Es posible implementar cualquiera de las API en términos de la otra.
Capacidades requeridas
Para que un renderizador se llame a sí mismo "compatible con RenderMan", debe implementar al menos las siguientes capacidades:
- Un estado gráfico jerárquico completo, que incluye los atributos y las pilas de transformación y la lista de luces activas.
- Transformaciones de visualización ortográfica y en perspectiva .
- Eliminación de superficies ocultas en función de la profundidad .
- Filtrado de píxeles y suavizado espacial .
- Corrección de gamma y difuminado antes de la cuantificación .
- Salida de imágenes que contengan cualquier combinación de RGB, A y Z. Las resoluciones de estos archivos deben ser las especificadas por el usuario.
- Todas las primitivas geométricas descritas en la especificación y proporcionan todas las variables primitivas estándar aplicables a cada primitiva.
- La capacidad de realizar cálculos de sombreado a través del sombreado programable por el usuario.
- La capacidad de indexar mapas de textura, mapas de entorno y mapas de profundidad de sombra
- Los quince sombreadores estándar de fuente de luz, superficie, volumen, desplazamiento y generador de imágenes requeridos por la especificación. Cualquier sombreador adicional y cualquier desviación de los sombreadores estándar presentados en esta especificación deben documentarse proporcionando el sombreador equivalente expresado en el lenguaje de sombreado RenderMan .
Capacidades avanzadas opcionales
Además, el renderizador puede implementar cualquiera de las siguientes capacidades opcionales:
- Fuentes de luz de área
- Profundidad de campo
- Mapeo de desplazamiento
- Mapeo del entorno
- Iluminación global
- Nivel de detalle
- Desenfoque de movimiento
- Proyecciones de cámara especiales
- Colores espectrales
- trazado de rayos
- Modelado de sólidos
- Sombreado de volumen
Exportadores
- Para 3D Studio Max : 3Delight para 3ds Max de DNA Research
- Para Blender : Mosaic ( código abierto )
- Para Houdini : soporte integrado . Sin embargo, todo el soporte de renderizador de terceros (incluido RenderMan) está deshabilitado cuando se utilizan las opciones de licencia Apprentice o Apprentice HD.
- Para Lightwave :
- LightMan de Tim Dapper
- Light-R de Felipe Esquivel (gratis)
- Para Maya :
- 3Delight para Maya
- Líquido ( código abierto )
- MayaMan de AnimalLogic
- RenderMan para Maya de Pixar
- Para Softimage :
- 3Delight para Softimage
- Affogato de Rising Sun Pictures ( código abierto )
- XSIMan de Graphic Primitives
Herramientas
- Estudio RenderMan
- RIBKit ( código abierto , varias herramientas de RenderMan, por ejemplo, una herramienta de creación de sombreadores visuales llamada 'SLer')
- RIBShrink y RIBDepends (herramientas que vienen con 3Delight . Reducir RIB para ocupar menos espacio en disco y mover RIB con dependencias a una nueva ubicación y / o localizar dependencias)
- ShaderMan.Next ( código abierto , herramienta de creación de sombreadores gratuita. Una reescritura de ShaderMan )
Enlaces de idioma
- Kit de gráficos por computadora de Python para Python
- RubyMan para Ruby
- G&RT para Lua
- RiGO for Go
- Secuencias de comandos de tcl
Otras lecturas
- Apodaca, Anthony A .; Larry Gritz ; Ronen Barzel (1999). RenderMan avanzado: Creación de CGI para imágenes en movimiento . San Francisco: Editorial Morgan Kaufmann. ISBN 1-55860-618-1. OCLC 42621055 .
- Ebert, David S .; F. Kenton Musgrave ; Darwyn Peachey ; Ken Perlin ; Steven Worley (2003). Texturizado y modelado: un enfoque procedimental, 3ª ed . Burlington, MA: Editorial Morgan Kaufmann. ISBN 1-55860-848-6. OCLC 52689816 .
- Raghavachary, Saty (2005). Renderizado para principiantes: síntesis de imágenes usando RenderMan . Burlington, MA: Focal Press . ISBN 0-240-51935-3. OCLC 57670361 .
- Stephenson, Ian (2002). RenderMan esencial rápido . Londres, Nueva York: Springer. ISBN 1-85233-608-0. OCLC 50494960 .
- Upstill, Steve (1990). The RenderMan Companion: una guía del programador para gráficos de computadora realistas . Lectura, Misa: Addison-Wesley . ISBN 0-201-50868-0. OCLC 19741379 .
- Cortés, Rudy ; Saty Raghavachary (2007). La guía del lenguaje de sombreado de RenderMan . Curso Tecnología PTR. ISBN 978-1-59863-286-6.
Ver también
- Representación de Reyes
Referencias
- ^ "RenderMan - Rincón de desarrolladores - Especificaciones de RI" . Archivado desde el original el 16 de mayo de 2009 . Consultado el 12 de junio de 2009 .
enlaces externos
- Especificaciones de RI de Pixar : las especificaciones oficiales.
- Repositorio RenderMan
- CG Referencias y tutoriales por el profesor Malcolm Kesson
- Notas de RenderMan (notas sobre la escritura de sombreadores)
- RenderMan Shader Language por Dominik Susmel
- Representación para principiantes de archivos RIB y sombreadores del libro