У меня есть файл с данными геометрии.Данные геометрии представляют собой последовательность векторов, которые представляют собой положение, нормали, координаты текстуры и индексы каждого примитива.Эти файлы хранятся в двоичном формате, как это
32bit unsigned int nbVertices
32bit unsigned int nbIndices
nbVertices * 3 * 32bit float positions
nbVertices * 3 * 32bit float normals
...
nbIndices * unsigned int indices
Я хочу прочитать это в массивах Python, чтобы использовать эту геометрию в Blender.Я мог бы читать элемент за элементом, плавать за плаванием и сохранять это в массиве, но это потребовало бы изменения размера массива в каждой строке.Мои знания Python очень ограничены, но в C ++ (с некоторой помощью Qt) я бы использовал что-то вроде
QDataStream str(&f);
unsigned int nbVertices;
unsigned int nbIndices;
str >> nbVertices;
str >> nbIndices;
QByteArray positionsData = str.read(nbVertices*3*sizeof(float));
QByteArray normalsData = str.read(nbVertices*3*sizeof(float));
...
using Real3 = std::array<float,3>;
Real3 *positions = reinterpret_cast<Real3*>(positionsData.data());
Как я мог бы сделать что-то подобное в Python?