Hi

any chance you could try a more recent version? Lots of fixes since then…


Mike

> On 9 Jan 2019, at 10:59, Volker Enderlein <volker.enderl...@ifm-chemnitz.de> 
> wrote:
> 
> Hi,
> 
> 
> 
> I am facing some rendering issues with custom effects in Qt3d. To mark some 
> of the entities selected I replace the existing material effect of an entity 
> with a newly created instance of a wireframe effect. When using the 
> robustwireframe shaders sometimes (but not always, it does not seem to be 
> reproducible) on some entities the underlying color (phong shading model) is 
> not set properly. 
> 
> I tried different shaders (also tried to set the fragment color directly) but 
> the result does not change: sometimes I see those rendering issues. 
> 
> And in some cases the following message is written to the console: 
> 
> QPainter::begin: Paint device returned engine == 0, type: 3
> QPainter::setCompositionMode: Painter not active
> QPainter::end: Painter not active, aborted
> 
> So I'm guessing, setting the custom QEffect causes some issues.
> 
> My question is: Should I avoid creating many instances of a custom wireframe 
> effect and reuse one instance for all selected entities or should I create a 
> separate instance for every entity (material)?
> 
> <RenderingIssues.PNG> 
> 
> The left part of the image shows the wrong behaviour, the right part is the 
> expected rendering. 
> 
> Platform specs: Windows 7 x64, Visual Studio 2015, Qt 5.10.0, Qt3D 
> 
> Graphics specs: NVidia GeForce GTX 750 Ti/PCIe/SSE2, OpenGL 4.6.0 NVIDIA 
> 391.35
> 
> 
> 
> The definition of the effect is as follows:
> 
> 
> 
>     WireFrameEffect::WireFrameEffect(Qt3DCore::QNode* parent/* = nullptr*/)
>         : Qt3DRender::QEffect(parent)
>     {
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("ka"), 
> QVector4D(0.1f, 0.1f, 0.1f, 1.0f)));
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("kd"), 
> QVector4D(0.7f, 0.7f, 0.7f, 1.0f)));
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("ks"), 
> QVector4D(0.95f, 0.95f, 0.95f, 1.0f)));
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("ke"), 
> QVector4D(0.0f, 0.0f, 0.0f, 1.0f)));
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("shininess"), 
> 128.0f));
> 
>         addParameter(new 
> Qt3DRender::QParameter(QStringLiteral("light.position"), QVector4D(0.0f, 
> 0.0f, 0.0f, 1.0f)));
>         addParameter(new 
> Qt3DRender::QParameter(QStringLiteral("light.intensity"), QVector3D(1.0f, 
> 1.0f, 1.0f)));
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("line.width"), 
> 1.0f));
>         addParameter(new Qt3DRender::QParameter(QStringLiteral("line.color"), 
> QVector4D(1.0f, 1.0f, 1.0f, 1.0f)));
> 
>         auto technique = new Qt3DRender::QTechnique;
>         {
>             auto graphicsApiFilter = technique->graphicsApiFilter();
>             
> graphicsApiFilter->setApi(Qt3DRender::QGraphicsApiFilter::Api::OpenGL);
>             
> graphicsApiFilter->setProfile(Qt3DRender::QGraphicsApiFilter::OpenGLProfile::CoreProfile);
>             graphicsApiFilter->setMajorVersion(3);
>             graphicsApiFilter->setMinorVersion(1);
> 
>             auto filterKey = new Qt3DRender::QFilterKey;
>             filterKey->setName(QStringLiteral("renderingStyle"));
>             filterKey->setValue(QStringLiteral("forward"));
>             technique->addFilterKey(filterKey);
> 
>             auto renderPass = new Qt3DRender::QRenderPass;
>             {
>                 auto shaderProgram = new Qt3DRender::QShaderProgram;
>                 
> shaderProgram->setVertexShaderCode(shaderProgram->loadSource(QUrl(QStringLiteral("qrc:/shaders/robustwireframe.vert"))));
>                 
> shaderProgram->setGeometryShaderCode(shaderProgram->loadSource(QUrl(QStringLiteral("qrc:/shaders/robustwireframe.geom"))));
>                 
> shaderProgram->setFragmentShaderCode(shaderProgram->loadSource(QUrl(QStringLiteral("qrc:/shaders/robustwireframe.frag"))));
>                 renderPass->setShaderProgram(shaderProgram);
>             }
>             technique->addRenderPass(renderPass);
>         }
>         addTechnique(technique);
>     }
> 
> 
> Thanks in advance,
> 
> Cheers Volker
> 
> -- 
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> https://lists.qt-project.org/listinfo/interest

--
Mike Krus | mike.k...@kdab.com | Senior Software Engineer
KDAB (UK) Ltd., a KDAB Group company
Tel: UK Office +44 1625 809908   Mobile +44 7833 491941
KDAB - The Qt Experts, C++, OpenGL Experts

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to