【问题标题】:OpenGL Application crashes when accessing Assimp Texture Coordinate DataOpenGL 应用程序在访问 Assimp 纹理坐标数据时崩溃
【发布时间】:2021-12-24 17:52:33
【问题描述】:

我正在尝试访问用搅拌机制作的立方体模型的纹理坐标。

for (int i = 0; i < mMesh->mNumVertices; i++) {
    std::cout << mMesh->mTextureCoords[i][0].x << " " << mMesh->mTextureCoords[i][0].y << std::endl;
}

为什么会这样。
应用程序窗口启动,但不显示红色背景。
第一个坐标也被打印出来
0 1
我该如何解决这个问题。
删除此代码不会导致崩溃。

【问题讨论】:

  • 您是否错过了mTextureCoords 的第一个和第二个数组参数(例如mTextureCoords[0][i])?
  • @gkv311 是的,它现在可以工作了。谢谢你

标签: c++ assimp


【解决方案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;
    }
}

【讨论】:

    猜你喜欢
    • 2012-03-06
    • 2017-10-13
    • 1970-01-01
    • 2017-10-23
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多