Este documento fornece informações abrangentes sobre o alf.io, um sistema de reserva de ingressos de código aberto, e o Mitsuba 3, um sistema de renderização orientado para pesquisa. Ele detalha pré-requisitos, instruções de instalação, exemplos de uso e diretrizes de contribuição para ambos os projetos, juntamente com informações sobre seus respectivos recursos e status de desenvolvimento. Os principais aspectos abordados incluem processos de construção, integração Docker e gerenciamento de dependências.
alf.io
O sistema de reserva de ingressos de código aberto.
Alf.io ([ˈalfjo]) é um sistema de gerenciamento de participação em eventos gratuito e de código aberto, desenvolvido para organizadores de eventos que se preocupam com privacidade, segurança e política de preços justos para seus clientes.
Pré-requisitos
Você deve ter instalado o Java versão 17 (por exemplo, Oracle, OpenJDK ou qualquer outra distribuição) para construir e executar o alf.io. Observe que para o processo de construção o JDK é necessário.
Postgresql versão 10 ou posterior.
Além disso, o usuário do banco de dados que cria e utiliza as tabelas não deve ser um "SUPERUSER", caso contrário as verificações da política de segurança de linha não serão aplicadas.
Observação
Como o trabalho para Alf.io v2 foi iniciado, este branch pode conter código instável e não testado.
Se você deseja construir e implantar o alf.io sozinho, comece com uma versão lançada.
Perfis de primavera
Existem os seguintes perfis de mola
Execute em modo de desenvolvimento
Construção Gradle
Esta compilação inclui uma cópia do wrapper Gradle. Você não precisa ter o Gradle instalado em seu sistema para compilar
o projeto. Basta executar o wrapper junto com a tarefa apropriada, por exemplo
Executando com vários perfis
Você deve especificar uma propriedade do projeto na linha de comando, como
A tarefa local "bootRun" possui os seguintes pré-requisitos:
uma vez iniciado, o alf.io criará todas as tabelas necessárias no banco de dados e estará disponível em http://localhost:8080/admin. Você pode fazer login usando o nome de usuário padrão admin e a senha que foi impressa no console.
Você pode obter uma lista de todas as tarefas Gradle suportadas executando
Você pode configurar propriedades adicionais do sistema (se precisar delas) criando o seguinte arquivo e colocando nele uma propriedade por linha:
Esteja ciente de que, como este arquivo pode conter informações confidenciais (como a chave de API privada do Google Maps), ele será automaticamente ignorado pelo git.
Para depuração
Adicione uma nova linha com: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 em custom.jvmargs
Contribuindo para alf.io
A importação do projeto Gradle para o Intellij e o Eclipse funciona.
Notas:
Como TestContainers espera o soquete docker para gerenciar os contêineres, você precisará fazer o seguinte (consulte o problema original para obter detalhes):
Defina os 2 ambientes. variável:
E execute em outro console:
A ser observado:
Verifique as dependências para atualizar
./gradlew dependencyUpdates
Executando contêineres Docker
As imagens do contêiner estão disponíveis em https://hub.docker.com/r/alfio/alf.io/tags.
alf.io também pode ser executado com Docker Compose (modo de desenvolvimento):
A execução de alf.io em produção usando Docker compose não é oficialmente suportada.
No entanto, se você decidir fazer isso, precisará fazer algumas alterações:
Teste o aplicativo alf.io
Gere uma nova versão da imagem docker alfio/alf.io
Construir aplicativo e Dockerfile
Alternativamente, você pode usar o Docker (experimental):
Observe que no momento o comando acima realiza a compilação sem executar os testes automatizados.
Use-o por sua conta e risco.
Crie uma imagem docker:
Sobre o AppleWWDRCAG4.cer incluído
O certificado em src/main/resources/alfio/certificates/AppleWWDRCAG4.cer foi importado para a funcionalidade https://github.com/ryantenney/passkit4j#usage.
Ele expirará em 12/10/2030 (AAAA-MM-DD - em https://www.apple.com/certificateauthority/).
Colaboradores
Colaboradores de código
Este projeto existe graças a todas as pessoas que contribuem.
Colaboradores de Tradução (POEditor)
Um grande "Obrigado" vai também para os nossos tradutores, que nos ajudam no POEditor:
(mostramos o nome/perfil completo apenas se tivermos recebido consentimento explícito para fazê-lo)
traduções concluídas, mas ainda não integradas (WIP)
Patrocinadores
Este projeto é patrocinado por:
Contribuintes Financeiros
Torne-se um contribuidor financeiro e ajude-nos a sustentar nossa comunidade. [Contribuir]
Indivíduos
Organizações
Apoie este projeto com sua organização. Seu logotipo aparecerá aqui com um link para seu site. [Contribuir]
Renderizador Mitsuba 3
Documentação | Vídeos tutoriais | Linux | Mac OS | Windows | PyPI |
---|---|---|---|---|---|
️
Aviso
️
Actualmente existe uma grande quantidade de trabalho indocumentado e instável em curso no
o ramo master
. É altamente recomendável que você use nosso
último lançamento
até novo aviso.
Se você já deseja experimentar as próximas mudanças, dê uma olhada em
este guia de portabilidade.
Deve cobrir a maioria dos novos recursos e mudanças importantes que estão por vir.
Introdução
Mitsuba 3 é um sistema de renderização orientado para pesquisa para luz direta e inversa
simulação de transporte desenvolvida na EPFL na Suíça.
Consiste em uma biblioteca principal e um conjunto de plug-ins que implementam funcionalidades
variando de materiais e fontes de luz a algoritmos de renderização completos.
Mitsuba 3 é redirecionável : isso significa que as implementações subjacentes e
estruturas de dados podem ser transformadas para realizar várias tarefas diferentes. Para
Por exemplo, o mesmo código pode simular transporte RGB escalar (clássico de um raio por vez)
ou transporte espectral diferencial na GPU. Tudo isso se baseia
Dr.Jit, um compilador just-in-time (JIT) especializado desenvolvido especificamente para este projeto.
Principais recursos
Plataforma cruzada : Mitsuba 3 foi testado em Linux ( x86_64
), macOS
( aarch64
, x8664
) e Windows ( x8664
).
Alto desempenho : o compilador Dr.Jit subjacente funde o código de renderização
em kernels que alcançam desempenho de última geração usando
um back-end LLVM direcionado à CPU e um back-end CUDA/OptiX
visando GPUs NVIDIA com aceleração de hardware de rastreamento de raio.
Python primeiro : Mitsuba 3 está profundamente integrado ao Python. Materiais,
texturas e até mesmo algoritmos de renderização completos podem ser desenvolvidos em Python,
que o sistema compila JIT (e opcionalmente diferencia) em tempo real.
Isso permite a experimentação necessária para pesquisas em computação gráfica e
outras disciplinas.
Diferenciação : Mitsuba 3 é um renderizador diferenciável, o que significa que
pode calcular derivadas de toda a simulação em relação à entrada
parâmetros como pose de câmera, geometria, BSDFs, texturas e volumes. Isto
implementa algoritmos de renderização diferenciáveis recentes desenvolvidos na EPFL.
Espectral e Polarização : Mitsuba 3 pode ser usado como monocromático
renderizador, renderizador baseado em RGB ou renderizador espectral. Cada variante pode
opcionalmente, considere os efeitos da polarização, se desejado.
Vídeos tutoriais, documentação
Gravamos vários vídeos no YouTube que fornecem uma introdução gentil
Mitsuba 3 e Dr.Jit. Além disso você pode encontrar notebooks Juypter completos
cobrindo uma variedade de aplicações, guias de instruções e documentação de referência
em readthedocs.
Instalação
Fornecemos rodas binárias pré-compiladas via PyPI. Instalar o Mitsuba desta forma é tão simples quanto executar
pip instalar mitsuba
na linha de comando. O pacote Python inclui treze variantes por padrão:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Os dois primeiros realizam simulação clássica de um raio por vez usando um RGB
ou representação espectral de cores, enquanto os dois últimos podem ser usados para representação inversa
renderização na CPU ou GPU. Para acessar variantes adicionais, você precisará
compilar uma versão personalizada do Dr.Jit usando CMake. Por favor veja o
documentação
para obter detalhes sobre isso.
Requisitos
Python >= 3.8
(opcional) Para computação na GPU: Nvidia driver >= 495.89
(opcional) Para computação vetorizada/paralela na CPU: LLVM >= 11.1
Uso
Aqui está um exemplo simples de "Hello World" que mostra como é simples renderizar um
cena usando Mitsuba 3 do Python:
# Importe a biblioteca usando o alias "mi"import mitsuba as mi# Defina a variante do renderermi.setvariant('scalarrgb')# Carregue uma scenecene = mi.loaddict(mi.cornellbox())# Renderize a cenaimg = mi. render(scene)# Grave a imagem renderizada em um arquivo EXRmi.Bitmap(img).write('cbox.exr')
Tutoriais e cadernos de exemplo cobrindo uma variedade de aplicações podem ser encontrados
na documentação.
Sobre
Este projeto foi criado por Wenzel Jakob.
Recursos e/ou melhorias significativas no código foram contribuídos por
Sébastien Speierer,
Nicolas Roussel,
Merlin Nimier-David,
Délio Vicini,
Tizian Zeltner,
Baptiste Nicolet,
Miguel Crespo,
Vicente Leroy e
Zi Yi Zhang.
Ao usar o Mitsuba 3 em projetos acadêmicos, cite:
@software{Mitsuba3,title = {mitsuba 3 renderer},author = {Wenzel Jakob e Sébastien Speierer e Nicolas Roussel e Merlin Nimier-David e Delio Vicini e Tizian Zeltner e Baptiste Nicolet e Miguel Crespo e Vincent Leroy e Ziyi Zhang},nota = {https://mitsuba-renderer.org},versão = {3.1.1},ano = 2022}