Опишите ошибку
RGBELoader проверяет наличие магического токена в начале файла:
https://github.com/mrdoob/three.js/blob/1e161eaeedee694861ec480f04b632443f64dbb4/examples/jsm/loaders/RGBELoader.js#L149 -L154
У меня есть файл с указанным заголовком:
Однако загрузчик не распознает магический жетон.
Вот что такое содержимое line
при выводе на консоль:
Теперь любопытно, если вы попытаетесь скопировать это и снова проверить соответствие:
Все выглядит хорошо, однако, если вы попробуете это напрямую на line
, вы увидите следующее:
Проблема в том, что в конце стоит
(возврат каретки):
Немного дополнительно:
Похоже, что и 13, и 10 интерпретируются функцией приема fget
как NEW_LINE char.
Воспроизводить
Код
Живой пример
Ожидаемое поведение
Я не уверен, я считаю, что это следует рассматривать как действительный заголовок. Эта проблема не возникала при использовании r107, поэтому это похоже на ошибку регрессии. Но, возможно, кто-то, более знакомый со спецификацией RGBE, сможет уточнить.
Скриншоты
см. выше
Платформа:
Я не могу найти в Интернете ничего, что заявляет, что байты, следующие после #?RADIANCE
должны быть ограничены. Эта ссылка на спецификацию, кажется, указывает, что достаточно, чтобы первые байты были #?RADIANCE
и что новая строка не обязательна.
Замена magic_token_re
с этого
magic_token_re = /^#\?(\S+)$/
к этому
magic_token_re = /^#\?(\S+)/
похоже на исправление.
@ Уснул , ты не против протестировать это исправление?
Да, это работает.
Самый полезный комментарий
Я не могу найти в Интернете ничего, что заявляет, что байты, следующие после
#?RADIANCE
должны быть ограничены. Эта ссылка на спецификацию, кажется, указывает, что достаточно, чтобы первые байты были#?RADIANCE
и что новая строка не обязательна.Замена
magic_token_re
с этогок этому
похоже на исправление.