[Interest] [Qt3D] Assertion in QAbstractAspect when inserting entity from plugin DLL
Hello, I am facing an error since Qt 5.14 (5.14.0 and 5.14.1) that did not show up in previous versions (tested Qt 5.13.2 and before) It is a huge engineering application and I did not manage it up to now to reduce it to a small sample that shows the behaviour. When interactively inserting a 3D QEntity (a custom geometry derived from QEntity containing a QGeometryRenderer and some QTransform nodes) from a plugin DLL (created with C++) I am greeted by the following assertion: --- Microsoft Visual C++ Runtime Library --- Debug Error! Program: C:\Qt\5.14.1\msvc2017_64\bin\Qt5Cored.dll Module: 5.14.1 File: aspects\qabstractaspect.cpp Line: 213 ASSERT: "metaObj" in file aspects\qabstractaspect.cpp, line 213 (Press Retry to debug the application) And the application does not display the graphics component inserted. Other components are shown. I already inspected the output of the logging categories for Qt3D and our plugin DLL but did not succeed up to now in finding the reason for this behaviour. Did anyone were facing similar regressions when updating a Qt3D based application Qt 5.14? Any help is very much appreciated. Cheers, Volker ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Issues building 5.13.0 with VS 2019
Hi, I tried to build Qt 5.13.0 from source with current VS 2019 but it failed in QtWebEngine. It failed with the following message (sorry for the german compiler commands): [5338/26172] CXX obj/third_party/icu/bundled_icui18n/brktrans.obj FAILED: obj/third_party/icu/bundled_icui18n/brktrans.obj ninja -t msvc -e environment.x86 -- "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.21.27702\bin\HostX64\x86/cl.exe" /nologo /showIncludes -DU_I18N_IMPLEMENTATION -DUSE_AURA=1 -DNO_TCMALLOC -DOFFICIAL_BUILD -DCHROMIUM_BUILD -DTOOLKIT_QT -D_HAS_EXCEPTIONS=0 -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -D_USING_V110_SDK71_ -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=0x0A02 -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_DLOPEN=0 -DUCONFIG_ONLY_HTML_CONVERSION=1 -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=wchar_t -Igen -I../../3rdparty/chromium -I../../3rdparty/chromium/third_party/icu/source/common -I../../3rdparty/chromium/third_party/icu/source/i18n /utf-8 /Gy /FS /bigobj /d2FastFail /Zc:sizedDealloc- /O1 /Ob2 /Oy- /Zc:inline /Gw /Oi /MD /W3 /wd4800 /wd4267 /wd4996 /wd4091 /wd4127 /wd4251 /wd4275 /wd4312 /wd4324 /wd4351 /wd4355 /wd4503 /wd4589 /wd4611 /wd4100 /wd4121 /wd4244 /wd4505 /wd4510 /wd4512 /wd4610 /wd4838 /wd4995 /wd4996 /wd4456 /wd4457 /wd4458 /wd4459 /wd4200 /wd4201 /wd4204 /wd4221 /wd4245 /wd4267 /wd4305 /wd4389 /wd4702 /wd4701 /wd4703 /wd4661 /wd4706 /wd4715 /wd4267 /wd4005 /wd4068 /wd4267 /utf-8 /TP /GR /wd4577 /c ../../3rdparty/chromium/third_party/icu/source/i18n/brktrans.cpp /Foobj/third_party/icu/bundled_icui18n/brktrans.obj /Fd"obj/third_party/icu/bundled_icui18n_cc.pdb" C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(74): error C2027: Verwendung des undefinierten Typs "std::atomic" C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.21.27702\include\atomic(1824): note: Siehe Deklaration von "std::atomic" C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(78): error C2027: Verwendung des undefinierten Typs "std::atomic" C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.21.27702\include\atomic(1824): note: Siehe Deklaration von "std::atomic" C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(82): error C2027: Verwendung des undefinierten Typs "std::atomic" C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.21.27702\include\atomic(1824): note: Siehe Deklaration von "std::atomic" C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(86): error C2027: Verwendung des undefinierten Typs "std::atomic" C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.21.27702\include\atomic(1824): note: Siehe Deklaration von "std::atomic" C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(233): error C2079: "icu_63::UInitOnce::fState" verwendet undefiniertes struct "std::atomic" C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(236): error C2664: "int32_t icu_63::umtx_loadAcquire(icu_63::u_atomic_int32_t &)" : Konvertierung von Argument 1 von "int" in "icu_63::u_atomic_int32_t &" nicht m”glich C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(261): error C2664: "int32_t icu_63::umtx_loadAcquire(icu_63::u_atomic_int32_t &)" : Konvertierung von Argument 1 von "int" in "icu_63::u_atomic_int32_t &" nicht m”glich C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\3rdparty\chromium\third_party\icu\source\common\umutex.h(276): error C2664: "int32_t icu_63::umtx_loadAcquire(icu_63::u_atomic_int32_t &)" : Konvertierung von Argument 1 von "int" in "icu_63::u_atomic_int32_t &" nicht m”glich ninja: build stopped: subcommand failed. jom: C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\core\Makefile.gn_run.Release [run_ninja] Error 1 jom: C:\Temp\Qt\qt-everywhere-src-5.13.0\qtwebengine\src\core\Makefile.gn_run [release] Error 2 jom:
[Interest] [Qt3D] Fast refresh of Text2DEntity does not work
Hi, I'm facing a really awkward bug. I have a Text2DEntity displaying a variable that increases every 100 ms. But sometimes the display is wrong. A texture is displayed that already has been shown some time ago. Therefore my value visually does not increase but jumps between arbitrary values. Sometimes also the following message is logged: Warning: [Qt3DRender::GLTexture] No QTextureData generated from Texture Generator yet Searching the bug tracker leads to reports https://bugreports.qt.io/browse/QTBUG-63561 and https://bugreports.qt.io/browse/QTBUG-65775 They seem somewhat related although they should have been resolved in my Qt 13.0 beta version or do not apply anymore. Are those bugs still present? And if they are, is there a workaround? Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] Building Qt and WebEngine
Thanks Allan and Alexandru! The build is running ... Cheers, Volker Am 25.04.2019 um 10:59 schrieb Allan Sandfeld Jensen: On Donnerstag, 25. April 2019 10:28:42 CEST Volker Enderlein wrote: Hi, when building Qt and WebEngine separately (i.e. not doing an embeddd build), do I need to install Qt before building WebEngine and provide the path to the installation? Are there any step by step instructions how to do this? I searched already for a while with no luck, apparently using the wrong keywords. Like any other Qt project, you call the qmake from either the installed or temporary build path (under qtbase/bin). If you want to build qtwebengine separately, the builddir need to be somewhere it wouldn't be in a qt5 top- build. Calling QMake should then cause the configure step to run, and the project can be built like normal after that. You can put the configure arguments for webengine on the qmake command line after --. For instance: /bin/qmake -- - webengine-proprietary-codecs -system-webengine-ffmpeg -no-webegine-webrtc Best regards 'Allan ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Building Qt and WebEngine
Hi, when building Qt and WebEngine separately (i.e. not doing an embeddd build), do I need to install Qt before building WebEngine and provide the path to the installation? Are there any step by step instructions how to do this? I searched already for a while with no luck, apparently using the wrong keywords. Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] Initialization of Buffer entity property in QML
Thanks Jérôme for pushing me into the right direction. Now I see where I went wrong. The buffers data assignment must be done as follows: data: { var vertexArray = new Float32Array([ -1., 1., 0., 1., 1., 0., -1., -1., 0., 1., -1., 0. ]); return vertexArray; } Cheers, Volker Am 10.04.2019 um 15:57 schrieb Jérôme Godbout: The new is not something you should do into binding for sure. If I look at the Qml Buffer doc: https://doc.qt.io/qt-5/qml-qt3d-render-buffer.html Not much seem to be expose to Qml, syncData, usage https://doc.qt.io/qt-5/qt3drender-qbuffer.html and the sub class QBuffer offer the following properties accessType. Seem like you will need to fill the data into C++ from what the doc is saying. Maybe make your own QmlBuffer inherited class where you can expose QByteArray to expose the data, the dataChanged signal is already present. Just need a property exposure, wonder why this was not already exposed. You can make static Q_INVOKABLE to create QByteArray from JS array type into that class: Q_INVOKABLE QByteArray MakeVector3F(const QVariantList& data); Q_INVOKABLE QByteArray MakeVector2D(const QVariantList& data); ... Maybe add the data type, so you could have a call that push/pop data into your buffer QByteArray Q_INVOKABLE void pushData(const QVariant& data); with the proper C++ call to convert the QVariant into the Buffer data type. Those buffer class seem a bit anemic into functionality, wonder how they should be normally be used?!? The Qml exposure seem incomplete to me. Maybe someone with deeper knowledge can pitch in, but the only way I see it, they are fully managed into C++ only to be plug in Qml at best, no containing data manipulation into Qml from what I see. You use case seem legit to me, you have some property you need to assign to a Buffer, you probably don't want to do this with huge data set, but for simple and debugging buffer this will come in handy to do so. In the real world, making C++ producer to generate you data Buffer would be better performance wise. I haven't play much with Qt3D, but we did a lot of rendering to texture at my previous place, and we did have a Qml Buffer implementation way before Qt3D and we did needed those data type and everything was named attribs to the rendering actor and we could set the shader programs (vertex, geometry, fragment...) from the Qml, we could attachs as many attribs Buffer and a draw call to the actors for the rendering. I would expect something similar for a real 3D rendering engine. -Original Message- From: Interest On Behalf Of Volker Enderlein Sent: April 10, 2019 3:48 AM To: Qt Project Subject: [Interest] Initialization of Buffer entity property in QML Hi, in a QML file I try to initialize a property of type Buffer, but unfortunately it does not work. There's no error but in the MyMesh Entity the vertices Buffer always has zero length. import Qt3D.Core 2.0 import Qt3D.Render 2.0 import QtQuick 2.0 import Qt3D.Extras 2.10 Entity { id: root property Buffer vertices: Buffer { type: Buffer.VertexBuffer; data: new Float32Array([ -1., 1., 0., 1., 1., 0., -1., -1., 0., 1., -1., 0. ]) } MyMesh { id: mesh vertices: root.vertices } } How is the correct way? Cheers, Volker ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Initialization of Buffer entity property in QML
Hi, in a QML file I try to initialize a property of type Buffer, but unfortunately it does not work. There's no error but in the MyMesh Entity the vertices Buffer always has zero length. import Qt3D.Core 2.0 import Qt3D.Render 2.0 import QtQuick 2.0 import Qt3D.Extras 2.10 Entity { id: root property Buffer vertices: Buffer { type: Buffer.VertexBuffer; data: new Float32Array([ -1., 1., 0., 1., 1., 0., -1., -1., 0., 1., -1., 0. ]) } MyMesh { id: mesh vertices: root.vertices } } How is the correct way? Cheers, Volker ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] [Qt3D] What are active render targets for a ScreenRayCaster?
Hi Mike, thanks a lot for your valuable clarifications. When talking about the main area you mean the area where the three cameras overlap (two orthographic and one perspective)? I always get three hitsChanged signals emitted in this area, no matter where I click onto. I see if I can put up a simple example that shows the mentioned behaviour. Cheers, Volker Am 28.03.2019 um 14:35 schrieb Mike Krus: Hi Volker if I remember correctly, ray casting will apply to all enabled surfaces. It’ll ignore off screen surfaces and surfaces where the cursor is outside the render area. I think it also ignores surfaces when an orthographic camera is used. So in your case sounds like you should only get a single hit in the main area, and two when testing in the render areas. 5.13 is introducing a QNoPicking frame graph node to explicitly disable picking and ray casting on portions of the frame graph. If you continue having issues with this, please create a JIRA ticket, ideally with a small example. Regards, Mike On 28 Mar 2019, at 11:13, Volker Enderlein wrote: Hi, The KDAB article https://www.kdab.com/new-in-qt-3d-5-11-generalized-ray-casting/ states that the ScreeenRayCast test is performed for every active render target. I just stumbled over the question what an active render target is considered for a ScreenRayCaster. My FrameGraph contains an orthographic background viewport/camera, a SceneGraph viewport/camera and an orthographic overlay viewport/camera that fill the entire normalized viewport. Additionally two smaller viewport/camera exist at the bottom of the window for an axis gnomon and a fps counter. When triggering a ScreenRayCaster test with the current mouse position the hitsChanged signal is emitted multiple times with different hits. Traversing the scenegraph upwards from the hitted entity (mostly a DistanceFieldTextRenderer is hit) leads me to entities that let me doubt on the returned hit. Anyone out there who can shed some light on it? 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 -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] [Qt3D] What are active render targets for a ScreenRayCaster?
Hi, The KDAB article https://www.kdab.com/new-in-qt-3d-5-11-generalized-ray-casting/ states that the ScreeenRayCast test is performed for every active render target. I just stumbled over the question what an active render target is considered for a ScreenRayCaster. My FrameGraph contains an orthographic background viewport/camera, a SceneGraph viewport/camera and an orthographic overlay viewport/camera that fill the entire normalized viewport. Additionally two smaller viewport/camera exist at the bottom of the window for an axis gnomon and a fps counter. When triggering a ScreenRayCaster test with the current mouse position the hitsChanged signal is emitted multiple times with different hits. Traversing the scenegraph upwards from the hitted entity (mostly a DistanceFieldTextRenderer is hit) leads me to entities that let me doubt on the returned hit. Anyone out there who can shed some light on it? Thanks in advance. Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] Qt3D setting LineWidth per GeometryRenderer/Entity
Thanks Mike and Sean for your valuable input. It helps me to shape my solution. Cheers, Volker Am 06.02.2019 um 09:56 schrieb Mike Krus: Hi you should be able to control that using a QLineWidth render state. And yes, that would require custom material or frame graph. The raycasting-qml manual test that ships with Qt3D shows an example of creating a simple flat shading material for lines, would be easy to add line width control to that… Mike On 6 Feb 2019, at 08:20, Volker Enderlein wrote: Hi all, is it possible to set the LineWidth of a GeometryRenderer of primitive tpye Lines or do I need a Custom Material/Effect/FrameGraph node to achieve this? Thanks for enlightening. 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 -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D setting LineWidth per GeometryRenderer/Entity
Hi all, is it possible to set the LineWidth of a GeometryRenderer of primitive tpye Lines or do I need a Custom Material/Effect/FrameGraph node to achieve this? Thanks for enlightening. Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D viewAll/viewEntity
Hi all, why does the viewAll and viewEntity commands of QCamera only work in PerspectiveProjection type? Thanks for enlightening. Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D: A custom camera controller
Hi all, I implemented a custom camera controller (implementing the ExaminerViewer camera handling from OpenInventor) and don't know how to select the linearSpeed and the lookSpeed values dependent on the size of the scene as my scenegraph can be changed at runtime. I came up with a solution but it is not working as expected. auto heightAngle = theCamera->fieldOfView() / 180.0f * static_cast(M_PI); auto focalDist = theCamera->viewVector().length(); auto height = 2.0f * focalDist * std::tan(heightAngle / 2.0f); height = height < 1.0f ? 1.0f : height; auto width = height / theCamera->aspectRatio(); // NDC (left, right, bottom, top) (-1, 1, -1, 1) // MagnificationFactor: max(height, width)/linearSpeed() auto linearSpeedMagnificationFactor = std::max(height, width)/linearSpeed(); Are there any examples/experiences implementing custom camera controllers? Thanks in advance, Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D: Handling a mix of transparent and opaque objects
Hi all, I have a mix of opaque and transparent objects in a varying SceneGraph and sometimes see rendering issues (the order of drawing is wrong, typically for Text2dEntities). As I saw from the examples a typical approach is to set up a two pass rendering in the FrameGraph and handle the drawing order by myself. Are there any plans for Qt3D to support the handling of transparent objects out of the box? Thanks in advance, Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D: Rendering issues with custom effects
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)? 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
Re: [Interest] Qt3D How to draw 2D-Text always facing the Camera
The number of Text2D elements is not known in advance and may differ. It's a simulation environment, where some textual information is added to a fairly high number of elements. To avoid the data management for different kinds of entities my first idea was to create a specialized Text2d entity that handles all the gory details in a custom material and provides an option to always face the camera. Cheers Volker Am 19.12.2018 um 08:37 schrieb david crémoux: You're welcome. I will most probably have to implement the same feature in a near future for the project I'm currently working on. If making the custom camera is too much complex, there is a more basic way but involving more data management (depending on how much 2d text entities you have to display): You still use a specific frame graph branch with a layer filter but with an identity camera. Then you attach all your 2d text entities to your scene root entity and you update their transform/position on every camera transform/move. david On 19-Dec-18 10:05, Volker Enderlein wrote: Hi David, thanks for the answer. I wasn't thinking of that, as my knowledge about framegraphs is very limited. But this helps me further. Cheers Volker Am 18.12.2018 um 14:53 schrieb david crémoux: Hello Volker, I guess you can achieve it with regular QText2DEntity, with a specific frame graph branch in your rendering for your 2d text, a layer filter and a custom camera (based on your main camera). david On 18-Dec-18 14:37, Volker Enderlein wrote: Hi all, when building a rather complex Qt3D-Scene I needed some 2D-Text that has a 3D position, is always facing the camera, and fixed in size, independent of the camera settings. While looking over the components provided by Qt3D I stumbled across Text2DEntity and thought about how it can be tweaked ot fulfill my requirements. As all my requirements can be done inside a shader I thought about whether the QText2DMaterial that is used inside the class can be replaced by a custom material. But unfortunately the material is not accessible from outside. Text2DEntity can be embedded in another class that applies the camera information to it, but is there an easier solution to this problem? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] Qt3D How to draw 2D-Text always facing the Camera
Hi David, thanks for the answer. I wasn't thinking of that, as my knowledge about framegraphs is very limited. But this helps me further. Cheers Volker Am 18.12.2018 um 14:53 schrieb david crémoux: Hello Volker, I guess you can achieve it with regular QText2DEntity, with a specific frame graph branch in your rendering for your 2d text, a layer filter and a custom camera (based on your main camera). david On 18-Dec-18 14:37, Volker Enderlein wrote: Hi all, when building a rather complex Qt3D-Scene I needed some 2D-Text that has a 3D position, is always facing the camera, and fixed in size, independent of the camera settings. While looking over the components provided by Qt3D I stumbled across Text2DEntity and thought about how it can be tweaked ot fulfill my requirements. As all my requirements can be done inside a shader I thought about whether the QText2DMaterial that is used inside the class can be replaced by a custom material. But unfortunately the material is not accessible from outside. Text2DEntity can be embedded in another class that applies the camera information to it, but is there an easier solution to this problem? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] Qt3D How to draw 2D-Text always facing the Camera
Hi Oleg, thank you so much for your comment. I saw your entry in the bug tracker and therefore I tried to go the way with the custom material. Unfortunately I cannot access the underlying material definition of the utility classes that are used to render the text in Text2DEntity. As they are all private and not exported from Qt DLLs I would need to copy them, but that's something I would really try to avoid. The custom material part was straight forward, based on your bug report and on a previous implementation of a specialized material definition. But now I'm stuck with the missing access. Cheers Volker Am 18.12.2018 um 13:38 schrieb Oleg Evseev: Hi Volker, Yes, you have to add custom material because Qt3DRender::QShaderProgram s of default materials are inside private class, so you can't change shaders' code source. Take a look at https://codereview.qt-project.org/#/c/182053/ (that was for including in qt 3d, but you could easily use it as custom material in your own app) and adopt it accordingly to Text2DMaterial. --- With regards, Oleg вт, 18 дек. 2018 г. в 15:07, Volker Enderlein <mailto:volker.enderl...@ifm-chemnitz.de>>: Hi all, when building a rather complex Qt3D-Scene I needed some 2D-Text that has a 3D position, is always facing the camera, and fixed in size, independent of the camera settings. While looking over the components provided by Qt3D I stumbled across Text2DEntity and thought about how it can be tweaked ot fulfill my requirements. As all my requirements can be done inside a shader I thought about whether the QText2DMaterial that is used inside the class can be replaced by a custom material. But unfortunately the material is not accessible from outside. Text2DEntity can be embedded in another class that applies the camera information to it, but is there an easier solution to this problem? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org <mailto:Interest@qt-project.org> https://lists.qt-project.org/listinfo/interest -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D How to draw 2D-Text always facing the Camera
Hi all, when building a rather complex Qt3D-Scene I needed some 2D-Text that has a 3D position, is always facing the camera, and fixed in size, independent of the camera settings. While looking over the components provided by Qt3D I stumbled across Text2DEntity and thought about how it can be tweaked ot fulfill my requirements. As all my requirements can be done inside a shader I thought about whether the QText2DMaterial that is used inside the class can be replaced by a custom material. But unfortunately the material is not accessible from outside. Text2DEntity can be embedded in another class that applies the camera information to it, but is there an easier solution to this problem? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Qt3D How to model headlight?
Hi, I insert a light source in a scene (headlight) and connect its position to the camera position. But now, when I use camera->viewAll() the bounding volume of the scene is enlarged to include the light position. camera->viewAll() changes the camera position. And as the light source is connected to the camera position, the bounding volume is enlarged every time I do a camera->viewAll(). auto lightEntity = new Qt3DCore::QEntity(rootEntity()); auto light = new Qt3DRender::QPointLight(lightEntity); light->setColor(QColor::fromRgbF(1.0, 1.0, 1.0)); light->setIntensity(1.); light->setConstantAttenuation(1.); light->setLinearAttenuation(0.); light->setQuadraticAttenuation(0.); lightEntity->addComponent(light); auto lightTransform = new Qt3DCore::QTransform(lightEntity); lightTransform->setTranslation(camera()->position()); lightEntity->addComponent(lightTransform); connect(camera(), SIGNAL(positionChanged(QVector3D)), lightTransform, SLOT(setTranslation(QVector3D))); So the question is: How can I model a headlight that is located at the camera position and not included in bounding volume calculation? Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt3D GeometryRenderer TriangleStrip
Am 27/08/2018 um 11:31 schrieb Sean Harmer: On 27/08/2018 07:31, Volker Enderlein wrote: Hi, does the Qt3D GeometryRenderer class support TriangleStrip primitives with restartIndexValue separated Strips? Yes. Set the primitiveType property to LineStrip and you can specify the restart index value with https://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#restartIndexValue-prop. Cheers, Sean ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest Thanks, Shawn. Rereading my question, I think I need to clarify what I'm after. Is it possible for a single GeometryRenderer with primitiveType `TriangleStrip` to contain multiple indexed TriangleStrips where the indexArray entries of the strips are separated by a `restartIndexValue`? When testing this, I saw some rendering artifacts with Qt 5.10.0. Apparently (according to my tests) a GeometryRenderer with primitiveType ' Triangles' does support this, but is it supported for primitiveType `TriangleStrip` too? Cheers, Volker -- ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Qt3D GeometryRenderer TriangleStrip
Hi, does the Qt3D GeometryRenderer class support TriangleStrip primitives with restartIndexValue separated Strips? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Understanding issues with Qt3D shadowmap example
Am 06/02/2018 um 08:35 schrieb Volker Enderlein: Hi, I'm currently playing with the shadowmap example of Qt3D. When having a PlaneMesh at (0, -5, 0), a CuboidMesh (width=height=depth=1) above the PlaneMesh at (0, -4, 0), and a directional light source at (0, 30, 0) no shadow is visible on the plane. Because the CuboidMesh is above the plane I would expect a shadow to be cast on the PlaneMesh. Adding a small change in position of the light say (0.001, 30, 0) procduces a shadow on the PlaneMesh. Do I miss something important? Cheers Volker Immediately after sending the question to the list, I solved my problem by providing a correct upVector to the lightCamera. Previously upVector and light direction were collinear :( Cheers Volker -- ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Understanding issues with Qt3D shadowmap example
Hi, I'm currently playing with the shadowmap example of Qt3D. When having a PlaneMesh at (0, -5, 0), a CuboidMesh (width=height=depth=1) above the PlaneMesh at (0, -4, 0), and a directional light source at (0, 30, 0) no shadow is visible on the plane. Because the CuboidMesh is above the plane I would expect a shadow to be cast on the PlaneMesh. Adding a small change in position of the light say (0.001, 30, 0) procduces a shadow on the PlaneMesh. Do I miss something important? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt3D/QML How to access a QTransform based property from C++
Thanks Guiseppe, I try to come up with a solution based on your and Sean's answer. Cheers Volker Am 30/08/2017 um 11:29 schrieb Giuseppe D'Angelo: Il 30/08/2017 10:07, Volker Enderlein ha scritto: Entity { id: root property Transform frame: Transform {} property Material mat: PhongMaterial { diffuse: Qt.rgba(0.8, 0.8, 0.8, 1.0) } ... } Later I try to update the Transform and Material from C++. But I cannot set the properties via qmlEntity->setProperty("Transform", QVariant(Qt3DCore::QTransform)); because QTransform is not usable as metatype. The type of the property is QTransform*, not QTransform -- pass a pointer to your QTransform object to setProperty. (Also, the name of the property is "frame", not "Transform".) IOW: Qt3DCore::QTransform *t = ...; entity->setProperty("frame", t); How would I do that, or should I use an entirely different approach? Another approach is exposing the QTransform to the QML engine (for instance via engine->setContextProperty("_myTransform", t)), then using _myTransform in QML: Entity { components: [ _myTransform, ... ] } Hope this helps, ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest -- Volker Enderlein Institut für Mechatronik e.V. Phone: +49 (0)371 531 19651 Reichenhainer Strasse 88 Fax: +49 (0)371 531 19699 D-09126 Chemnitz Mail: volker.enderl...@ifm-chemnitz.de www.ifm-chemnitz.de Vorstand: Prof. Dr.-Ing. Welf-Guntram Drossel (Vorsitz) Dipl.-Ing. Heiko Freudenberg (Geschäftsführer) Amtsgericht Chemnitz VR 713 Ust.-IdNr. DE 159285348 ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt3D/QML How to access a QTransform based property from C++
Thanks René, I tried that already (but unfortunately didn't mention it), but Qt3DCore::QTransform is derived from QNode and therefore implicitly from QObject so it is missing the copy constructor that is needed for the registration as metatype. Cheers Volker Am 30/08/2017 um 10:40 schrieb René Hansen: Try to register Qt3DCore::QTransform as a metatype in your main(): qRegisterMetaType("Qt3DCore::QTransform"); http://doc.qt.io/qt-5/qmetatype.html#qRegisterMetaType On Wed, 30 Aug 2017 at 10:16 Volker Enderlein <volker.enderl...@ifm-chemnitz.de <mailto:volker.enderl...@ifm-chemnitz.de>> wrote: Hi all, for an animation system I try to construct some parameterized QML components that provide access to their transformation and material via properties. The QML part looks the following way: import Qt3D.Core 2.0 import Qt3D.Render 2.0 import QtQuick 2.0 import Qt3D.Extras 2.0 Entity { id: root property Transform frame: Transform {} property Material mat: PhongMaterial { diffuse: Qt.rgba(0.8, 0.8, 0.8, 1.0) } ... } Later I try to update the Transform and Material from C++. But I cannot set the properties via qmlEntity->setProperty("Transform", QVariant(Qt3DCore::QTransform)); because QTransform is not usable as metatype. How would I do that, or should I use an entirely different approach? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org <mailto:Interest@qt-project.org> http://lists.qt-project.org/mailman/listinfo/interest -- Volker Enderlein Institut für Mechatronik e.V. Phone: +49 (0)371 531 19651 Reichenhainer Strasse 88 Fax: +49 (0)371 531 19699 D-09126 Chemnitz Mail: volker.enderl...@ifm-chemnitz.de www.ifm-chemnitz.de Vorstand: Prof. Dr.-Ing. Welf-Guntram Drossel (Vorsitz) Dipl.-Ing. Heiko Freudenberg (Geschäftsführer) Amtsgericht Chemnitz VR 713 Ust.-IdNr. DE 159285348 ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Qt3D/QML How to access a QTransform based property from C++
Hi all, for an animation system I try to construct some parameterized QML components that provide access to their transformation and material via properties. The QML part looks the following way: import Qt3D.Core 2.0 import Qt3D.Render 2.0 import QtQuick 2.0 import Qt3D.Extras 2.0 Entity { id: root property Transform frame: Transform {} property Material mat: PhongMaterial { diffuse: Qt.rgba(0.8, 0.8, 0.8, 1.0) } ... } Later I try to update the Transform and Material from C++. But I cannot set the properties via qmlEntity->setProperty("Transform", QVariant(Qt3DCore::QTransform)); because QTransform is not usable as metatype. How would I do that, or should I use an entirely different approach? Cheers Volker -- ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt 5.8 beta compile error
Am 29/09/2016 um 20:43 schrieb Thiago Macieira: Which version of VS2015 are you using? We've been testing with Update 2 and it has worked for us for some time. Don't upgrade to Update 3, that compiler generates bad code. Do you have any additional information on that issue? We just switched to VS2015 Update 3 and did not notice any problems up to now. Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Permanent offset of QWinWidget with respect to parent window (CView)
Hi, we are using QWinMigrate to extend our MFC based Application with some Qt Widgets that are shown inside of a CView by means of QWinWidget. When updating from Qt4 to Qt5 (5.5.0) we experienced a permanent offset of the QWinWidget. Inserting a widget->move(0, 0) fixed the problem but I'd rather see working the solution as before. Google does not show any relevant matches (I must have used the wrong keywords for my query as always). Are there any known problems with QWinMigrate? Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt 5.5.0 WebEngine module with MSVC2010
Am 23.10.2015 um 22:21 schrieb Thiago Macieira: > On Friday 23 October 2015 18:35:22 Reinhardt Behm wrote: >> Wouldn't it not be a bit strange if a compiler from 2010 supported a >> standard from 2011? ;-) > > No, not really. It's strange that a compiler from 2010 does *not* support > enough features of the standard that was then known as C++0x. The standard had > been in development for years, so the compiler authors were completely aware > of changes coming. > > GCC started adding C++0x features in version 4.3. Version 4.5 was released in > 2010 and had a lot features, though by no means complete. By 2012, with the > 4.7 release, it was almost feature-complete. > > And yet, when we discussed what C++11 features we'll allow in Qt 5.7, we came > to the conclusion that MSVC 2012 is the lowest common denominator. > I expect that with the recent change of the Visual Studio release model Microsoft is including the missing features of the C++11 and C++14 standards way faster than they would have done before. Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt 5.5.0 WebEngine module with MSVC2010
Am 23.10.2015 um 12:30 schrieb Koehne Kai: > > >> -Original Message- >> From: interest-bounces+kai.koehne=theqtcompany@qt-project.org >> >> Hi, >> >> can the WebEngine module of Qt 5.5.0 be build with MSVC 2010? I've already >> searched Google and did not find an explicitely answer (my google skills >> seem to >> be not that good). > > On Windows only MSVC 2013 is supported for QtWebEngine in Qt 5.5. Since > upstream Chromium requires MSVC 2013, fixing builds for MSVC2012 or 2010 > would be a huge undertaking. > > We're working on enabling support with MSVC 2015, too (for Qt 5.6). > > Regards > > Kai > > I was afraid of that. Thank you Kai for your valuable information. Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Qt 5.5.0 WebEngine module with MSVC2010
sorry for the private mail Reinhardt, I pushed the wrong button. Hi, for some reason I expected this answer, but it only depends what features are used from c++11. The standardization process (and especially the finalization) took so many years that many of the standards features are already supported in MSVC 2010 (as they also have been supported in predating gcc versions). :) Cheers Volker Am 23/10/2015 um 12:35 schrieb Reinhardt Behm: > On Friday 23 October 2015 12:24:24 Volker Enderlein wrote: >> Hi, >> >> can the WebEngine module of Qt 5.5.0 be build with MSVC 2010? I've >> already searched Google and did not find an explicitely answer (my >> google skills seem to be not that good). >> >> I recognized the message "C++11 support is required in order to build >> chromium." and that the module is not built. Trying to enable C++11 >> support by giving the -c++11 option to configure does not gets me >> further - it seems to be ignored. >> >> Some people have had same problems with enabling C++11 support for more >> current compilers, but unfortuantely I'm bound to this version. >> > Wouldn't it not be a bit strange if a compiler from 2010 supported a standard > from 2011? ;-) > -- Volker Enderlein Tel: +49 (0)371 531 19651 Institut für Mechatronik Fax: +49 (0)371 531 19699 Reichenhainer Strasse 88 email: vol...@ifm-chemnitz.de D-09126 Chemnitz ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Qt 5.5.0 WebEngine module with MSVC2010
Hi, can the WebEngine module of Qt 5.5.0 be build with MSVC 2010? I've already searched Google and did not find an explicitely answer (my google skills seem to be not that good). I recognized the message "C++11 support is required in order to build chromium." and that the module is not built. Trying to enable C++11 support by giving the -c++11 option to configure does not gets me further - it seems to be ignored. Some people have had same problems with enabling C++11 support for more current compilers, but unfortuantely I'm bound to this version. Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
[Interest] Permanent offset of QWinWidget with respect to parent window (CView)
Hi, we are using QWinMigrate to extend our MFC based Application with some Qt Widgets that are shown inside of a CView by means of QWinWidget. When updating from Qt4 to Qt5 (5.5.0) we experienced a permanent offset of the QWinWidget. Inserting a widget->move(0, 0) fixed the problem but I'd rather see working the solution as before. Google does not show any relevant matches (I must have used the wrong keywords for my query as always). Are there any known problems with QWinMigrate? Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest
Re: [Interest] Is QMfcApp still working ?
On 11/10/2012 08:34, ynon perek wrote: Hi All, I'm looking to integrate some old code into Qt and found about the old QMfcApp that may solve my problem. I was wondering if anyone had any experience with it with recent versions of Qt ? Thanks In Advance, Ynon ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest Hi ynon perek, we are using it successfuly with Qt 4.7.4. Cheers Volker ___ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest