访问 Assimp 纹理坐标数据时 OpenGL 应用程序崩溃
OpenGL Application crashes when accessing Assimp Texture Coordinate Data
我正在尝试访问在搅拌机中制作的立方体模型的纹理坐标。
for (int i = 0; i < mMesh->mNumVertices; i++) {
std::cout << mMesh->mTextureCoords[i][0].x << " " << mMesh->mTextureCoords[i][0].y << std::endl;
}
为什么会这样。
应用程序 window 启动但不显示红色背景。
第一个坐标也被打印出来
0 1
我该如何解决这个问题。
删除此代码不会导致崩溃。
这应该是:
for (int i = 0; i < mMesh->mNumVertices; i++)
{
std::cout << mMesh->mTextureCoords[0][i].x << " " << mMesh->mTextureCoords[0][i].y << std::endl;
}
看起来你弄乱了第一个和第二个数组参数。此外,最好检查网格是否具有纹理坐标。那么代码就变成了
if (mMesh->HasTextureCoords(0)) //HasTextureCoords is an assimp function
{
for (int i = 0; i < mMesh->mNumVertices; i++)
{
std::cout << mMesh->mTextureCoords[0][i].x << " " << mMesh- >mTextureCoords[0][i].y << std::endl;
}
}
我正在尝试访问在搅拌机中制作的立方体模型的纹理坐标。
for (int i = 0; i < mMesh->mNumVertices; i++) {
std::cout << mMesh->mTextureCoords[i][0].x << " " << mMesh->mTextureCoords[i][0].y << std::endl;
}
为什么会这样。
应用程序 window 启动但不显示红色背景。
第一个坐标也被打印出来 0 1
我该如何解决这个问题。
删除此代码不会导致崩溃。
这应该是:
for (int i = 0; i < mMesh->mNumVertices; i++)
{
std::cout << mMesh->mTextureCoords[0][i].x << " " << mMesh->mTextureCoords[0][i].y << std::endl;
}
看起来你弄乱了第一个和第二个数组参数。此外,最好检查网格是否具有纹理坐标。那么代码就变成了
if (mMesh->HasTextureCoords(0)) //HasTextureCoords is an assimp function
{
for (int i = 0; i < mMesh->mNumVertices; i++)
{
std::cout << mMesh->mTextureCoords[0][i].x << " " << mMesh- >mTextureCoords[0][i].y << std::endl;
}
}