Dokumentasi | Video tutorial | Linux | macOS | jendela | PyPI |
---|---|---|---|---|---|
Saat ini terdapat sejumlah besar pekerjaan tidak terdokumentasi dan tidak stabil yang terjadi di cabang master
. Kami sangat menyarankan Anda menggunakan rilis terbaru kami hingga 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.
Mitsuba 3 adalah sistem rendering berorientasi penelitian untuk simulasi transportasi cahaya maju dan mundur yang 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 dan struktur data yang mendasarinya dapat bertransformasi untuk menyelesaikan berbagai tugas berbeda. Misalnya, kode yang sama dapat mensimulasikan transpor RGB skalar (klasik satu sinar pada satu waktu) atau transpor spektral diferensial pada GPU. Ini semua dibangun di atas Dr.Jit, kompiler just-in-time (JIT) khusus yang dikembangkan khusus untuk proyek ini.
Lintas platform : Mitsuba 3 telah diuji di Linux ( x86_64
), macOS ( aarch64
, x86_64
), dan Windows ( x86_64
).
Kinerja tinggi : Kompiler Dr.Jit yang mendasari menggabungkan kode rendering ke dalam kernel yang mencapai kinerja canggih menggunakan backend LLVM yang menargetkan CPU dan backend CUDA/OptiX yang menargetkan GPU NVIDIA dengan akselerasi perangkat keras ray tracing.
Python pertama : Mitsuba 3 sangat terintegrasi dengan Python. Material, 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 di bidang grafik komputer dan disiplin ilmu lainnya.
Diferensiasi : Mitsuba 3 adalah penyaji yang dapat dibedakan, artinya ia dapat menghitung turunan dari keseluruhan simulasi sehubungan dengan parameter masukan seperti pose kamera, geometri, BSDF, tekstur, dan volume. Ini mengimplementasikan algoritma rendering terdiferensiasi terbaru yang dikembangkan di EPFL.
Spektral & Polarisasi : Mitsuba 3 dapat digunakan sebagai penyaji monokromatik, penyaji berbasis RGB, atau penyaji spektral. Setiap varian secara opsional dapat memperhitungkan efek polarisasi jika diinginkan.
Kami telah merekam beberapa video YouTube yang memberikan pengenalan lembut Mitsuba 3 dan Dr.Jit. Selain itu, Anda dapat menemukan buku catatan Juypter lengkap yang mencakup berbagai aplikasi, panduan cara kerja, dan dokumentasi referensi di readthedocs.
Kami menyediakan roda biner yang telah dikompilasi sebelumnya melalui PyPI. Menginstal Mitsuba dengan cara ini semudah menjalankannya
pip install mitsuba
pada baris perintah. Paket Python mencakup tiga belas varian secara default:
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
Dua yang pertama melakukan simulasi klasik satu sinar pada satu waktu menggunakan representasi warna RGB atau spektral, sedangkan dua yang terakhir dapat digunakan untuk rendering terbalik pada CPU atau GPU. Untuk mengakses varian tambahan, Anda perlu mengkompilasi versi khusus Dr.Jit menggunakan CMake. Silakan lihat dokumentasi untuk detailnya.
Python >= 3.8
Nvidia driver >= 495.89
LLVM >= 11.1
Berikut adalah contoh sederhana "Hello World" yang menunjukkan betapa sederhananya merender adegan menggunakan Mitsuba 3 dari 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' )
Tutorial dan contoh buku catatan yang mencakup berbagai aplikasi dapat ditemukan di dokumentasi.
Proyek ini dibuat oleh Wenzel Jakob. Fitur signifikan dan/atau perbaikan pada kode ini 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 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
}