Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

453
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!