Redner adalah renderer yang dapat dibedakan yang dapat mengambil turunan dari output rendering sehubungan dengan parameter adegan sewenang -wenang, yaitu, Anda dapat mundur dari gambar ke adegan 3D Anda. Salah satu penggunaan utama Redner adalah rendering terbalik (karenanya nama Redner) melalui keturunan gradien. Apa yang membedakan Redner adalah: 1) Ini menghitung gradien rendering yang benar secara stokastik tanpa perkiraan apa pun dengan mempertimbangkan dengan benar diskontinuitas, dan 2) memiliki mode berbasis fisik-yang berarti dapat mensimulasikan foton dan menghasilkan fenomena pencahayaan yang realistis, seperti bayangan dan iluminasi global, dan menangani turunan dari fitur ini dengan benar. Anda juga dapat menggunakan Redner dalam mode rendering yang ditangguhkan cepat untuk naungan lokal: Dalam mode ini masih memiliki estimasi gradien yang benar dan model material yang lebih rumit dibandingkan dengan sebagian besar renderer yang dapat dibedakan di luar sana.
Untuk detail lebih lanjut tentang renderer, apa yang dapat dilakukan, dan teknik yang digunakannya untuk menghitung turunannya, silakan lihat kertas: Monte Carlo Ray yang dapat dibedakan melintasi pengambilan sampel tepi, Tzu-Mao Li, Miika Aittala, Fredo Durand, Jaakko Lehtinen. Sejak pengajuan kami telah sedikit meningkatkan renderer. Secara khusus kami menerapkan backend CUDA dan mempercepat turunan kontinu secara signifikan dengan mengganti diferensiasi otomatis dengan turunan yang diturunkan secara manual. Lihat tesis Tzu-Mao Li untuk lebih detail. Lihat juga bagian "Berita" di bawah ini untuk Changelog.
Dengan Pytorch (versi apa pun> = 1.0) atau TensorFlow (Versi> = 2.0) diinstal di lingkungan Python Anda saat ini. Untuk versi GPU yang dipercepat (Linux dan Windows, Versi CUDA> = 10.0):
pip install redner-gpu
Jika tidak (Windows, Linux dan OS X):
pip install redner
Versi Windows hanya mendukung Pytorch dan bukan TensorFlow saat ini.
Anda juga dapat membangun dari sumber. Lihat wiki untuk instruksi bangunan.
Titik awal yang baik untuk mempelajari cara menggunakan Redner adalah dengan melihat wiki. Dokumetasi API ada di sini. Anda juga dapat melihat direktori tes (Pytorch dan TensorFlow) untuk memiliki beberapa ide.
06/12/2020 - Dukungan Python 3.8.
04/01/2020 - Menambahkan model distorsi kamera.
03/17/2020 - Paket PIP untuk Windows! Saat ini hanya dengan dukungan Pytorch. Dukungan TensorFlow tertunda dengan beberapa masalah kompilasi.
02/27/2020 - Memperbaiki bug dalam turunan BRDF. Ini paling mempengaruhi pemetaan normal. Terima kasih Markus Worchel lagi karena telah melaporkan ini.
02/02/2020 - Memperbaiki bug serius untuk rendering G -Buffer (#93). Terima kasih Markus Worchel telah melaporkan ini.
02/01/2020 - Dukungan Windows awal untuk GPU tersedia berkat Markus Worchel lagi.
01/08/2020 - Secara signifikan meningkatkan penggunaan memori mipmapping. Sekarang Anda dapat menggunakan tekstur besar (katakanlah 4096x4096) relatif aman.
12/15/2019 - Memperbaiki bug terkait GC pada kode rendering pytorch di 0,1,30. Harap perbarui.
12/12/2019 - Dukungan Windows awal (CPU -only) tersedia berkat kontribusi Markus Worchel.
12/09/2019 - Menambahkan banyak tutorial di wiki menggunakan Google Colab. Menambahkan dokumentasi yang dihasilkan Sphinx.
12/09/2019 - Memperbaiki bug di wavefront OBJ Loader. Terima kasih Dejan Azinović telah melaporkan!
12/01/2019 - Rep ulang sistem build dan setup instalasi roda python. Redner sekarang di PYPI (https://pypi.org/project/redner-gpu/ dan https://pypi.org/project/redner/).
11/04/2019 - Menambahkan bidang "Tekstur Generik" dalam materi yang dapat memiliki jumlah saluran yang sewenang -wenang. Ini dapat berguna untuk aplikasi pembelajaran yang mendalam di mana tekstur dihasilkan oleh jaringan, dan output dimasukkan ke jaringan lain untuk pemrosesan lebih lanjut. Lihat test_multichannels.py untuk penggunaan. Terima kasih François Ruty atas saran dan bantuan implementasi.
11/04/2019 - Memperbaiki beberapa bug di OBJ/Mitsuba Loader yang diperkenalkan oleh uv_indices dan normal_indices Change.
10/19/2019 - Menambahkan Dukungan Warna Vertex. Lihat test_vertex_color.py.
10/08/2019 - Menambahkan perhitungan UV otomatis melalui perpustakaan XATLAS. Lihat fungsi compute_uvs dalam bentuk.py dan test_compute_uvs.py.
10/08/2019 - Sedikit mengubah antarmuka kelas bentuk. Urutan konstruktor berbeda dan sekarang mengambil argumen 'UV_indices' dan 'normal_indices' tambahan untuk menangani jahitan dalam pemetaan UV dan pemuatan OBJ. Lihat Pyredner/Shape.py dan Tutorial 2.
09/22/2019 - Kami sekarang menangani ketidakkonsistenan antara normal norma dan normals geometri dengan lebih anggun (bukan hanya mengembalikan nol dalam banyak kasus). Ini membantu dengan model rendering di alam liar, katakanlah, di Shapenet.
09/21/2019 - Memperbaiki bug pembukaan buffer yang serius dalam kode rendering yang ditangguhkan ketika tidak ada saluran output Radiance. Jika hal -hal tidak berhasil untuk Anda, mungkin coba lagi.
08/16/2019 - Menambahkan file Docker untuk instalasi yang lebih mudah. Terima kasih Seyoung Park untuk kontribusinya lagi. Saya juga secara signifikan meningkatkan Panduan Instalasi Wiki.
08/13/2019 - Menambahkan dukungan peta normal. Lihat tes/test_teapot_normal_map.py.
08/10/2019 - Secara signifikan menyederhanakan kode akumulasi turunan (reduksi tersegmentasi -> Atomics). Juga GPU Backward Pass mendapat 20 ~ 30% speedup.
08/07/2019 - Memperbaiki bug tekstur kekasaran.
07/27/2019 - TensorFlow 1.14 Dukungan! Saat ini hanya mendukung eksekusi yang bersemangat. Kami akan mendukung eksekusi grafik setelah TensorFlow 2.0 menjadi stabil. Lihat Tests_TensorFlow untuk contoh (saya sarankan mulai dari test_tensorflow/test_single_triangle.py). File CMake harus secara otomatis mendeteksi TensorFlow di Python dan menginstal file yang sesuai. Tutorial sedang dalam proses. Banyak terima kasih kepada Seyoung Park untuk kontribusinya!
06/25/2019 - Menambahkan kamera ortografis (lihat contoh/two_d_mesh.py).
05/13/2019 - Memperbaiki beberapa bug yang terkait dengan turunan kamera. Jika sesuatu tidak berhasil untuk Anda sebelumnya, mungkin coba lagi.
04/28/2019 - Menambahkan dukungan QMC (lihat tes/test_qmc.py dan dokumentasi di pyredner.serialize_scene ()).
04/01/2019 - Sekarang Dukung Multi -GPU (lihat Pyredner.set_device).
03/31/2019 - Membawa kembali metode pengambilan sampel tepi hierarkis di koran.
02/02/2019 - The Wiki sekarang berisi serangkaian tutorial. Rencananya adalah untuk memperluas contoh lebih lanjut.
Redner tergantung pada beberapa pustaka/sistem, yang semuanya termasuk dalam repositori:
Rencana pengembangan saat ini adalah untuk meningkatkan renderer. Fitur berikut akan ditambahkan dalam waktu dekat (tidak terdaftar dalam urutan tertentu):
@article{Li:2018:DMC,
title = {Differentiable Monte Carlo Ray Tracing through Edge Sampling},
author = {Li, Tzu-Mao and Aittala, Miika and Durand, Fr{'e}do and Lehtinen, Jaakko},
journal = {ACM Trans. Graph. (Proc. SIGGRAPH Asia)},
volume = {37},
number = {6},
pages = {222:1--222:11},
year = {2018}
}
Jika Anda memiliki pertanyaan/laporan komentar/bug, jangan ragu untuk membuka masalah github atau email ke penulis Tzu-Mao Li ([email protected])