Three.js: Vérification de l'en-tête magique RGBELoader

Créé le 5 déc. 2020  ·  3Commentaires  ·  Source: mrdoob/three.js

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:
image
Cependant, Loader ne reconnaît pas le jeton magique.

Voici ce que le contenu de line est imprimé sur la console:
image

Maintenant, la partie curieuse est de savoir si vous essayez de copier cela et de vérifier à nouveau la correspondance:
image
Tout semble bon, cependant, si vous l'essayez directement sur le line , vous verrez ceci:
image

Le problème est qu'il y a un 
 à la fin (retour chariot):
image
image

Un peu plus:
image
Il semble que 13 et 10 soient interprétés comme NEW_LINE char par la fonction d'ingestion fget

Reproduire

  • impossible de partager le fichier pour le moment

Code


Exemple en direct

  • impossible de partager le fichier pour le moment

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:

  • Appareil: [Bureau]
  • OS: [Windows]
  • Navigateur: [Chrome]
  • Version Three.js: [r ??? - oui, 123]
Bug Loaders

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 ceci

magic_token_re = /^#\?(\S+)$/

pour ça

magic_token_re = /^#\?(\S+)/

semble être une solution.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes