Dokumen ini memberikan gambaran komprehensif tentang flexmark-java, implementasi Java performa tinggi dari parser CommonMark Markdown. Ini merinci fitur-fiturnya, termasuk kecepatan, ekstensibilitas, dan pelacakan posisi sumber terperinci, bersama dengan instruksi untuk memulai cepat, ekstensi yang tersedia, dan migrasi dari pegdown. Dokumen ini juga mencakup pedoman pengembangan dan kontribusi yang berkelanjutan.
flexmark-java
flexmark-java adalah implementasi Java dari parser CommonMark (spesifikasi 0.28) menggunakan
blok terlebih dahulu, sebaris setelah arsitektur penguraian penurunan harga.
Kekuatannya adalah kecepatan, fleksibilitas, AST berbasis elemen sumber penurunan harga dengan detailnya
posisi sumber hingga karakter individu leksem yang membentuk unsur dan
kemungkinan diperpanjang.
API ini memungkinkan kontrol granular pada proses penguraian dan dioptimalkan untuk penguraian dengan skala besar
jumlah ekstensi yang dipasang. Parser dan ekstensi hadir dengan banyak opsi untuk parser
variasi perilaku dan rendering HTML. Tujuan akhirnya adalah agar parser dan renderer dapat melakukannya
untuk meniru parser lain dengan tingkat akurasi yang tinggi. Ini sekarang sebagian sudah selesai dengan
implementasi Emulasi Prosesor Penurunan Harga
Motivasi untuk proyek ini adalah kebutuhan untuk mengganti parser pegdown di Markdown Navigator saya
plugin untuk IDE JetBrains. pegdown memiliki serangkaian fitur hebat tetapi kecepatannya secara umum kurang
dari ideal dan untuk masukan patologis hang atau praktis hang selama penguraian.
️Versi 0.60.0 mengalami perubahan yang dapat mengganggu karena penataan ulang, penggantian nama, pembersihan, dan
optimalisasi kelas implementasi. Perubahan dirinci dalam
Versi-0.60.0-Perubahan.
terbaru
Persyaratan
Untuk Versi 0.62.2 atau lebih rendah, Java 8 atau lebih tinggi, kompatibel dengan Java 9+. Untuk Versi 0.64.0 atau
di atas, Java 11 atau lebih tinggi.
Proyek ini ada di Maven: com.vladsch.flexmark
Inti tidak memiliki ketergantungan selain org.jetbrains:annotations:24.0.1. Untuk ekstensi, lihat
deskripsi ekstensi di bawah ini.
API masih terus berkembang untuk mengakomodasi ekstensi dan fungsi baru.
Mulai Cepat
Untuk Maven, tambahkan flexmark-all sebagai ketergantungan yang mencakup inti dan semua modul ke
sampel berikut:
Sumber:
Contoh Dasar.java
Membangun melalui Gradle
Membangun dengan Android Studio
Pengaturan tambahan karena file duplikat:
Informasi lebih lanjut dapat ditemukan di dokumentasi:
Contoh Penggunaan Beranda Wiki
Detail Ekstensi
Ekstensi Penulisan
Pembantu Migrasi Pegdown
Kelas PegdownOptionsAdapter mengonversi tanda pegdown Extensions.* menjadi opsi flexmark dan
daftar ekstensi. Pegdown Extensions.java disertakan untuk kenyamanan dan opsi baru tidak ditemukan
di pegdown 1.6.0. Ini terletak di modul flexmark-profile-pegdown tetapi Anda dapat mengambilnya
sumber dari repo ini: PegdownOptionsAdapter.java, Extensions.java dan buat sendiri
versi, dimodifikasi sesuai kebutuhan proyek Anda.
Anda dapat meneruskan tanda ekstensi Anda ke PegdownOptionsAdapter.flexmarkOptions(int) statis atau Anda
dapat membuat instance PegdownOptionsAdapter dan menggunakan metode praktis untuk menyetel, menambah, dan menghapus
bendera ekstensi. PegdownOptionsAdapter.getFlexmarkOptions() akan mengembalikan salinan baru
DataHolder setiap saat dengan opsi yang mencerminkan tanda ekstensi pegdown.
Emulasi pegdown flexmark-java default menggunakan penguraian blok HTML yang tidak terlalu ketat yang mengganggu proses
Blok HTML pada baris kosong. Pegdown hanya menginterupsi blok HTML pada baris kosong jika semua tag masuk
blok HTML ditutup.
Untuk lebih mendekati perilaku penguraian blok HTML pegdown asli, gunakan metode yang menggunakan a
argumen boolean strictHtml:
Contoh dengan penyelesai tautan khusus juga tersedia, yang mencakup penyelesai tautan untuk
mengubah URL atau atribut tautan dan penyaji simpul khusus jika Anda perlu menggantinya
tautan HTML yang dihasilkan.
flexmark-java memiliki lebih banyak ekstensi dan opsi konfigurasi daripada
pegdown selain ekstensi yang tersedia di pegdown 1.6.0.
Ekstensi yang Tersedia melalui PegdownOptionsAdapter
Penambahan dan Perubahan Terbaru
Reorganisasi besar-besaran dan pembersihan kode implementasi di versi 0.60.0, lihat
Versi-0.60.0-Berubah berkat kerja keras dari
Alex Karezin Anda bisa mendapatkan gambaran umum tentang dependensi modul
dengan kemampuan untuk menelusuri paket dan kelas.
Gabungkan API untuk menggabungkan beberapa dokumen penurunan harga menjadi satu
dokumen.
Ekstensi Perender Docx:
Penanganan Node Atribut Terbatas
Modul Konverter HTML ke Penurunan Harga yang Dapat Diperluas:
flexmark-html2md-konverter. Mencicipi:
HtmlToMarkdownCustomizedSample.java
Kompatibilitas modul Java9+
Referensi Terhitung Majemuk
Ekstensi Referensi yang disebutkan untuk membuat
penomoran resmi untuk elemen dan judul.
Ekstensi Makro untuk memungkinkan konten penurunan harga sewenang-wenang
disisipkan sebagai elemen blok atau sebaris, memungkinkan elemen blok digunakan jika hanya sebaris
elemen diizinkan oleh sintaksis.
Penurunan Harga Rasa GitLab untuk penguraian dan
merender ekstensi penurunan harga GitLab.
Modul OSGi milik Dan Klco (GitHub @klcodanr)
Tag Media Milik ekstensi transformator tautan media
Cornelia Schultz (GitHub @CorneliaXaos) mengubah tautan
menggunakan awalan khusus untuk tag HTML5 Audio, Sematan, Gambar, dan Video.
API Pembantu Terjemahan untuk membuat penurunan harga terjemahan
dokumen lebih mudah.
Peringatan Untuk membuat konten sampingan bergaya blok. Untuk
dokumentasi selengkapnya silakan lihat Ekstensi Peringatan, Materi untuk MkDocs
dokumentasi.
Referensi yang disebutkan untuk membuat yang disebutkan
referensi gambar, tabel dan elemen penurunan harga lainnya.
Atribut untuk mengurai atribut berupa atribut {name name=value name='value' name="value" #id .class-name}.
Transformator Tautan Tersemat YouTube
terima kasih kepada Vyacheslav N. Boyko (GitHub @bvn13) mengubah tautan sederhana ke video youtube menjadi
video tertanam iframe HTML.
Konverter Docx menggunakan perpustakaan docx4j. Cara menggunakan:
Contoh DocxConverter, cara menyesuaikan:
Menyesuaikan Render Docx
Pengembangan modul ini disponsori oleh
Johner Institut GmbH.
Perbarui perpustakaan agar sesuai dengan CommonMark (spesifikasi 0,28) dan tambahkan
ParserEmulationProfile.COMMONMARK027 dan ParserEmulationProfile.COMMONMARK028 untuk mengizinkan
memilih opsi versi spesifikasi tertentu.
API rendering node khusus dengan kemampuan untuk menjalankan rendering standar untuk node yang diganti,
mengizinkan perenderan simpul khusus yang hanya menangani kasus khusus dan membiarkan sisanya dirender
biasa. pemecah tautan khusus
Masalah Gfm dan
Ekstensi Gfm-Users untuk penguraian dan rendering #123 dan
@ nama pengguna masing-masing.
Opsi penguraian blok HTML dalam untuk penanganan tag teks mentah yang lebih baik setelah tag lainnya
dan untuk kompatibilitas penguraian blok HTML pegdown.
modul flexmark-all yang mencakup: inti, semua ekstensi, formatter, JIRA dan YouTrack
konverter, modul profil pegdown, dan konversi HTML ke Markdown.
Modul Keluaran PDF
Keluaran PDF menggunakan Open HTML To PDF
Tipografi diterapkan
Ekstensi Makro XWiki
Tag Jekyll
Html Untuk Penurunan Harga
Plugin Pembuat Halaman Penurunan Harga Maven
Modul Markdown Formatter untuk menampilkan AST sebagai penurunan harga
opsi pemformatan.
Tabel untuk Pemformat Penurunan Harga
dengan lebar kolom dan perataan tabel penurunan harga:
Rilis, Perbaikan Bug, Peningkatan dan Dukungan
Saya menggunakan flexmark-java sebagai parser untuk plugin Markdown Navigator untuk IDE JetBrains. saya cenderung
gunakan versi terbaru yang belum dirilis untuk memperbaiki bug atau mendapatkan peningkatan. Jadi jika Anda menemukan bug itu
penghenti acara untuk proyek Anda atau melihat bug di halaman masalah github yang ditandai diperbaiki untuk rilis berikutnya yang memengaruhi proyek Anda, silakan beri tahu saya dan saya mungkin dapat segera
buat rilis baru untuk mengatasi masalah Anda. Jika tidak, saya akan membiarkan perbaikan bug dan peningkatan
menumpuk berpikir tidak ada yang terpengaruh oleh apa yang sudah diperbaiki.
Poin ekstensi di API sangat banyak
Ada banyak opsi ekstensi di API dengan tujuan penggunaannya. Awal yang baik adalah
modul flexmark-java-samples yang memiliki sampel sederhana untuk diminta
ekstensi. Tempat terbaik berikutnya adalah sumber ekstensi yang sudah ada yang memiliki sintaks serupa
pada apa yang ingin Anda tambahkan.
Jika ekstensi Anda sejalan dengan API yang tepat, tugasnya biasanya sangat singkat dan mudah. Jika Anda
ekstensi menggunakan API dengan cara yang tidak diinginkan atau tidak mengikuti tata graha yang diharapkan
protokol, Anda mungkin merasa kesulitan menghadapi masalah penanganan kondisi if/else dan
memperbaiki satu bug hanya mengarah pada pembuatan bug lainnya.
Secara umum, jika diperlukan lebih dari beberapa lusin baris untuk menambahkan ekstensi sederhana, maka Anda bisa melakukannya
apakah terjadi kesalahan atau API tidak memiliki titik ekstensi. Jika Anda melihat semuanya
ekstensi yang diimplementasikan, Anda akan melihat bahwa sebagian besar berupa beberapa baris kode selain pelat ketel
ditentukan oleh API. Itulah tujuan perpustakaan ini: menyediakan inti yang dapat diperluas
menulis ekstensi dengan mudah.
Ekstensi yang lebih besar adalah flexmark-ext-tables dan flexmark-ext-spec-example, inti dari
keduanya sekitar 200 baris kode. Anda dapat menggunakannya sebagai panduan untuk memperkirakan ukuran Anda
perpanjangan.
Pengalaman saya menambahkan ekstensi menunjukkan bahwa terkadang jenis ekstensi baru adalah yang terbaik
diatasi dengan peningkatan API agar penerapannya lancar, atau dengan memperbaiki bug yang
tidak terlihat sebelum ekstensi menekankan API dengan cara yang benar. maksud Anda
ekstensi mungkin saja yang memerlukan pendekatan seperti itu.
Jangan ragu untuk membuka isu jika Anda tidak dapat menemukan jawabannya
Kesimpulannya adalah: jika Anda ingin mengimplementasikan ekstensi atau fitur, jangan ragu untuk melakukannya
buka sebuah terbitan dan saya akan memberi Anda petunjuk tentang cara terbaik untuk menyelesaikannya. Ini mungkin menghemat banyak
waktu dengan mengizinkan saya meningkatkan API untuk memenuhi kebutuhan ekstensi Anda sebelum Anda memasukkan lebih banyak
usaha sia-sia ke dalamnya.
Saya meminta Anda menyadari bahwa saya adalah kepala juru masak dan pencuci botol dalam proyek ini, tanpa seorang pun
sedikit pun keterampilan Vulcan Mind Melding. Saya meminta Anda menjelaskan apa yang ingin Anda terapkan
karena aku tidak bisa membaca pikiranmu. Harap lakukan pengintaian latar belakang di sekitar sumbernya
kode dan dokumentasi karena saya tidak dapat mentransfer apa yang saya ketahui kepada Anda, tanpa persetujuan Anda
upaya.
Konsultasi tersedia
Jika Anda memiliki aplikasi komersial dan tidak ingin menulis ekstensi sendiri atau menginginkannya
untuk mengurangi waktu dan tenaga dalam mengimplementasikan ekstensi dan mengintegrasikan flexmark-java, rasakan
bebas untuk menghubungi saya. Saya tersedia berdasarkan konsultasi/kontrak.
Emulasi Prosesor Penurunan Harga
Terlepas dari namanya, commonmark bukanlah superset atau subset dari varian penurunan harga lainnya.
Sebaliknya, ia mengusulkan spesifikasi sintaksis standar dan tidak ambigu untuk "inti" aslinya.
Penurunan harga, sehingga secara efektif memperkenalkan rasa lain. Sedangkan flexmark secara default
Sesuai dengan commonmark, parsernya dapat diubah dengan berbagai cara. Serangkaian penyesuaian yang diperlukan untuk
meniru parser penurunan harga yang paling umum digunakan tersedia di flexmark sebagai
Profil ParserEmulation.
Sesuai dengan namanya ParserEmulationProfile, hanya parser saja yang disesuaikan dengan
rasa penurunan harga tertentu. Menerapkan profil tidak menambahkan fitur di luar yang tersedia di
tanda umum. Jika Anda ingin menggunakan flexmark untuk sepenuhnya meniru perilaku prosesor penurunan harga lainnya,
Anda harus menyesuaikan parser dan mengonfigurasi ekstensi flexmark yang menyediakan tambahan
fitur yang tersedia di parser yang ingin Anda tiru.
Penulisan ulang pengurai daftar untuk mengontrol emulasi prosesor penurunan harga lainnya dengan lebih baik
Emulasi Prosesor Penurunan Harga selesai. Penambahan
preset prosesor untuk meniru perilaku pemrosesan penurunan harga tertentu dari parser ini ada di a
daftar tugas yang singkat.
Beberapa keluarga emulasi melakukan pekerjaan yang lebih baik dalam meniru target mereka dibandingkan yang lain. Sebagian besar
upaya ini diarahkan untuk meniru cara prosesor ini mengurai penurunan harga dan daftar standar
penguraian terkait secara khusus. Untuk prosesor yang memperluas Markdown asli, Anda perlu menambahkan
ekstensi yang sudah diterapkan di flexmark-java ke pembuat Parser/Renderer
pilihan.
Ekstensi akan dimodifikasi untuk menyertakan presetnya sendiri untuk emulasi prosesor tertentu, jika
prosesor tersebut memiliki ekstensi setara yang diterapkan.
Jika Anda menemukan ketidaksesuaian, silakan buka masalahnya agar dapat diatasi.
Keluarga prosesor utama diimplementasikan dan beberapa anggota keluarga juga:
profil untuk merangkum detail konfigurasi untuk varian dalam
keluarga ditambahkan di 0.11.0:
Sejarah dan Motivasi
flexmark-java adalah cabang dari proyek commonmark-java, dimodifikasi untuk menghasilkan AST yang
mencerminkan semua elemen dalam sumber asli, pelacakan posisi sumber lengkap untuk semua elemen
dalam AST dan generasi JetBrains Open API PsiTree yang lebih mudah.
API diubah untuk memungkinkan kontrol proses parsing yang lebih terperinci dan dioptimalkan
penguraian dengan sejumlah besar ekstensi terpasang. Parser dan ekstensi hadir dengan banyak fitur
opsi penyesuaian untuk perilaku parser dan variasi rendering HTML. Tujuan akhirnya adalah untuk memiliki
parser dan renderer dapat meniru parser lain dengan tingkat akurasi yang tinggi.
Motivasi untuk ini adalah kebutuhan untuk mengganti parser pegdown di plugin Markdown Navigator.
pegdown memiliki serangkaian fitur hebat tetapi kecepatannya secara umum kurang dari ideal
masukan patologis hang atau praktis hang selama penguraian.
commonmark-java memiliki arsitektur parsing luar biasa yang mudah dipahami dan diperluas.
Tujuannya adalah untuk memastikan bahwa penambahan pelacakan posisi sumber di AST tidak akan mengubah kemudahan
penguraian dan menghasilkan AST lebih dari yang diperlukan.
Alasan memilih commonmark-java sebagai parser adalah: kecepatan, kemudahan pemahaman, kemudahan
perluasan dan kecepatan. Sekarang saya telah mengerjakan ulang inti dan menambahkan beberapa ekstensi, saya sangat senang
puas dengan pilihanku.
Tujuan lainnya adalah untuk meningkatkan kemampuan ekstensi untuk mengubah perilaku parser sehingga apa pun
dialek penurunan harga dapat dilaksanakan melalui mekanisme penyuluhan. Opsi yang dapat diperluas
API ditambahkan untuk memungkinkan pengaturan semua opsi di satu tempat. Parser, penyaji, dan penggunaan ekstensi
opsi konfigurasi ini, termasuk menonaktifkan beberapa parser blok inti.
Ini sedang dalam proses dengan banyak perubahan API. Tidak ada upaya yang dilakukan untuk mempertahankan API terbelakang
kompatibilitas dengan proyek asli dan hingga rangkaian fitur sebagian besar selesai, bahkan tidak sampai
versi sebelumnya dari proyek ini.
Perbandingan Fitur
(1)
input patologis flexmark-java 100.000 [ diurai dalam 68 md, 100.000 ] dalam 57 md, 100.000
bersarang [ ] parsing dalam 55ms
(2)
input patologis commonmark-java 100.000 [ diurai dalam 30 md, 100.000 ] dalam 30 md, 100.000
bersarang [ ] parsing dalam 43ms
(3)
pegdown input patologis 17 [ diurai dalam 650 md, 18 [ dalam 1300 md
Kemajuan
Saya sangat senang dengan keputusan untuk beralih ke parser berbasis commonmark-java untuk saya sendiri
proyek. Padahal saya harus melakukan operasi besar pada bagian dalamnya untuk mendapatkan posisi sumber penuh
pelacakan dan AST yang cocok dengan elemen sumber, sangat menyenangkan untuk digunakan dan sekarang menjadi a
senang untuk memperluas. Jika Anda tidak memerlukan elemen tingkat sumber AST atau yang lainnya adalah flexmark-java
ditambahkan dan CommonMark adalah parser penurunan harga target Anda, maka saya mendorong Anda untuk menggunakannya
commonmark-java karena ini adalah pilihan yang sangat baik untuk kebutuhan Anda dan kinerjanya tidak
menderita karena kelebihan fitur yang tidak akan Anda gunakan.
Tolok ukur
Terbaru, 28 Jan 2017 flexmark-java 0.13.1, intellij-markdown dari CE EAP 2017, commonmark-java
0.8.0:
Rasio di atas:
Karena kedua file ini mewakili masukan patologis untuk pegdown, saya tidak lagi menjalankannya sebagai
bagian dari tolok ukur untuk mencegah hasil yang menyimpang. Hasilnya ada di sini untuk anak cucu.
Rasio di atas:
Berkontribusi
Tarik permintaan, masalah dan komentar diterima?. Untuk permintaan tarik:
Lisensi
Hak Cipta (c) 2015-2016 Atlassian dan lainnya.
Hak Cipta (c) 2016-2023, Vladimir Schneider,
Berlisensi BSD (2-klausul), lihat file LICENSE.txt.
contoh:
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}