【发布时间】:2019-07-16 22:03:53
【问题描述】:
我正在使用 assimp 加载 3D 模型。 我的模型嵌入了纹理(“我猜”)。但是我有两个问题:
- 我找不到实际获取纹理文件路径的方法...
- pcData 似乎什么都没有。
我什至不能打印纹理的宽度或高度。
打印texturefile 我得到了通常的格式*0 *1 等等。
但是当我尝试打印 scene->mTextures[atoi(texturefile.C_Str())]->mFileName 时,我什么也得不到……纹理 pcData 也是如此。
代码如下:
uint32_t textureCount = scene->mMaterials[i]->GetTextureCount(aiTextureType_DIFFUSE);
for (uint32_t c = 0; c < textureCount ; c++) {
scene->mMaterials[i]->GetTexture(aiTextureType_DIFFUSE, c, &texturefile);
std::cout << "\n textureFile : " << texturefile.C_Str() << std::endl;
std::cout <<"\nTextura : "<< scene->mTextures[atoi(texturefile.C_Str())]<<std::endl;
aiTexture *texture = scene->mTextures[atoi(texturefile.C_Str())];
int w = texture->mWidth;
int h = texture->mHeight;
if (texture == NULL) {
std::cout << "\n TextureNull\n";
}
else {
std::cout << "\n textureNotNull\n";
}
uint32_t *data = reinterpret_cast<uint32_t* >(texture->pcData);
createTextureImage(data, w, h, materials[i].texturesImages[c]);
//createTextureImageView(materials[i].texturesImagesViews[c], materials[i].texturesImages[c]);
//createTextureSampler(materials[i].texturesSamplers[c]);
// void createTextureImage(uint32_t* pixels,int texWidth,int texHeight,VkImage textureImage) {
}
}
【问题讨论】: