Как загрузить двоичную модель данных .glb (gltf) в AndroidStudio (OpenGLES20) - PullRequest
2 голосов
/ 15 января 2020

Я пытаюсь загрузить модель из .glb файла (Blender)

, выполняя следующее:

        private FloatBuffer bufferXYZ;
        ByteBuffer glb_bb;
    ...
        byte[] bytes = new byte[vertexXYZ_BufferLen];
        glb_bb.get(bytes, 0, bytes.length);
        ByteBuffer buffer = ByteBuffer.allocateDirect(bytes.length).order(ByteOrder.nativeOrder());
        buffer.position(0);
        buffer.put(bytes);
        bufferXYZ = buffer.asFloatBuffer();
        buffer.rewind(); 
        bufferXYZ = ((ByteBuffer) buffer.rewind()).asFloatBuffer();

, но не могу получить правильные координаты в bufferXYZ

и что-то похожее на координаты может быть получено только путем сортировки ByteOrder.BIG_ENDIAN (в документации написано LITTLE_ENDIAN)

как правильно загрузить секцию BIN в Floatbuffer для OpenGLES20

1 Ответ

1 голос
/ 16 января 2020

Спасибо, понял. необходимо было сместить начальную точку чтения даже после слова BIN.

...