Documentación | Vídeos tutoriales | linux | Mac OS | ventanas | PyPI |
---|---|---|---|---|---|
Actualmente hay una gran cantidad de trabajo indocumentado e inestable en la rama master
. Le recomendamos encarecidamente que utilice nuestra última versión hasta nuevo aviso.
Si ya desea probar los próximos cambios, consulte esta guía de portabilidad. Debería cubrir la mayoría de las nuevas funciones y los cambios importantes que se avecinan.
Mitsuba 3 es un sistema de renderizado orientado a la investigación para la simulación de transporte ligero directo e inverso desarrollado en EPFL en Suiza. Consiste en una biblioteca central y un conjunto de complementos que implementan funcionalidades que van desde materiales y fuentes de luz hasta algoritmos de renderizado completos.
Mitsuba 3 es reorientable : esto significa que las implementaciones y estructuras de datos subyacentes pueden transformarse para realizar varias tareas diferentes. Por ejemplo, el mismo código puede simular tanto el transporte RGB escalar (clásico de un rayo a la vez) como el transporte espectral diferencial en la GPU. Todo esto se basa en Dr.Jit, un compilador especializado justo a tiempo (JIT) desarrollado específicamente para este proyecto.
Multiplataforma : Mitsuba 3 se ha probado en Linux ( x86_64
), macOS ( aarch64
, x86_64
) y Windows ( x86_64
).
Alto rendimiento : el compilador Dr.Jit subyacente fusiona código de renderizado en núcleos que logran un rendimiento de última generación utilizando un backend LLVM dirigido a la CPU y un backend CUDA/OptiX dirigido a las GPU NVIDIA con aceleración de hardware de trazado de rayos.
Python primero : Mitsuba 3 está profundamente integrado con Python. Se pueden desarrollar materiales, texturas e incluso algoritmos de renderizado completos en Python, que el sistema compila JIT (y opcionalmente diferencia) sobre la marcha. Esto permite la experimentación necesaria para la investigación en gráficos por computadora y otras disciplinas.
Diferenciación : Mitsuba 3 es un renderizador diferenciable, lo que significa que puede calcular derivadas de toda la simulación con respecto a parámetros de entrada como la pose de la cámara, la geometría, BSDF, texturas y volúmenes. Implementa algoritmos de representación diferenciables recientes desarrollados en EPFL.
Espectral y polarización : Mitsuba 3 se puede utilizar como renderizador monocromático, renderizador basado en RGB o renderizador espectral. Opcionalmente, cada variante puede tener en cuenta los efectos de la polarización, si se desea.
Hemos grabado varios vídeos de YouTube que ofrecen una suave introducción a Mitsuba 3 y Dr.Jit. Más allá de esto, puede encontrar cuadernos completos de Juypter que cubren una variedad de aplicaciones, guías prácticas y documentación de referencia en readthedocs.
Proporcionamos ruedas binarias precompiladas a través de PyPI. Instalar Mitsuba de esta manera es tan sencillo como ejecutar
pip install mitsuba
en la línea de comando. El paquete Python incluye trece variantes por defecto:
scalar_rgb
scalar_spectral
scalar_spectral_polarized
llvm_ad_rgb
llvm_ad_mono
llvm_ad_mono_polarized
llvm_ad_spectral
llvm_ad_spectral_polarized
cuda_ad_rgb
cuda_ad_mono
cuda_ad_mono_polarized
cuda_ad_spectral
cuda_ad_spectral_polarized
Los dos primeros realizan una simulación clásica de un rayo a la vez utilizando una representación de color RGB o espectral, mientras que los dos últimos se pueden utilizar para la representación inversa en la CPU o GPU. Para acceder a variantes adicionales, deberá compilar una versión personalizada de Dr.Jit usando CMake. Consulte la documentación para obtener detalles sobre esto.
Python >= 3.8
Nvidia driver >= 495.89
LLVM >= 11.1
Aquí hay un ejemplo simple de "Hola mundo" que muestra lo simple que es renderizar una escena usando Mitsuba 3 de Python:
# Import the library using the alias "mi"
import mitsuba as mi
# Set the variant of the renderer
mi . set_variant ( 'scalar_rgb' )
# Load a scene
scene = mi . load_dict ( mi . cornell_box ())
# Render the scene
img = mi . render ( scene )
# Write the rendered image to an EXR file
mi . Bitmap ( img ). write ( 'cbox.exr' )
En la documentación se pueden encontrar tutoriales y cuadernos de ejemplo que cubren una variedad de aplicaciones.
Este proyecto fue creado por Wenzel Jakob. Sébastien Speierer, Nicolas Roussel, Merlin Nimier-David, Delio Vicini, Tizian Zeltner, Baptiste Nicolet, Miguel Crespo, Vincent Leroy y Ziyi Zhang contribuyeron con características y/o mejoras importantes al código.
Cuando utilice Mitsuba 3 en proyectos académicos, cite:
@software { Mitsuba3 ,
title = { Mitsuba 3 renderer } ,
author = { Wenzel Jakob and Sébastien Speierer and Nicolas Roussel and Merlin Nimier-David and Delio Vicini and Tizian Zeltner and Baptiste Nicolet and Miguel Crespo and Vincent Leroy and Ziyi Zhang } ,
note = { https://mitsuba-renderer.org } ,
version = { 3.1.1 } ,
year = 2022
}