Décrivez le bogue
RGBELoader vérifie le jeton magique au début du fichier:
https://github.com/mrdoob/three.js/blob/1e161eaeedee694861ec480f04b632443f64dbb4/examples/jsm/loaders/RGBELoader.js#L149 -L154
J'ai un fichier qui a ledit en-tête:
Cependant, Loader ne reconnaît pas le jeton magique.
Voici ce que le contenu de line
est imprimé sur la console:
Maintenant, la partie curieuse est de savoir si vous essayez de copier cela et de vérifier à nouveau la correspondance:
Tout semble bon, cependant, si vous l'essayez directement sur le line
, vous verrez ceci:
Le problème est qu'il y a un
à la fin (retour chariot):
Un peu plus:
Il semble que 13 et 10 soient interprétés comme NEW_LINE char par la fonction d'ingestion fget
Reproduire
Code
Exemple en direct
Comportement prévisible
Je ne suis pas sûr, je pense que cela devrait être traité comme un en-tête valide. Ce problème ne s'est pas produit lors de l'utilisation de r107, il ressemble donc à un bogue de régression. Mais peut-être que quelqu'un de plus familier avec la spécification RGBE peut clarifier.
Captures d'écran
voir au dessus
Plate-forme:
Je ne trouve rien en ligne indiquant que les octets qui viennent après #?RADIANCE
doivent être restreints. Cette référence sur la spécification semble indiquer qu'il suffit que les premiers octets soient #?RADIANCE
et qu'une nouvelle ligne n'a pas besoin de suivre.
Changement de magic_token_re
de ceci
magic_token_re = /^#\?(\S+)$/
pour ça
magic_token_re = /^#\?(\S+)/
semble être une solution.
@Usnul, cela vous dérange-
Oui, cela fonctionne.
Commentaire le plus utile
Je ne trouve rien en ligne indiquant que les octets qui viennent après
#?RADIANCE
doivent être restreints. Cette référence sur la spécification semble indiquer qu'il suffit que les premiers octets soient#?RADIANCE
et qu'une nouvelle ligne n'a pas besoin de suivre.Changement de
magic_token_re
de cecipour ça
semble être une solution.