Este documento proporciona información completa sobre alf.io, un sistema de reserva de boletos de código abierto, y Mitsuba 3, un sistema de renderizado orientado a la investigación. Detalla los requisitos previos, instrucciones de instalación, ejemplos de uso y pautas de contribución para ambos proyectos, junto con información sobre sus respectivas características y estado de desarrollo. Los aspectos clave cubiertos incluyen procesos de compilación, integración de Docker y gestión de dependencias.
alf.io
El sistema de reserva de entradas de código abierto.
Alf.io ([ˈalfjo]) es un sistema de gestión de asistencia a eventos gratuito y de código abierto, desarrollado para organizadores de eventos que se preocupan por la privacidad, la seguridad y la política de precios justos para sus clientes.
Requisitos previos
Debería haber instalado Java versión 17 (por ejemplo, Oracle, OpenJDK o cualquier otra distribución) para compilar y ejecutar alf.io. Tenga en cuenta que para el proceso de compilación se requiere el JDK.
Postgresql versión 10 o posterior.
Además, el usuario de la base de datos que crea y utiliza las tablas no debe ser un "SUPERUSUARIO"; de lo contrario, no se aplicarán las comprobaciones de la política de seguridad de filas.
Nota
Dado que el trabajo para Alf.io v2 ha comenzado, esta rama puede contener código inestable y no probado.
Si desea crear e implementar alf.io usted mismo, comience desde una versión publicada.
Perfiles de resorte
Existen los siguientes perfiles de resorte.
Ejecutar en modo desarrollo
Construcción de Gradle
Esta compilación incluye una copia del contenedor de Gradle. No es necesario tener Gradle instalado en su sistema para compilar
el proyecto. Simplemente ejecute el contenedor junto con la tarea adecuada, por ejemplo
Ejecutar con múltiples perfiles
Debe especificar una propiedad del proyecto en la línea de comando, como
La tarea local "bootRun" tiene los siguientes requisitos previos:
Una vez iniciado, alf.io creará todas las tablas necesarias en la base de datos y estará disponible en http://localhost:8080/admin. Puede iniciar sesión con el nombre de usuario predeterminado admin y la contraseña que estaba impresa en la consola.
Puede obtener una lista de todas las tareas de Gradle compatibles ejecutando
Puede configurar propiedades adicionales del sistema (si las necesita) creando el siguiente archivo y colocando en él una propiedad por línea:
Tenga en cuenta que, dado que este archivo podría contener información confidencial (como la clave API privada de Google Maps), Git lo ignorará automáticamente.
Para depurar
Agregue una nueva línea con: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 en custom.jvmargs
Contribuyendo a alf.io
Importar el proyecto Gradle a Intellij y Eclipse funciona.
Notas:
Como los TestContainers esperan que el socket de la ventana acoplable administre los contenedores, deberá hacer lo siguiente (consulte la edición original para obtener más detalles):
Defina los 2 entornos. variable:
Y ejecutar en otra consola:
A tener en cuenta:
Verificar dependencias para actualizar
./gradlew dependenciaActualizaciones
Ejecutar contenedores Docker
Las imágenes de contenedores están disponibles en https://hub.docker.com/r/alfio/alf.io/tags.
alf.io también se puede ejecutar con Docker Compose (modo de desarrollo):
No se admite oficialmente la ejecución de alf.io en producción mediante Docker Compose.
Sin embargo, si decide hacerlo, deberá realizar un par de cambios:
Pruebe la aplicación alf.io
Genere una nueva versión de la imagen acoplable alfio/alf.io
Crear aplicación y Dockerfile
Alternativamente, puedes usar Docker (experimental):
Tenga en cuenta que en este momento el comando anterior realiza la compilación sin ejecutar las pruebas automatizadas.
Úselo bajo su propio riesgo.
Crear imagen acoplable:
Acerca del AppleWWDRCAG4.cer incluido
El certificado en src/main/resources/alfio/certificates/AppleWWDRCAG4.cer se importó para la funcionalidad https://github.com/ryantenney/passkit4j#usage.
Caducará el 2030-10-12 (AAAA-MM-DD - a partir de https://www.apple.com/certificateauthority/).
Colaboradores
Colaboradores de código
Este proyecto existe gracias a todas las personas que contribuyen.
Colaboradores de traducción (POEditor)
Un gran "gracias" también para nuestros traductores, que nos ayudan en POEditor:
(mostramos el nombre/perfil completo sólo si hemos recibido el consentimiento explícito para hacerlo)
traducciones completadas pero aún no integradas (WIP)
Patrocinadores
Este proyecto está patrocinado por:
Contribuyentes financieros
Conviértase en un contribuyente financiero y ayúdenos a sostener nuestra comunidad. [Contribuir]
Individuos
Organizaciones
Apoye este proyecto con su organización. Su logotipo aparecerá aquí con un enlace a su sitio web. [Contribuir]
Renderizador Mitsuba 3
Documentación | Vídeos tutoriales | linux | Mac OS | ventanas | PyPI |
---|---|---|---|---|---|
️
Advertencia
️
Actualmente hay una gran cantidad de trabajo indocumentado e inestable en
la rama master
. Le recomendamos encarecidamente que utilice nuestro
último lanzamiento
hasta nuevo aviso.
Si ya desea probar los próximos cambios, eche un vistazo a
esta guía de portabilidad.
Debería cubrir la mayoría de las nuevas funciones y los cambios importantes que se avecinan.
Introducción
Mitsuba 3 es un sistema de renderizado de luz directa e inversa orientado a la investigación
Simulación de transporte desarrollada en EPFL en Suiza.
Consiste en una biblioteca central y un conjunto de complementos que implementan funciones.
que van desde materiales y fuentes de luz hasta algoritmos de renderizado completos.
Mitsuba 3 es reorientable : esto significa que las implementaciones subyacentes y
Las estructuras de datos pueden transformarse para realizar varias tareas diferentes. Para
Por ejemplo, el mismo código puede simular transporte RGB escalar (clásico de un rayo a la vez)
o 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.
Características principales
Multiplataforma : Mitsuba 3 ha sido probado en Linux ( x86_64
), macOS
( aarch64
, x8664
) y Windows ( x8664
).
Alto rendimiento : el compilador Dr.Jit subyacente fusiona el 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 GPU NVIDIA con aceleración de hardware de trazado de rayos.
Python primero : Mitsuba 3 está profundamente integrado con Python. materiales,
Se pueden desarrollar 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 ordenador 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 la entrada.
parámetros como la pose de la cámara, la geometría, los BSDF, las texturas y los volúmenes. Él
implementa algoritmos de representación diferenciables recientes desarrollados en EPFL.
Espectral y polarización : Mitsuba 3 se puede utilizar como monocromático
renderizador, renderizador basado en RGB o renderizador espectral. Cada variante puede
Opcionalmente, tenga en cuenta los efectos de la polarización si se desea.
Vídeos tutoriales, documentación.
Hemos grabado varios vídeos de YouTube que proporcionan una suave introducción.
Mitsuba 3 y Dr.Jit. Más allá de esto puedes encontrar cuadernos Juypter completos.
que cubre una variedad de aplicaciones, guías prácticas y documentación de referencia
en readthedocs.
Instalación
Proporcionamos ruedas binarias precompiladas a través de PyPI. Instalar Mitsuba de esta manera es tan sencillo como ejecutar
instalar pip mitsuba
en la línea de comando. El paquete Python incluye trece variantes por defecto:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Los dos primeros realizan la simulación clásica de un rayo a la vez usando un RGB
o representación de color espectral, mientras que los dos últimos se pueden utilizar para representación inversa.
renderizado en la CPU o GPU. Para acceder a variantes adicionales, deberá
compilar una versión personalizada de Dr.Jit usando CMake. Por favor vea el
documentación
para obtener detalles sobre esto.
Requisitos
Python >= 3.8
(opcional) Para cálculo en la GPU: Nvidia driver >= 495.89
(opcional) Para cálculo vectorizado/paralelo en la CPU: LLVM >= 11.1
Uso
A continuación se muestra un ejemplo sencillo de "Hola mundo" que muestra lo sencillo que es representar un
escena usando Mitsuba 3 de Python:
# Importar la biblioteca usando el alias "mi" importar mitsuba como mi # Establecer la variante de renderermi.setvariant('scalarrgb')# Cargar una escena = mi.loaddict(mi.cornellbox())# Renderizar la escenaimg = mi. render(scene)# Escribe la imagen renderizada en un archivo EXRmi.Bitmap(img).write('cbox.exr')
Se pueden encontrar tutoriales y cuadernos de ejemplo que cubren una variedad de aplicaciones.
en la documentación.
Acerca de
Este proyecto fue creado por Wenzel Jakob.
Funciones y/o mejoras significativas al código fueron aportadas por
Sébastien Speierer,
Nicolás Roussel,
Merlín Nimier-David,
Delio Vicini,
Tizian Zeltner,
Bautista Nicolet,
Miguel Crespo,
Vicente Leroy y
Ziyi Zhang.
Cuando utilice Mitsuba 3 en proyectos académicos, cite:
@software{Mitsuba3,title = {Mitsuba 3 renderer},autor = {Wenzel Jakob y Sébastien Speierer y Nicolas Roussel y Merlin Nimier-David y Delio Vicini y Tizian Zeltner y Baptiste Nicolet y Miguel Crespo y Vincent Leroy y Ziyi Zhang},nota = {https://mitsuba-renderer.org},versión = {3.1.1},año = 2022}