Прочитать необработанные данные в файле на Python для Blender - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть файл с данными геометрии.Данные геометрии представляют собой последовательность векторов, которые представляют собой положение, нормали, координаты текстуры и индексы каждого примитива.Эти файлы хранятся в двоичном формате, как это

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...