glTF 2.0 Validation error: ACCESSOR_VECTOR3_NON_UNIT

Hello,

I’m getting an error from a .glb file that was exported from Blender using the glTF Validator. I’ve been searching online for the past couple of days, but can’t find any information describing what this error is all about and how I might resolve it. I’m fairly new to 3D modeling so any help to point me in the right direction would be greatly appreciated. Here is a snippet from the validation report:

{
  "code": "ACCESSOR_VECTOR3_NON_UNIT",
  "message": "Vector3 at accessor indices 4830..4832 is not of unit length: 0.",
  "severity": 0,
  "pointer": "/meshes/0/primitives/4/attributes/NORMAL"
}

What I need to know is, what is the error referring to, and how can I find the source of the problem inside Blender so that I can correct it?

Hello, I am having the same issue, when I am uploading .gltf file to sandbox. Do you know what it is?

I’m still fairly new to Blender, but what I’ve found is this could be one of two things:

  1. Open the GLB file in VSCode (you’ll need the glTF Tools extension) and find the offending primitive (material) using the glTF Tools extension. Then go back into blender and select the mesh for that material in edit mode and Mesh -> Clean Up -> Degenerate Dissolve (also, optionally, Merge By Distance, Delete Loose)

  2. In the Terminal window you should see the following related warning:
    WARNING: Could not calculate tangents. Please try to triangulate the mesh first. To fix this warning, add a Triangulate modifier to the offending object’s modifier tab and click Apply.

1 Like

The Normal Vector need to be nomalized——to set the length of vector to 1.