public static float readAsFloat(LittleEndien stream, VertexBuffer.Format format) throws IOException {
        //We may have packed data so depending on the format, we need to read data differently and unpack it
        // Implementations must use following equations to get corresponding floating-point value f from a normalized integer c and vise-versa:
        // accessor.componentType    int-to-float                float-to-int
        // 5120 (BYTE)               f = max(c / 127.0, -1.0)    c = round(f * 127.0)
        // 5121 (UNSIGNED_BYTE)      f = c / 255.0               c = round(f * 255.0)
        // 5122 (SHORT)              f = max(c / 32767.0, -1.0)  c = round(f * 32767.0)
        // 5123 (UNSIGNED_SHORT)     f = c / 65535.0             c = round(f * 65535.0)
        int c;
        switch (format) {
            case Byte:
                c = stream.readByte();
                return Math.max(c / 127f, -1f);
            case UnsignedByte:
                c = stream.readUnsignedByte();
                return c / 255f;
            case Short:
                c = stream.readShort();
                return Math.max(c / 32767f, -1f);
            case UnsignedShort:
                c = stream.readUnsignedShort();
                return c / 65535f;
            default:
                //we have a regular float
                return stream.readFloat();
        }

    }
Parse a json input stream and returns a {@link JsonObject}
@param stream the stream to parse
@return the JsonObject
jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfUtils.java