Я использую Assimp для загрузки моделей для использования для моего приложения. Как правило, я заинтересован в том, чтобы иметь касательное пространство - нормы, касательные и битангеты. Есть вариант для Assimp для их расчета: < /p>
// Calculates the tangents and bitangents for the imported meshes.
aiProcess_CalcTangentSpace = 0x1
< /code>
Однако в моем случае это ничего не делает. Сетка, которую я пытаюсь импортировать, имеет нормы, но нет касательных и битангентов. Вот как я читаю свои файлы: < /p>
Assimp::Importer importer;
const aiScene* scene = importer.ReadFile(myFile,
aiProcess_Triangulate |
aiProcess_JoinIdenticalVertices |
aiProcess_OptimizeGraph |
aiProcess_OptimizeMeshes |
aiProcess_GenSmoothNormals |
aiProcess_CalcTangentSpace);
OutputDebugStringA(importer.GetErrorString());
aiMesh* mesh = scene->mMeshes[0];
if (!mesh->HasNormals() || !mesh->HasPositions() || !mesh->HasFaces() || !mesh->HasTangentsAndBitangents())
return false;
< /code>
Если я сломаю этот код, у PTR «сетка» есть нормальные нормы, но Tangets и Bitangent Importer.getErrorString () '
Подробнее здесь: https://stackoverflow.com/questions/710 ... gent-space