Three.js: RGBELoader Magic Header Check

Erstellt am 5. Dez. 2020  ·  3Kommentare  ·  Quelle: mrdoob/three.js

Beschreibe den Fehler

RGBELoader sucht am Anfang der Datei nach magischen Token:
https://github.com/mrdoob/three.js/blob/1e161eaeedee694861ec480f04b632443f64dbb4/examples/jsm/loaders/RGBELoader.js#L149 -L154

Ich habe eine Datei mit dem genannten Header:
image
Loader erkennt den magischen Token jedoch nicht.

Folgendes ist der Inhalt von line wenn er auf der Konsole gedruckt wird:
image

Der merkwürdige Teil hier ist, wenn Sie versuchen, das zu kopieren und die Übereinstimmung erneut zu überprüfen:
image
Alles sieht gut aus, aber wenn Sie es direkt auf dem line versuchen, werden Sie Folgendes sehen:
image

Das Problem ist, dass am Ende ein 
 steht (Wagenrücklauf):
image
image

Ein bisschen extra:
image
Es sieht so aus, als würden sowohl 13 als auch 10 von der Aufnahmefunktion fget als NEW_LINE-Zeichen interpretiert

Fortpflanzen

  • Die Datei kann derzeit nicht freigegeben werden

Code


Live-Beispiel

  • Die Datei kann derzeit nicht freigegeben werden

Erwartetes Verhalten

Ich bin mir nicht sicher, ich glaube, dies sollte als gültiger Header behandelt werden. Dieses Problem trat bei Verwendung von r107 nicht auf, sodass es wie ein Regressionsfehler aussieht. Aber vielleicht kann jemand, der mit der RGBE-Spezifikation besser vertraut ist, dies klären.

Screenshots

siehe oben

Plattform:

  • Gerät: [Desktop]
  • Betriebssystem: [Windows]
  • Browser: [Chrome]
  • Three.js Version: [r ??? - ja, 123]
Bug Loaders

Hilfreichster Kommentar

Ich kann online nichts finden, das besagt, dass die Bytes, die nach #?RADIANCE kommen, eingeschränkt werden sollten. Dieser Verweis auf die Spezifikation scheint darauf hinzudeuten, dass es für die ersten Bytes ausreicht, #?RADIANCE und dass eine neue Zeile nicht folgen muss.

Ändern von magic_token_re

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

dazu

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

scheint wie eine Lösung.

Alle 3 Kommentare

Ich kann online nichts finden, das besagt, dass die Bytes, die nach #?RADIANCE kommen, eingeschränkt werden sollten. Dieser Verweis auf die Spezifikation scheint darauf hinzudeuten, dass es für die ersten Bytes ausreicht, #?RADIANCE und dass eine neue Zeile nicht folgen muss.

Ändern von magic_token_re

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

dazu

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

scheint wie eine Lösung.

@ Usnul macht es Ihnen etwas aus, dieses

Ja, das funktioniert.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen