Jelaskan bugnya
RGBELoader memeriksa token ajaib di awal file:
https://github.com/mrdoob/three.js/blob/1e161eaeedee694861ec480f04b632443f64dbb4/examples/jsm/loaders/RGBELoader.js#L149 -L154
Saya memiliki file yang memiliki header tersebut:
Loader tidak mengenali token ajaib itu.
Inilah yang line
konten ketika dicetak ke konsol:
Sekarang bagian yang menarik di sini adalah jika Anda mencoba menyalinnya dan memeriksa kecocokannya lagi:
Semua terlihat bagus, namun, jika Anda mencobanya langsung di line
, Anda akan melihat ini:
Masalahnya adalah ada
di akhir (pengembalian kereta):
Sedikit ekstra:
Sepertinya 13 dan 10 ditafsirkan sebagai karakter NEW_LINE oleh fungsi penyerapan fget
Untuk Mereproduksi
Kode
Contoh hidup
Perilaku yang diharapkan
Saya tidak yakin, saya yakin ini harus diperlakukan sebagai tajuk yang valid. Masalah ini tidak terjadi saat menggunakan r107, jadi sepertinya bug regresi. Tetapi mungkin seseorang yang lebih akrab dengan spesifikasi RGBE dapat menjelaskan.
Screenshot
Lihat di atas
Peron:
Saya tidak dapat menemukan apa pun di internet yang menyatakan byte yang muncul setelah #?RADIANCE
harus dibatasi. Referensi pada spesifikasi ini tampaknya menunjukkan bahwa itu cukup untuk byte pertama menjadi #?RADIANCE
dan baris baru tidak perlu mengikuti.
Mengubah magic_token_re
dari ini
magic_token_re = /^#\?(\S+)$/
untuk ini
magic_token_re = /^#\?(\S+)/
sepertinya perbaikan.
@Usnul apakah Anda keberatan menguji perbaikan itu?
Ya, ini berhasil.
Komentar yang paling membantu
Saya tidak dapat menemukan apa pun di internet yang menyatakan byte yang muncul setelah
#?RADIANCE
harus dibatasi. Referensi pada spesifikasi ini tampaknya menunjukkan bahwa itu cukup untuk byte pertama menjadi#?RADIANCE
dan baris baru tidak perlu mengikuti.Mengubah
magic_token_re
dari iniuntuk ini
sepertinya perbaikan.