Well, I couldn't see the images posted by GreenTrafficLight earlier. But from that screenshot where AMR interpretated the data as "char", you can clearly see that the square sum (the value on the right of the arrow) of every vector approximately equals to 1.0 within the acceptable error range. That's the most convincing evidence that the data type must be "char", or signed byte.
The error between using the formula
Code: Select all
n1 = vertexBuffer.readByte() / 127;
Code: Select all
n1 = vertexBuffer.readByte() * 2 / 255; // == vertexBuffer.readByte() / (255 / 2) == vertexBuffer.readByte() / 127.5


when you get helped.











