Assimp не может загрузить вершины цвета модели PLY

Я использую assimp3.0 на Windows с OpenGL. Я попытался загрузить и отобразить модель слоя с помощью следующих строк:

Assimp::Importer importer;
const aiScene* scene = NULL;
scene = importer.ReadFile('filename', 0);

Я построил буфер вершин с scene->mMeshes[0]->mVertices и цветовой буфер с scene->mMeshes[0]->mColors
Однако, когда я отлаживаю код, только scene->mMeshes[0]->mColors[0] получил цвета, scene->mMeshes[0]->mColors[1] и следующие элементы остаются NULL
Ниже приведен короткий пример, который я написал:

ply
format ascii 1.0
comment VCGLIB generated
element vertex 3
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
property uchar alpha
element face 1
property list uchar int vertex_indices
end_header
0.0 0.0 0.0 219 227 248 255
1.0 0.0 0.0 220 230 212 255
2.0 0.0 2.0 160 122 221 255
3 0 1 2

В настоящее время мне интересно, если это было вызвано неправильным параметром pFlags importer.ReadFile(pFile,pFlags),

Может кто-нибудь помочь мне выяснить, какая часть пошла не так.

0

Решение

Я думаю, что я понял проблему.

Вы читаете цвета, как это

for (int i = 0; i < vertexCount; i++)
vertexColor = scene->mMeshes[0]->mColors[i];

Тем не менее, AssImp может хранить более одного цветового канала вершины, поэтому вы должны прочитать его следующим образом.

for (int i = 0; i < vertexCount; i++)
vertexColor = scene->mMeshes[0]->mColors[0][i];

Это будет читать цвета в канале цвета 0-й вершины

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]