Dokumen ini memberikan informasi komprehensif tentang alf.io, sistem reservasi tiket sumber terbuka, dan Mitsuba 3, sistem rendering berorientasi penelitian. Ini merinci prasyarat, petunjuk instalasi, contoh penggunaan, dan pedoman kontribusi untuk kedua proyek, bersama dengan informasi tentang fitur masing-masing dan status pengembangannya. Aspek utama yang dibahas meliputi proses pembangunan, integrasi Docker, dan manajemen ketergantungan.
alf.io
Sistem reservasi tiket open source.
Alf.io ([ˈalfjo]) adalah sistem manajemen kehadiran acara gratis dan bersumber terbuka, dikembangkan untuk penyelenggara acara yang peduli dengan privasi, keamanan, dan kebijakan harga yang adil bagi pelanggannya.
Prasyarat
Anda harus menginstal Java versi 17 (misalnya Oracle, OpenJDK, atau distribusi lainnya) untuk membangun dan menjalankan alf.io. Harap dicatat bahwa untuk proses pembangunan JDK diperlukan.
Postgresql versi 10 atau lebih baru.
Selain itu, pengguna database yang membuat dan menggunakan tabel tidak boleh menjadi "SUPERUSER", atau pemeriksaan kebijakan keamanan baris tidak akan diterapkan.
Catatan
Saat pekerjaan untuk Alf.io v2 telah dimulai, cabang ini mungkin berisi kode yang tidak stabil dan belum teruji.
Jika Anda ingin membangun dan menerapkan alf.io sendiri, silakan mulai dari versi Dirilis.
Profil musim semi
Ada profil pegas berikut
Jalankan dalam mode pengembangan
Pembangunan Gradle
Build ini menyertakan salinan pembungkus Gradle. Anda tidak perlu menginstal Gradle di sistem Anda untuk membangun
proyek. Cukup jalankan wrapper bersama dengan tugas yang sesuai, misalnya
Berjalan dengan banyak profil
Anda harus menentukan properti proyek di baris perintah, seperti
Tugas "bootRun" lokal memiliki prasyarat berikut:
setelah dimulai, alf.io akan membuat semua tabel yang diperlukan dalam database, dan tersedia di http://localhost:8080/admin. Anda dapat masuk menggunakan Nama Pengguna default admin dan kata sandi yang dicetak di konsol.
Anda bisa mendapatkan daftar semua tugas Gradle yang didukung dengan menjalankan
Anda dapat mengonfigurasi properti Sistem tambahan (jika Anda membutuhkannya) dengan membuat file berikut dan memasukkan satu properti per baris ke dalamnya:
Perlu diketahui bahwa karena file ini mungkin berisi informasi sensitif (seperti kunci API pribadi Google Maps), maka file ini akan diabaikan secara otomatis oleh git.
Untuk debug
Tambahkan baris baru dengan: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 di custom.jvmargs
Berkontribusi pada alf.io
Mengimpor proyek Gradle ke Intellij dan Eclipse keduanya berfungsi.
Catatan:
Karena TestContainers mengharapkan soket buruh pelabuhan untuk mengelola kontainer, Anda perlu melakukan hal berikut (lihat masalah asli untuk detailnya):
Tentukan 2 lingkungan. variabel:
Dan jalankan di konsol lain:
Yang perlu diperhatikan:
Periksa dependensi untuk diperbarui
./gradlew dependencyUpdates
Menjalankan kontainer Docker
Gambar kontainer tersedia di https://hub.docker.com/r/alfio/alf.io/tags.
alf.io juga dapat dijalankan dengan Docker Compose (mode pengembangan):
Menjalankan alf.io dalam produksi menggunakan penulisan Docker tidak didukung secara resmi.
Namun, jika Anda memutuskan untuk melakukannya, Anda perlu melakukan beberapa perubahan:
Uji aplikasi alf.io
Buat versi baru image buruh pelabuhan alfio/alf.io
Bangun aplikasi dan Dockerfile
Alternatifnya, Anda dapat menggunakan Docker (eksperimental):
Harap dicatat bahwa saat ini perintah di atas menjalankan pembangunan tanpa menjalankan pengujian otomatis.
Gunakan dengan risiko Anda sendiri.
Buat gambar buruh pelabuhan:
Tentang AppleWWDRCAG4.cer yang disertakan
Sertifikat di src/main/resources/alfio/certificates/AppleWWDRCAG4.cer telah diimpor untuk fungsi https://github.com/ryantenney/passkit4j#usage.
Masa berlakunya akan berakhir pada 12-10-2030 (YYYY-MM-DD - mulai https://www.apple.com/certificateauthority/).
Kontributor
Kontributor Kode
Proyek ini ada berkat semua orang yang berkontribusi.
Kontributor Terjemahan (POEditor)
Ucapan terima kasih yang sebesar-besarnya juga ditujukan kepada penerjemah kami, yang membantu kami di POEditor:
(kami menampilkan nama/profil lengkap hanya jika kami telah menerima persetujuan eksplisit untuk melakukannya)
terjemahan selesai tetapi belum terintegrasi (WIP)
Sponsor
Proyek ini disponsori oleh:
Kontributor Keuangan
Menjadi kontributor keuangan dan membantu kami mempertahankan komunitas kami. [Menyumbang]
Individu
Organisasi
Dukung proyek ini dengan organisasi Anda. Logo Anda akan muncul di sini dengan tautan ke situs web Anda. [Menyumbang]
Penyaji Mitsuba 3
Dokumentasi | Video tutorial | Linux | macOS | jendela | PyPI |
---|---|---|---|---|---|
️
Peringatan
️
Saat ini terdapat sejumlah besar pekerjaan tidak terdokumentasi dan tidak stabil yang terjadi
cabang master
. Kami sangat menyarankan Anda menggunakan kami
rilis terbaru
sampai pemberitahuan lebih lanjut.
Jika Anda sudah ingin mencoba perubahan yang akan datang, silakan lihat
panduan porting ini.
Ini harus mencakup sebagian besar fitur baru dan perubahan penting yang akan datang.
Perkenalan
Mitsuba 3 adalah sistem rendering berorientasi penelitian untuk cahaya maju dan mundur
simulasi transportasi dikembangkan di EPFL di Swiss.
Ini terdiri dari perpustakaan inti dan satu set plugin yang mengimplementasikan fungsionalitas
mulai dari bahan dan sumber cahaya hingga algoritma rendering lengkap.
Mitsuba 3 dapat ditargetkan ulang : ini berarti implementasi yang mendasarinya dan
struktur data dapat bertransformasi untuk menyelesaikan berbagai tugas berbeda. Untuk
Misalnya, kode yang sama dapat mensimulasikan transpor RGB skalar (klasik satu sinar pada satu waktu).
atau transportasi spektral diferensial pada GPU. Ini semua didasarkan pada
Dr.Jit, kompiler just-in-time (JIT) khusus yang dikembangkan khusus untuk proyek ini.
Fitur Utama
Lintas platform : Mitsuba 3 telah diuji di Linux ( x86_64
), macOS
( aarch64
, x8664
), dan Windows ( x8664
).
Performa tinggi : Kompiler Dr.Jit yang mendasari menggabungkan kode rendering
menjadi kernel yang mencapai kinerja canggih dengan menggunakan
backend LLVM yang menargetkan CPU dan backend CUDA/OptiX
menargetkan GPU NVIDIA dengan akselerasi perangkat keras ray tracing.
Python pertama : Mitsuba 3 sangat terintegrasi dengan Python. Bahan,
tekstur, dan bahkan algoritma rendering penuh dapat dikembangkan dengan Python,
yang dikompilasi oleh sistem JIT (dan secara opsional dibedakan) dengan cepat.
Hal ini memungkinkan eksperimen yang diperlukan untuk penelitian dalam grafik komputer dan
disiplin ilmu lainnya.
Diferensiasi : Mitsuba 3 adalah penyaji yang dapat dibedakan, artinya itu
dapat menghitung turunan dari keseluruhan simulasi sehubungan dengan masukan
parameter seperti pose kamera, geometri, BSDF, tekstur, dan volume. Dia
mengimplementasikan algoritma rendering terdiferensiasi terbaru yang dikembangkan di EPFL.
Spektral & Polarisasi : Mitsuba 3 dapat digunakan sebagai monokromatik
penyaji, penyaji berbasis RGB, atau penyaji spektral. Setiap varian bisa
secara opsional memperhitungkan efek polarisasi jika diinginkan.
Video tutorial, dokumentasi
Kami telah merekam beberapa video YouTube yang memberikan pengenalan lembut
Mitsuba 3 dan Dr.Jit. Selain itu, Anda dapat menemukan buku catatan Juypter lengkap
mencakup berbagai aplikasi, panduan cara kerja, dan dokumentasi referensi
di readthedocs.
Instalasi
Kami menyediakan roda biner yang telah dikompilasi sebelumnya melalui PyPI. Menginstal Mitsuba dengan cara ini semudah menjalankannya
pip instal mitsuba
pada baris perintah. Paket Python mencakup tiga belas varian secara default:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Dua yang pertama melakukan simulasi klasik satu sinar pada satu waktu menggunakan RGB
atau representasi warna spektral, sedangkan dua yang terakhir dapat digunakan untuk invers
rendering pada CPU atau GPU. Untuk mengakses varian tambahan, Anda perlu melakukannya
kompilasi versi khusus Dr.Jit menggunakan CMake. Silakan lihat
dokumentasi
untuk rincian tentang ini.
Persyaratan
Python >= 3.8
(opsional) Untuk komputasi pada GPU: Nvidia driver >= 495.89
(opsional) Untuk komputasi vektor/paralel pada CPU: LLVM >= 11.1
Penggunaan
Berikut adalah contoh sederhana "Hello World" yang menunjukkan betapa sederhananya merender a
adegan menggunakan Mitsuba 3 dari Python:
# Impor perpustakaan menggunakan alias "mi"impor mitsuba sebagai mi# Atur varian renderermi.setvariant('scalarrgb')# Muat scene = mi.loaddict(mi.cornellbox())# Render sceneimg = mi. render(adegan)# Tulis gambar yang dirender ke file EXRmi.Bitmap(img).write('cbox.exr')
Tutorial dan contoh buku catatan yang mencakup berbagai aplikasi dapat ditemukan
dalam dokumentasi.
Tentang
Proyek ini dibuat oleh Wenzel Jakob.
Fitur-fitur penting dan/atau perbaikan pada kode disumbangkan oleh
Sébastien Speierer,
Nicolas Roussel,
Merlin Nimier-David,
Delio Vicini,
Tizian Zeltner,
Baptiste Nicolet,
Miguel Crespo,
Vincent Leroy, dan
Ziyi Zhang.
Saat menggunakan Mitsuba 3 dalam proyek akademik, harap kutip:
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob dan Sébastien Speierer dan Nicolas Roussel dan Merlin Nimier-David dan Delio Vicini dan Tizian Zeltner dan Baptiste Nicolet dan Miguel Crespo dan Vincent Leroy dan Ziyi Zhang},catatan = {https://mitsuba-renderer.org},versi = {3.1.1},tahun = 2022}