Three.js: RGBELoaderマジックヘッダーチェック

作成日 2020年12月05日  ·  3コメント  ·  ソース: mrdoob/three.js

バグを説明する

RGBELoaderは、ファイルの先頭でマジックトークンをチェックします。
https://github.com/mrdoob/three.js/blob/1e161eaeedee694861ec480f04b632443f64dbb4/examples/jsm/loaders/RGBELoader.js#L149 -L154

上記のヘッダーを持つファイルがあります:
image
ただし、ローダーはマジックトークンを認識しません。

コンソールに出力したときのline内容は次のとおりです。
image

ここで興味深いのは、それをコピーしてもう一度一致を確認しようとした場合です。
image
すべて良さそうですが、 line直接試してみると、次のように表示されます。
image

問題は、最後に
があることです(キャリッジリターン):
image
image

少し余分:
image
13と10の両方が取り込み関数fgetによってNEW_LINE文字として解釈されるようです

再現するには

  • 現在、ファイルを共有できません

コード


実例

  • 現在、ファイルを共有できません

予想される行動

よくわかりませんが、これは有効なヘッダーとして扱われるべきだと思います。 この問題はr107の使用時には発生しなかったため、リグレッションバグのように見えます。 しかし、おそらくRGBE仕様に精通している誰かが明確にすることができます。

スクリーンショット

上記を参照

プラットホーム:

  • デバイス:[デスクトップ]
  • OS:[Windows]
  • ブラウザ:[Chrome]
  • Three.jsバージョン:[r ??? -はい、123]
Bug Loaders

最も参考になるコメント

#?RADIANCE後に続くバイトを制限する必要があると述べているものをオンラインで見つけることができません。 仕様に関するこの参照は、最初のバイトが#?RADIANCEで十分であり、改行が続く必要がないことを示しているようです。

これからmagic_token_reを変更する

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

これに

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

修正のようです。

全てのコメント3件

#?RADIANCE後に続くバイトを制限する必要があると述べているものをオンラインで見つけることができません。 仕様に関するこの参照は、最初のバイトが#?RADIANCEで十分であり、改行が続く必要がないことを示しているようです。

これからmagic_token_reを変更する

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

これに

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

修正のようです。

@Usnulその修正をテストしてもよろしいですか?

はい、これは機能します。

このページは役に立ちましたか?
0 / 5 - 0 評価