How to mirror textures while rendering 3D in 5.9?
Unsolved
General and Desktop
-
Hi
I am developing a Qt application in Qt 5.9 on Windows. The application loads and renders 3d files (.dae). I am following the assimp-cpp samples.
I have come across an bug related to textures where the textures are flipped and displayed. The 3d models are shown incorrectly.
There is a method in the QTextureImage class setMirrored() that allows us to work-around this bug. The problem is, I am not sure how to do this.
Here's my code,
Qt3DRender::QMaterial *mat = (Qt3DRender::QMaterial *)(texLoader); QVector<Qt3DRender::QParameter *> params = mat->parameters(); foreach(Qt3DRender::QParameter *param, params) { QString pname = param->name(); QVariant var = param->value(); QVariant::Type mtype = var.type(); Qt3DRender::QAbstractTexture *tex = (Qt3DRender::QAbstractTexture*) var.value<Qt3DRender::QAbstractTexture*>(); if(tex) { QVector<Qt3DRender::QAbstractTextureImage*> teximages = tex->textureImages(); foreach(Qt3DRender::QAbstractTextureImage *teximage, teximages) { Qt3DRender::QTextureImage *myteximage = qobject_cast<Qt3DRender::QTextureImage*>(teximage); if(myteximage) { myteximage->setMirrored(true); } } } }
I get QAbstractTexture *tex as NULL always.
What am I missing here?