Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

457
Vistas
ERROR GL: GL_INVALID_OPERATION: glDrawArrays: intento de acceder a vértices fuera de rango en el atributo 1, tres.js

Esto me ha vencido desde hace un tiempo. Estoy creando un juego y el mapa principal es un modelo que usa el formato obj. Lo cargo así:

 var objLoader = new THREE.OBJLoader(); objLoader.setPath('Assets/'); objLoader.load('prison.obj', function(prison){ prison.rotation.x = Math.PI / 2; prison.position.z += 0.1; prison.scale.set(15, 15, 15) scene.add(prison); });

Entonces cuando estaba cargando el mismo modelo, pero más pequeño, funcionó normalmente. Pero, ahora he añadido más al modelo, y es mucho más grande. WebGL comienza a darme esta advertencia: [.WebGL-0x7fb8de02fe00]GL ERROR: GL_INVALID_OPERATION: glDrawArrays: intento de acceder a vértices fuera de rango en el atributo 1. Esta advertencia ocurre 256 veces antes de que WebGL diga WebGL: demasiados errores, no habrá más errores informado a la consola para este contexto.

Advertencias en la consola

Y con esta advertencia, mi modelo no se carga por completo. En Vista previa, veo el modelo así, como se esperaba :

modelo correcto

Pero en Three.js, veo algo diferente:

Modelo incorrecto en Three.js

Bueno, no estoy exactamente seguro de qué está mal aquí:

  1. Tal vez porque estoy usando OBJLoader CDN
  2. Tal vez el tamaño de mi modelo es demasiado grande
  3. Tal vez no tengo idea de lo que estoy haciendo

Cualquier ayuda es apreciada, gracias. Avísame si necesitas más detalles.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Este error le indica que el recuento de atributos de su geometría no coincide. Por ejemplo, su geometría podría tener:

  • 100 posiciones de vértice
  • 99 vértices normales
  • UV de 99 vértices

... O algo por el estilo. Al buscar información sobre ese vértice número 100, dice "attempt to access out-of-range vertices"

Lo ideal sería volver a exportar el activo OBJ para no tener que encontrar manualmente la geometría que está causando el problema. Sin embargo, en caso de que no pueda obtener un nuevo OBJ, puede:

  • evitar que la geometría del problema se represente con mesh.visibility = false
  • Corrija el recuento de atributos de geometría. Para arreglarlo, tendrás que encontrar qué atributo es corto:
 // We assume you already found the mesh with the problem. const problemGeometry = mesh.geometry; // Now we dig through the console to see each attribute. // Look up each attribute.count property to see which one is short. console.log(problemGeometry.attributes); // Then you'll have to set the draw range to the lowest of these counts // Here I assume the lowest is 99 problemGeometry.setDrawRange(0, 99);

No olvide mirar también el atributo geometry.index , si su geometría lo tiene. Eso debería arreglar su geometría para renderizar con el menor número común de atributos. Consulte aquí para obtener información sobre setDrawRange

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda