es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Three.js congela completamente Chrome, textura enorme en modelo GLTF.

Quiero cargar un objeto glTF binario ridículo con solo unos pocos polígonos (~250) y una enorme textura de tamaño 10,000 x 5,500 píxeles. El archivo tiene un tamaño de “solo” 20MB.

Cuando lo cargo utilizando Three.js, Chrome se cuelga por completo durante casi 15 segundos. Al mirar en el perfilador, prácticamente no ocurre nada durante el tiempo de congelación.

Si quieres cargar el archivo tú mismo, puedes descargarlo en https://phychi.com/uni/threejs/models/freezing-monster.glb, y toda la escena se puede visitar en https://phychi.com/uni/threejs/ (hasta que encuentre una solución o me rinda).

El comportamiento es el mismo, ya sea que llame a GLTFLoader.load(), GLTFLoader.loadAsync(), o cree mi propia Promise y llame a .then(addToScene), sin ningún await.

¿Alguien tiene una solución mágica? ¿O si no, cómo podría perfilarlo de manera más eficiente, viendo las llamadas internas? ¿O debería simplemente abrir un informe de error para Chrome/Three.js?

PD: Windows 10 Personal, Ryzen 5 2600, 32 GB de RAM, RX 580 8GB.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Cargando un objeto glTF grande con Three.js y google-chrome

    • El tamaño del archivo del objeto es de 20MB, lo cual no es muy grande, pero tiene una textura enorme de tamaño 10,000 x 5,500 píxeles.
    • Cuando se carga utilizando Three.js, Chrome se cuelga durante casi 15 segundos y parece que no está sucediendo nada durante este tiempo.
    • El comportamiento es el mismo tanto si se utiliza GLTFLoader.load(), GLTFLoader.loadAsync() o si se crea una Promesa y se llama a .then(addToScene) sin ningún await.
    • La configuración del sistema es Windows 10 Personal, Ryzen 5 2600, 32 GB de RAM, RX 580 8GB.
    • Se proporciona un enlace al archivo en https://phychi.com/uni/threejs/models/freezing-monster.glb, y la escena se puede visitar en https://phychi.com/uni/threejs/.
    • La pregunta es si hay alguna solución a este problema o si se debe abrir un informe de error para Chrome/Three.js.
    • Se sugiere intentar perfilar el proceso de carga de manera más eficiente observando las llamadas internas.
    • Cualquier solución mágica a este problema es bienvenida.

Comments are closed.