【问题标题】:Assimp model has Textures but no Texture CoordinatesAssimp 模型有纹理但没有纹理坐标
【发布时间】:2013-05-01 17:58:48
【问题描述】:

我正在使用 Assimp 将 3D 模型加载到我的程序中。到目前为止,一切都变得很花哨,除了我遇到了一个似乎没有意义的 Lightwave 对象。当然它在 Lightwave 中渲染得很好,但在 Assimp 中没有纹理坐标,没有 UV 坐标,但纹理最终会被加载。但这无济于事——它们只是停留在内存中,永远不会被使用,因为——你猜对了——没有纹理坐标。

到目前为止,我还没有找到任何有用的 Assimp 页面。其他模型加载良好并且经过适当的纹理映射。这是 Assimp 的问题吗?

【问题讨论】:

    标签: 3d texture-mapping 3d-modelling assimp


    【解决方案1】:

    所有 Lightwave 型号都会出现这种情况,还是只有这一款?你的程序能正确渲染其他模型吗?

    我也遇到了和你一样的问题,使用 assimp 读取 OBJ 文件(而不是 Lightwave 数据文件)并在 OpenGL 中渲染。我的渲染器完全是从 assimp 网站上的示例复制而来的。我对我的渲染器进行了一些调查,发现我没有任何代码可以使用 UV!所以,我添加了

    if( mesh->mTextureCoords[0] != NULL ) {
        glTexCoord2fv( &mesh->mTextureCoords[0][index].x );
    }
    

    就在我画一个顶点之前,在哪里

    int index = face->mIndices[i];
    

    而 i 是 for 循环的循环控制变量。

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

    希望这还不算晚!

    【讨论】:

    • 我没有大量的模型,但至少有一个发生了这种情况。
    【解决方案2】:

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

    网格->mTextureCoords[0]

    将其转换为类似“const struct aiVector3D*”的数组 并遍历索引 mTextureCoords[0][t]

    注意我们循环 t 和它的二维数组

        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 );
        }
    

    希望对您有所帮助!我也卡在这里了!以为它没有加载...

    现在: Tex(0.159871,0.410298,0.000000)Tex(0.034839,0.369741,0.000000)Tex(0.147435,0.506447,0.000000)Tex(0.018893,0.493014,0.000000)Tex(0.159871,0.602596,0.000000)Tex(0.034839,0.616288,0.000000)Tex( 0.196806,0.695823,0.000000)Tex(0.082196,0.735817,0.000000)Tex(0.257118,0.783297,0.000000)Tex(0.159520,0.847968,0.000000)Tex(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->mNumUVComponents...抱歉!
    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多