Three.js: Tambahkan dukungan peta bayangan untuk RectAreaLights (brainstorming, R&D)

Dibuat pada 28 Mei 2018  ·  37Komentar  ·  Sumber: mrdoob/three.js

Deskripsi masalah

Akan sangat berguna bagi realisme untuk mendukung bayangan pada RectAreaLights.

Saya tidak yakin teknik terbaik untuk digunakan di sini karena saya belum menelitinya di luar beberapa pencarian cepat Google. Saya belum yakin praktik terbaik apa yang diterima di industri ini?

Dua teknik sederhana yang dapat saya pikirkan:

  • seseorang dapat menempatkan PointLightShadowMap di tengah lampu area persegi dan itu akan berhasil.
  • kurang akurat, seseorang dapat menempatkan SpotLightShadowMap dengan FOV yang cukup tinggi (di atas 120 derajat, tetapi kurang dari 180 derajat karena akan menyebabkannya gagal) di tengah lampu area persegi dan mengarahkannya ke arah cahaya.

(Saya percaya dengan peta bayangan cahaya spot Anda mungkin bisa mendapatkan hasil yang lebih baik untuk lampu area besar jika Anda memindahkan peta bayangan di belakang permukaan cahaya area sehingga bagian depan dekat bidang klip di peta bayangan frustum kira-kira sisi cahaya area saat melewati bidang cahaya area. Saya yakin saya pernah membaca ini di beberapa makalah, tetapi saya dapat mengingat sumbernya.)

Enhancement

Komentar yang paling membantu

NVidia's Percentage Closer Soft Shadows melakukan pekerjaan yang layak untuk mendekati bayangan cahaya area. Saya bermain-main dengan meretas mereka ke adegan TIGA.js di sini: https://gkjohnson.github.io/threejs-sandbox/pcss/index. Ini menggunakan peta bayangan cahaya terarah, saat ini, tetapi spotLight mungkin lebih baik.

Namun, itu bukan solusi yang sempurna -- mereka memiliki beberapa artefak ketika tepi bayangan semakin dekat satu sama lain dan membutuhkan banyak sampel untuk mendapatkan bayangan yang sangat halus.

Semua 37 komentar

/ping @abelnation jika Anda memiliki ide karena Anda adalah ahli Area Light penduduk saat ini. :)

Saya memfaktorkan ulang kode lampu area dan saya juga mengenalnya. Untuk dukungan bayangan, lihat https://eheitzresearch.wordpress.com/705-2/.

Untuk dukungan bayangan, lihat https://eheitzresearch.wordpress.com/705-2/.

Menarik. Saya pikir itu mungkin agak terlalu intensif komputasi untuk WebGL saat ini karena membuat asumsi bahwa ray tracing adalah perangkat keras yang dipercepat. Sayangnya, mungkin bertahun-tahun sebelum itu datang ke WebGL.

Saya berpendapat bahwa sementara dua saran saya (bayangan titik atau titik cahaya) tidak akurat secara fisik dalam hal bayangan lembut, mereka lebih baik daripada tidak ada bayangan dan keduanya sangat cepat (secepat bayangan kami yang lain setidaknya) dan mudah diimplementasikan (karena kodenya sudah ada.)

@bhouston Oh, ya... ada juga https://github.com/mrdoob/three.js/pull/13057.

Jika Anda membaca seluruh diskusi, saya pikir konsensusnya adalah menambahkan dukungan 'cookie' ke SpotLight , yang mungkin memungkinkan bayangan persegi panjang.

NVidia's Percentage Closer Soft Shadows melakukan pekerjaan yang layak untuk mendekati bayangan cahaya area. Saya bermain-main dengan meretas mereka ke adegan TIGA.js di sini: https://gkjohnson.github.io/threejs-sandbox/pcss/index. Ini menggunakan peta bayangan cahaya terarah, saat ini, tetapi spotLight mungkin lebih baik.

Namun, itu bukan solusi yang sempurna -- mereka memiliki beberapa artefak ketika tepi bayangan semakin dekat satu sama lain dan membutuhkan banyak sampel untuk mendapatkan bayangan yang sangat halus.

Tampak hebat! Tapi demo Anda berjalan hanya dengan 6 FPS di iMac saya ^^

Saya mendapatkan 60fps pada GTX 970m.

1 FPS di Pixel saya

Sudah ada implementasi pcss di three.js yang saya dan oreshant
tulis beberapa waktu lalu.

Salam Hormat,
Ben Houston
http://Clara.io Pemodelan dan rendering 3d online

Pada Sabtu, 21 Juli 2018, 23:02 Garrett Johnson [email protected]
menulis:

Persentase NVidia Lebih Dekat Soft Shadows
http://developer.download.nvidia.com/shaderlibrary/docs/shadow_PCSS.pdf
melakukan pekerjaan yang layak untuk mendekati bayangan cahaya area. Aku sedang bermain-main dengan
meretasnya menjadi adegan THREE.js di sini:
https://gkjohnson.github.io/threejs-sandbox/pcss/index.html. Ini menggunakan
peta bayangan cahaya terarah, pada saat ini, tetapi mungkin ada spotlight
lebih baik.

Namun, itu bukan solusi yang sempurna -- mereka memiliki beberapa artefak ketika
tepi bayangan lebih dekat satu sama lain dan membutuhkan banyak sampel untuk mendapatkan
bayangan yang sangat halus.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/14161#issuecomment-406837539 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAj6_RuFJPv7y5DbEfJnDu26DB3cD2bhks5uI-tJgaJpZM4UQODd
.

Sudah ada implementasi pcss di three.js yang saya dan oreshant tulis beberapa waktu lalu.

https://threejs.org/examples/#webgl_shadowmap_pcss

Ini berjalan dengan 60 FPS yang bagus di iMac saya^^.

Sudah ada implementasi pcss di three.js yang saya dan oreshant tulis beberapa waktu lalu.

Saya tidak melihat itu! Itu terlihat bagus. Saya tidak tahu Anda bisa menghasilkan nilai seperti disk poisson dengan cara itu -- sepertinya ini memiliki distribusi yang lebih bagus dan memberikan hasil yang lebih baik daripada yang saya gunakan. Saya dapat meminjamnya jika Anda tidak keberatan!

1 FPS di Pixel saya

Ha! Itu juga tidak berfungsi di ponsel saya. Saya tidak mengoptimalkannya sama sekali dan ada banyak pekerjaan yang terjadi berulang-ulang yang dapat dipindahkan.

Implementasi @bhouston cukup cepat. Mungkin ada beberapa varian ini yang bisa digunakan untuk area bayangan cahaya? Akan lebih baik jika ada dukungan bayangan apa pun untuk lampu area sehingga jenis implementasi ini bisa lebih mudah dipasang.

NVidia's Percentage Closer Soft Shadows melakukan pekerjaan yang layak untuk mendekati bayangan cahaya area. Saya bermain-main dengan meretas mereka ke adegan TIGA.js di sini: https://gkjohnson.github.io/threejs-sandbox/pcss/index. Ini menggunakan peta bayangan cahaya terarah, saat ini, tetapi spotLight mungkin lebih baik.

Namun, itu bukan solusi yang sempurna -- mereka memiliki beberapa artefak ketika tepi bayangan semakin dekat satu sama lain dan membutuhkan banyak sampel untuk mendapatkan bayangan yang sangat halus.

Bagus! Ini tidak sempurna tetapi terlihat lebih baik daripada tidak ada bayangan... Saya mendapatkan 30fps di Asus ROG Phone 2 saya.
Dan 45fps pada laptop grafis terintegrasi saya.

Berikut adalah contoh bayangan raytraced di three.js hanya komponen bayangan yang ditampilkan dalam video ini.

60+fps dengan 1 sampel bayangan per piksel... Dengan beberapa pemfilteran cerdas, hasilnya bisa terlihat cukup bagus.

https://youtu.be/O21mKUtMtSg
https://youtu.be/2Tn93hf9kNw

Ini dapat digunakan untuk membantu dengan bayangan cahaya area persegi.

Demo web langsung sedang dikerjakan.

Terkait

13908 Meningkatkan Bayangan

14048 Bayangan Lembut melalui Pengambilan Sampel Sumber Cahaya

14051 Mengadopsi Pencahayaan Global Fotorealistik Progresif di Three.JS

Sangat bagus!

Masalah terkait: Saya tidak tahu bagaimana menerapkan semacam bayangan dengan kode IBL saat ini.

Katakan bahwa saya ingin menambahkan DirectLight dalam contoh mobil tetapi mengabaikan sumber cahaya yang sebenarnya dan hanya menggunakan peta bayangan untuk mempengaruhi kode IBL.

Saya telah bermain-main dengan beberapa efek jejak sinar.

  • Bayangan - dari sumber cahaya langsung, termasuk lampu persegi
  • Oklusi Ambient
  • Penerangan Global

Dari 3 saya pikir GI per-piksel yang akan bekerja dengan IBL adalah yang paling sulit untuk mencapai frame rate waktu nyata.

Namun, GI per-vertex dan mungkin dimungkinkan pada frame rate yang baik. Kode ray tracing sedang ditulis dengan gagasan bahwa vertex dan fragment shader akan dapat menggunakannya.

@mrdoob , @WestLangley ,
Di ruang apa seragam "pointLights[].position" berada???
Saya melakukan ray-tracing di ruang dunia tetapi bayangannya sepertinya tidak cocok.

Annotation 2019-12-20 073556

Ok, setelah melihat ke dalamnya... Sepertinya ada di model view space... Apakah ada cara yang baik untuk mendapatkan posisi cahaya di world space?

Ubah WebGLRender untuk mengirim di dunia dan melihat ruang?

Oke, saya membuatnya bekerja dengan lampu titik... sekarang untuk menguji lampu area persegi!

image

Apakah ada cara untuk membuat sumber lampu jitter dalam volume emisi dan
menumpuk untuk mendapatkan bayangan lembut dalam sesuatu seperti 32 render itu
Anda hanya menumpuk?

Saya melihat ini sebagai sesuatu yang bekerja dengan baik dengan jitter kamera sub-piksel
yang saya kumpulkan dalam contoh TAA Three.js.

Pada Sabtu, 21 Des 2019 pukul 22:04 Samuel [email protected]
menulis:

Oke, saya membuatnya bekerja dengan lampu titik... sekarang untuk menguji lampu area persegi!

[gambar: gambar]
https://user-images.githubusercontent.com/10963749/71316445-4b18bb00-2435-11ea-94d9-c2f0f4116097.png


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/14161?email_source=notifications&email_token=AAEPV7MQQB4SDPHJAOA5YXTQZ3KLVA5CNFSM4FCA4DO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW2ZLODNORPWZ68JKLODORPWZ68W63comLNMVX68
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAEPV7JKIZ62J3YXCVVYHVDQZ3KLVANCNFSM4FCA4DOQ
.

--

Ben Houston CTO
*M: *+1-613-762-4113
[email protected]
Ottawa, ON

[gambar: threekitlogo1568384278.png] https://www.threekit.com/
Ciptakan pengalaman pelanggan visual yang lebih baik dengan Threekit
https://www.threekit.com/

[gambar: Pelajari cara menskalakan visual produk dengan bisnis Anda yang sedang berkembang]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

Agar jelas, saya pikir cara untuk jitter dalam cahaya lurus adalah dengan memiliki satu
titik cahaya yang Anda bergerak di sepanjang permukaan emisi. Anda membutuhkan yang baik
metode pengambilan sampel seperti Poisson Disk atau semacamnya,
https://www.google.com/search?q=Poisson+Disk. Dan kemudian hasilnya
bayangan harus lembut dan sesuai untuk cahaya persegi.

Meski sempat bingung FOV harus di set pada titik terang,
dan mungkin Anda harus selalu mengarahkannya ke arah normal dari rect
luas permukaan? Detail kecil inilah yang membuat saya tidak benar-benar
ke depan dengan penerapan emisi sampel akumulatif
bayangan berbasis sumber.

Pada Senin, 23 Des 2019 pukul 9.00 Ben Houston [email protected] menulis:

Apakah ada cara untuk membuat sumber lampu jitter dalam volume emisi
dan kumpulkan untuk mendapatkan bayangan lembut dalam sesuatu seperti 32 render
yang baru saja Anda kumpulkan?

Saya melihat ini sebagai sesuatu yang bekerja dengan baik dengan jitter kamera sub-piksel
yang saya kumpulkan dalam contoh TAA Three.js.

Pada Sabtu, 21 Des 2019 pukul 22:04 Samuel Sylvester <
[email protected]> menulis:

Oke, saya membuatnya bekerja dengan lampu titik... sekarang untuk menguji lampu area persegi!

[gambar: gambar]
https://user-images.githubusercontent.com/10963749/71316445-4b18bb00-2435-11ea-94d9-c2f0f4116097.png


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/14161?email_source=notifications&email_token=AAEPV7MQQB4SDPHJAOA5YXTQZ3KLVA5CNFSM4FCA4DO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW2ZLODNORPWZ68JKLODORPWZ68W63comLNMVX68
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAEPV7JKIZ62J3YXCVVYHVDQZ3KLVANCNFSM4FCA4DOQ
.

--

Ben Houston CTO
*M: *+1-613-762-4113
[email protected]
Ottawa, ON

[gambar: threekitlogo1568384278.png] https://www.threekit.com/
Ciptakan pengalaman pelanggan visual yang lebih baik dengan Threekit
https://www.threekit.com/

[gambar: Pelajari cara menskalakan visual produk dengan bisnis Anda yang sedang berkembang]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

--

Ben Houston CTO
*M: *+1-613-762-4113
[email protected]
Ottawa, ON

[gambar: threekitlogo1568384278.png] https://www.threekit.com/
Ciptakan pengalaman pelanggan visual yang lebih baik dengan Threekit
https://www.threekit.com/

[gambar: Pelajari cara menskalakan visual produk dengan bisnis Anda yang sedang berkembang]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

@bhouston Saya pikir https://github.com/mrdoob/three.js/issues/14048 adalah apa yang Anda bicarakan.

Saya menyukai demo dengan sumber pencahayaan simpul bengkok. Saya kira masalah yang saya lihat adalah pantulan sumber cahaya tidak pernah mengarah ke gambar yang benar.

Satu plus untuk bayangan ray-traced adalah bahwa Ini digunakan untuk menangani bayangan transparan. Ini juga dapat digunakan untuk Penerangan Global dan banyak efek pencahayaan lainnya.

@bhouston https://github.com/bhouston Saya pikir #14048
https://github.com/mrdoob/three.js/issues/14048 adalah apa yang Anda bicarakan
tentang.

Maaf, saya cenderung melupakan apa yang saya sarankan sebelumnya, tapi setidaknya saya
konsisten.

Saya menyukai demo dengan sumber pencahayaan simpul bengkok. Saya kira itu
masalah yang saya lihat adalah pantulan dari sumber cahaya tidak pernah
diselesaikan ke gambar yang benar.

Itu karena dia tidak melakukan pengambilan sampel secara acak tetapi pengambilan sampel yang lengkap
metode -- dia juga melakukan sumber cahaya yang jauh lebih sulit daripada hanya
luas persegi panjang. Metodenya akan menjadi akumulatif lambat dengan rasterisasi
rendering atau ray tracing -- metode sampelnya yang salah, bukan
teknik. Anda juga dapat membuat beberapa sampel cahaya per render jika Anda mau
cenderung. Saya pikir 32 hingga 256 render di kelas atas diperlukan,
tergantung pada jenis cahaya dan jumlah sampel cahaya per render. Pada
60 fps adalah ini 1 - 4 detik. Saya menganggapnya sebagai "instan" yang disederhanakan
solusi radiositas.

Anda benar bahwa ray tracing itu luar biasa. Saya hanya berpikir bahwa jittering
lampu lebih mudah daripada mengulang seluruh sistem pencahayaan, dan kemudian Anda juga
punya solusi yang bagus untuk waktu nyata, bayangannya saja sulit dan kemudian menyala
berhenti mereka melunak dengan sempurna, dan algoritme render tidak beralih,
hanya hal-hal jitter dan menumpuk.

Pada Senin, 23 Des 2019 pukul 11:03 Samuel [email protected]
menulis:

@bhouston https://github.com/bhouston Saya pikir #14048
https://github.com/mrdoob/three.js/issues/14048 adalah apa yang Anda bicarakan
tentang.

Saya menyukai demo dengan sumber pencahayaan simpul bengkok. Saya kira itu
masalah yang saya lihat adalah pantulan dari sumber cahaya tidak pernah
diselesaikan ke gambar yang benar.

Satu plus untuk bayangan yang dilacak sinar adalah itu digunakan untuk menangani
bayangan transparan. Itu juga dapat digunakan untuk Penerangan Global dan banyak lagi
efek pencahayaan lainnya.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/14161?email_source=notifications&email_token=AAEPV7L4ZVKQJILFWZQ6JE3Q2DOLPA5CNFSM4FCA4DO2YY3PNVWWK3TUL52HS4DFVREXG43VMW512JKTLNOR4WW512JKTLNOR4WS
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/AAEPV7LXP5CSOMBZF2BMNR3Q2DOLPANCNFSM4FCA4DOQ
.

--

Ben Houston CTO
*M: *+1-613-762-4113
[email protected]
Ottawa, ON

[gambar: threekitlogo1568384278.png] https://www.threekit.com/
Ciptakan pengalaman pelanggan visual yang lebih baik dengan Threekit
https://www.threekit.com/

[gambar: Pelajari cara menskalakan visual produk dengan bisnis Anda yang sedang berkembang]
http://signatures.threekit.com/uc/5d0cfd47860b6864aee40938/c_5da8cc74c90a0e0043fe0323/b_5dade3e4e85fae00caea3d76

@bhouston Saya suka solusi yang diusulkan di #14048... terutama untuk geometri sederhana seperti lampu persegi.
Sepertinya metode itu seharusnya cukup mudah digunakan. Apakah ada garpu tiga yang memiliki solusi ini?

Mengenai ray tracing... Pada perangkat keras kelas desktop, solusi ray tracing bekerja secara real-time pada 1spp. Lihat... https://youtu.be/amX3icmbpzY.

Saya belum menguji ponsel.

Dalam demo yang telah saya kerjakan, istilah pencahayaan dihitung menggunakan kode yang ada tetapi bayangannya dilacak dengan sinar, bukan pemetaan bayangan.

@mrdoob , @bhouston
Jadi, saya memperbarui demo untuk mencerminkan demo rtx Nvidia dari GDC 2018

Dan saya menjalankannya secara real-time di laptop dan ponsel saya...

Demo laptop... https://youtu.be/MKCKXRVks3I
Demo ponsel... https://youtu.be/P-cnT2hYNF4

Saya juga meningkatkan distribusi sampel bayangan untuk meningkatkan realisme bayangan

@mrdoob , @WestLangley , @bhouston dan lainnya

Saya mendapatkan bayangan untuk lampu area persegi yang bekerja dengan raytracing.

Screenshot_20200113-175554647
Demo ditampilkan di sini... https://youtu.be/tZmlb29OUBU
Memiliki lampu titik dan lampu area persegi.

Beberapa perbaikan pada distribusi sampel bayangan sedang dikerjakan. Juga, sepertinya untuk lampu area 2 bayangan perlu dihitung untuk setiap cahaya. Bayangan difus dan bayangan specular.

Saat ini hanya bayangan difus yang dihitung.

Saya berencana untuk membuat situs web langsung dengan demo ini dan juga mendorong perubahan ini ke fork tiga saya segera

Itu terlihat bagus! Apakah itu hanya menggunakan tekstur kedalaman tunggal juga?

Itu terlihat bagus! Apakah itu hanya menggunakan tekstur kedalaman tunggal juga?

@mrdoob terima kasih! Ini sebenarnya ray-tracing yang tepat, saat ini menggunakan 2 tekstur. Satu menyimpan geometri ruang dunia dan yang lainnya memiliki data BVH.

Dengan pengaturan ini, kami dapat menghitung oklusi ambien RTX dan dengan beberapa pembaruan, GI juga dimungkinkan!

Untuk menjalankan demo di browser lihat... https://three-rtx.azurewebsites.net/

Catatan... Ini adalah ray-traced dan saya menemukan bahwa GPU terintegrasi saya hanya dapat menangani satu sumber cahaya dengan bayangan ray-traced dengan frame rate yang layak. Tetapi ketika saya mengaktifkan RTX 2080 saya, saya dapat memiliki 2 sumber cahaya yang dilacak sinar dengan 16spp per cahaya pada dua kali kecepatan bingkai. Itu sedikit kurang dari 64x lebih cepat pada GPU diskrit!

Saya juga mencoba menjalankan ini di ponsel saya dan saya menemukan bahwa Anda akan menginginkan kapal bendera 2019 atau lebih baik untuk 30+ fps pada 1080p.

Saya percaya ada beberapa peningkatan lagi untuk memeras lebih banyak kinerja dan lebih sedikit noise.

Saya berencana untuk mendorong kode yang saya miliki sekarang ke fork saya dan kemudian melanjutkan untuk membuat tweak.

Catatan : Saya memiliki satu tweak yang meningkatkan perf lebih dari 50% rata-rata fps... ini bekerja pada shader kompilasi pertama tetapi jika kompilasi kedua dipicu maka hal-hal lucu mulai terjadi... Sepertinya ini terkait dengan penggunaan saya pra-prosesor

@sam-g-baja
Ini bagus! Apakah Anda memiliki rencana untuk membuka sumber pekerjaan di beberapa titik? Seberapa baik skalanya -- apakah Anda telah melakukan pengujian dengan karakter atau model produk yang lebih kompleks? Dan saya membayangkan raytracing di sini hanya berfungsi dengan adegan statis, bukan?

Satu plus untuk bayangan ray-traced adalah bahwa Ini digunakan untuk menangani bayangan transparan. Ini juga dapat digunakan untuk Penerangan Global dan banyak efek pencahayaan lainnya.

Ini memang tampak seperti nilai tambah untuk teknik ini. Saya pikir Anda bisa mendapatkan hasil yang cukup bagus dengan pendekatan jitter dari #14048.

@bhouston

itu adalah metode sampel yang salah, bukan tekniknya.

Saya pikir menggunakan sesuatu seperti pembantu MeshSurfaceSampler bersama dengan beberapa lampu akan membuat hasilnya sedikit lebih bagus.

@gkjohnson

Ini bagus! Apakah Anda memiliki rencana untuk membuka sumber pekerjaan di beberapa titik?

Terima kasih!!! Ya, saya berencana untuk menerbitkan kode segera! Saya senang melihatnya dimasukkan ke dalam three.js!
Saat ini demo terdiri dari 2 bagian utama. Sebuah build khusus dari tiga yang mengirimkan info pencahayaan dalam tampilan model & ruang dunia yang saya harap akan diterbitkan dalam beberapa hari ke depan & "plugin" three.js yang membangun BVH dan telah menghasilkan shader yang melakukan ray tracing.

Seberapa baik skalanya -- apakah Anda telah melakukan pengujian dengan karakter atau model produk yang lebih kompleks?

Saya telah melakukan beberapa pengujian untuk melihat bagaimana hal itu terjadi dengan adegan yang kompleks... Hasil yang saya dapatkan cukup menjanjikan. Saya sedang berupaya memperbarui situs web https://three-rtx.azurewebsites.net/ dengan lebih banyak demo segera. Saya tidak ingin membuat klaim dengan demo untuk mendukungnya.

Dan saya membayangkan raytracing di sini hanya berfungsi dengan adegan statis, bukan?

Sebenarnya, adegan dinamis didukung ! Saya berencana untuk mendemonstrasikan itu segera juga! saat ini build bvh awal membutuhkan waktu 300 ms dan build berikutnya membutuhkan ~ 10 md pada CPU single threaded. Satu hal yang perlu diperhatikan adalah bahwa kode bvh dapat dioptimalkan lebih lanjut.

Semoga akhir pekan ini sakit dapat mempublikasikan kode. Ini memakan waktu lebih lama dari yang saya harapkan sebagian karena saya dan istri saya baru saja menyambut anak ketiga kami ke dunia :)

@mrdoob , @gkjohnson
Saya sudah mulai menerbitkan kode ray-tracing... Dapat ditemukan di sini... https://github.com/sam-g-steel/three.js/tree/RTX

Tidak semua kode telah di-commit... Saya mencoba untuk membersihkannya sedikit. Mudah-mudahan saya akan memiliki semua kode segera.

Saya masih mengerjakan ini...
Saya menemukan beberapa kesalahan dalam kode, jadi saya sedang mengerjakan lebih banyak kasus uji untuk membantu mencari tahu apa yang salah.

Salah satu demo baru dapat dilihat di sini...
Screenshot_20200205-125510305_1
https://youtu.be/ZvoSuBi4rFE
@gkjohnson , Demo ini memiliki objek dinamis di layar dan membantu menguji kinerja pembangunan kembali BVH penuh.

Saya berharap untuk melakukan sisanya atau shader "RTX"... Malam ini dan kode BVH segera

Catatan: saat ini segitiga adalah satu-satunya primitif yang didukung

pembaruan 2/8/2020
Situs web telah diperbarui untuk memiliki demo baru...
Pembuatan Dynamic BVH sekarang 40% lebih cepat daripada 4 hari yang lalu... lebih banyak pengoptimalan yang akan datang.
https://github.com/sam-g-steel/three.js/tree/RTX telah diperbarui dengan lebih banyak kode.

Lebih banyak pembaruan akan datang!!!

Masih mengerjakan fork ray-tracing... Saya berharap dapat menampilkan lebih banyak dalam beberapa minggu.
Saya telah mengerjakan pemfilteran derau untuk meningkatkan kecepatan bingkai dan kualitas gambar.

Di bawah ini adalah beberapa gambar dari filter kebisingan...
Ini masih dalam proses.

Pembaruan 28/3/2020
3-28-2020

Apakah halaman ini membantu?
0 / 5 - 0 peringkat