3d Assimp模型具有纹理,但没有纹理坐标

3d Assimp模型具有纹理,但没有纹理坐标,3d,texture-mapping,3d-modelling,assimp,3d,Texture Mapping,3d Modelling,Assimp,我正在使用Assimp将3D模型加载到我的程序中。到目前为止,一切都很顺利,除了我遇到了一个似乎毫无意义的光波物体。当然,它在光波中渲染得很好,但在Assimp中没有纹理坐标,没有UV坐标,只有最终加载的纹理。但这并没有什么帮助——它们只是存在于记忆中,永远不会被使用,因为——你猜对了——没有纹理坐标 到目前为止,我还没有找到任何有用的辅助页面。其他模型加载精细,并正确地进行纹理映射。这是Assimp的问题吗?所有光波模型都会出现这种情况,还是仅此一个?您的程序是否正确渲染其他模型 我也遇到了与

我正在使用Assimp将3D模型加载到我的程序中。到目前为止,一切都很顺利,除了我遇到了一个似乎毫无意义的光波物体。当然,它在光波中渲染得很好,但在Assimp中没有纹理坐标,没有UV坐标,只有最终加载的纹理。但这并没有什么帮助——它们只是存在于记忆中,永远不会被使用,因为——你猜对了——没有纹理坐标


到目前为止,我还没有找到任何有用的辅助页面。其他模型加载精细,并正确地进行纹理映射。这是Assimp的问题吗?

所有光波模型都会出现这种情况,还是仅此一个?您的程序是否正确渲染其他模型

我也遇到了与您相同的问题,使用assimp读取OBJ文件(而不是光波数据文件)并在OpenGL中渲染。我的渲染器完全是从assimp站点上的示例复制的。我对我的渲染器做了一些调查,发现我没有任何使用UV的代码!所以,我补充道

if( mesh->mTextureCoords[0] != NULL ) {
    glTexCoord2fv( &mesh->mTextureCoords[0][index].x );
}
就在我画顶点之前,在

int index = face->mIndices[i];
i是for循环的循环控制变量

问题:在assimp网站上找到的渲染代码对UV坐标没有任何用处。你必须在自己身上加上这一点


希望这不会太晚,以帮助

有8个纹理坐标槽。。。每个都可以用不同的纹理填充,也可以不填充。。。你只需要检查第一个

网格->mTextureCoords[0]

将其转换为如下“const struct aiVector3D*”这样的数组 并循环遍历索引mTextureCoords[0][t]

注意,我们循环t,它是一个2d数组

    for (t = 0; t < mesh->mNumVertices; ++t) {
        const struct aiVector3D* textureVec = &mesh->mTextureCoords[0][t];
        printf("tex (%f,%f,%f)", textureVec->x, textureVec->y, textureVec->z );
    }
(t=0;tmNumVertices;++t)的
{
const struct aiVector3D*textureVec=&mesh->mTextureCoords[0][t];
printf(“tex(%f,%f,%f)”,textureVec->x,textureVec->y,textureVec->z);
}
希望有帮助!我也被困在这里了!认为它没有加载

现在:
(0.034839,0.369741,0.0.369741,0.0.0 0.0 0.0 0 0.0 0 0 0 0.0 0 0.147435,0.147435,0.505064447,0.50506 447,0.506 447,0.50506.506.506.0 0 0.506 7,0.506 0.50677,0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.506 7 7,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.506 7 7 7 7,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.847968,0.000000)特(0.314932,0.833907,0.000000)tex(0.318555,0.981848,0.000000)tex(0.554152,0.373114,0.000000)tex(0.557998,0.677465,0.000000)tex(0.442610,0.703479,0.000000)

我没有成吨的型号,但这至少在一个型号上发生。实际上可能是meth->MNUvComponents…对不起!