Three.js: Comprobación de encabezado mágico RGBELoader

Creado en 5 dic. 2020  ·  3Comentarios  ·  Fuente: mrdoob/three.js

Describe el error

RGBELoader busca un token mágico al comienzo del archivo:
https://github.com/mrdoob/three.js/blob/1e161eaeedee694861ec480f04b632443f64dbb4/examples/jsm/loaders/RGBELoader.js#L149 -L154

Tengo un archivo que tiene dicho encabezado:
image
Sin embargo, Loader no reconoce la ficha mágica.

Esto es lo que son los contenidos de line cuando se imprimen en la consola:
image

Ahora, la parte curiosa aquí es si intenta copiar eso y verificar la coincidencia nuevamente:
image
Todo se ve bien, sin embargo, si lo prueba en el line directamente, verá esto:
image

El problema es que hay un 
 al final (retorno de carro):
image
image

Un poco más:
image
Parece que tanto 13 como 10 se interpretan como NEW_LINE char por la función de ingestión fget

Reproducir

  • no puedo compartir el archivo en este momento

Código


Ejemplo vivo

  • no puedo compartir el archivo en este momento

Comportamiento esperado

No estoy seguro, creo que esto debería tratarse como un encabezado válido. Este problema no ocurrió al usar r107, por lo que parece un error de regresión. Pero quizás alguien más familiarizado con la especificación RGBE pueda aclararlo.

Capturas de pantalla

véase más arriba

Plataforma:

  • Dispositivo: [escritorio]
  • SO: [Windows]
  • Navegador: [Chrome]
  • Versión de Three.js: [r ??? - sí, 123]
Bug Loaders

Comentario más útil

No puedo encontrar nada en línea que indique que los bytes que vienen después de #?RADIANCE deben estar restringidos. Esta referencia en la especificación parece indicar que es suficiente que los primeros bytes sean #?RADIANCE y que no es necesario seguir una nueva línea.

Cambiando magic_token_re de esto

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

a esto

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

parece una solución.

Todos 3 comentarios

No puedo encontrar nada en línea que indique que los bytes que vienen después de #?RADIANCE deben estar restringidos. Esta referencia en la especificación parece indicar que es suficiente que los primeros bytes sean #?RADIANCE y que no es necesario seguir una nueva línea.

Cambiando magic_token_re de esto

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

a esto

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

parece una solución.

@Usnul, ¿te importaría probar esa solución?

Si, esto funciona.

¿Fue útil esta página
0 / 5 - 0 calificaciones