The experimental tangent generator in jme3-core assumes that all meshes are composed of triangles. If you feed it a mesh whose mode is Mesh.Mode.Points or Mesh.Mode.Lines, it will usually crash with a BufferUnderflowException:
java.nio.BufferUnderflowException
at java.base/java.nio.Buffer.nextGetIndex(Buffer.java:699)
at java.base/java.nio.DirectFloatBufferU.get(DirectFloatBufferU.java:324)
at com.jme3.util.mikktspace.MikkTSpaceImpl.getPosition(MikkTSpaceImpl.java:77)
at com.jme3.util.mikktspace.MikktspaceTangentGenerator.getPosition(MikktspaceTangentGenerator.java:719)
at com.jme3.util.mikktspace.MikktspaceTangentGenerator.generateSharedVerticesIndexList(MikktspaceTangentGenerator.java:286)
at com.jme3.util.mikktspace.MikktspaceTangentGenerator.genTangSpace(MikktspaceTangentGenerator.java:164)
at com.jme3.util.mikktspace.MikktspaceTangentGenerator.genTangSpaceDefault(MikktspaceTangentGenerator.java:126)
at com.jme3.util.mikktspace.MikktspaceTangentGenerator.generate(MikktspaceTangentGenerator.java:118)
A mesh composed entirely of lines or points doesn't need tangents. Since MikktspaceTangentGenerator processes models containing multiple geometries, it should quietly skip any geometries without triangles.
The experimental tangent generator in jme3-core assumes that all meshes are composed of triangles. If you feed it a mesh whose mode is
Mesh.Mode.PointsorMesh.Mode.Lines, it will usually crash with aBufferUnderflowException:A mesh composed entirely of lines or points doesn't need tangents. Since
MikktspaceTangentGeneratorprocesses models containing multiple geometries, it should quietly skip any geometries without triangles.