Skip to content
QtWS25 Last Chance
  • QtOpenGL or Qt3D

    Jobs
    5
    0 Votes
    5 Posts
    3k Views
    appollosputnikA

    @Lays147 hi I got some 12 years experience in QtOpenGL very well. May be I will be interested to join you if you like please write to me 'yellowlemontree0821@gmail.com'

  • 0 Votes
    3 Posts
    4k Views
    CatBehemothC

    Hello Carl,

    thanks for an idea. I implemented a simple point cloud viewer with opengl basic functionality. The problem is that it has to work in the plugin and it crashes when I'm destroying the instance without being shown before. Here is the topic

  • Job: Qt3D or QOpenGL

    Portuguese
    2
    1 Votes
    2 Posts
    3k Views
    Everton FonsecaE

    @Lays147 Bom dia Lays ainda ha vagas?

  • Qt OpenGL or Qt3D

    Jobs
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • 0 Votes
    1 Posts
    471 Views
    No one has replied
  • 0 Votes
    2 Posts
    2k Views
    S

    Camera control is not fully implemented yet. There's just a little workaround for this problem for now.

  • 0 Votes
    1 Posts
    763 Views
    No one has replied
  • QT3D

    General and Desktop
    3
    0 Votes
    3 Posts
    1k Views
    U

    Thank you Chris,

    I've tired to play with the "Qt3D: Basic Shapes C++ Example". I put the example in my Mainwidow Environment, an want to replace the main.cpp by the "on_application ..."-routine from the mainwindow program.

    I works but it shows me only a white screen. I checked it serveral times.

    I have no idea what is wrong?

  • 0 Votes
    8 Posts
    6k Views
    P

    Hi,

    most of the Qt3D-demos are now working also for me,
    just some of them have still errors (=application remains completely black):
    1) assimp* //
    2) deferred-renderer*
    3) multiviewport
    4) tesselation-models
    5) and I see no difference with and without referencing "test_scene.dae"
          with SceneLoader in the project "playgorund-qml".
          What should I expect to see when I reference "test_scene.dae"?
          ( this is what I see: http://privet.bplaced.net/temp/playground-qml.png )

    Do you experience the same behavior?

  • 0 Votes
    4 Posts
    5k Views
    Chris KawaC

    So if I'm understanding correctly

    To my understanding yes.

    would the following approach be valid?

    I'm afraid it's not that simple. Unfortunately OpenGL is for better or worse single threaded. An OpenGL context can be made current in only one thread at a time. If you want to render in multiple threads you have two choices:

    Have one context, synchronize the threads and switch the context to be current in only one of them at any given time. In practice this is useless as you are rendering in only one thread while the others wait for their turn, thus the whole effort of threading is wasted because the rendering is serialized anyway. Create multiple OpenGL contexts and make them share resources. This way you can make multiple threads, each with its own context, render at the same time. Each background thread would use a QOffscreenSurface and the main thread would use a window.

    An FBO does not belong to a surface. It belongs to an OpenGL context. You can share resources like textures or buffers, but FBOs can't be shared between contexts.

    Having said the above, one approach would be to create worker threads, each with its own OpenGL context made current on a QOffscreenSurface, rendering to a texture through an FBO. These textures would be then used to render them to an FBO in the main thread. Some synchronization will be needed to assure the textures updates are visible in other threads before using them for rendering.

    Note however that, as I said earlier, concept of threads has been and, to some degree, still is alien to OpenGL. The above scenario will most probably be penalized, as most OpenGL drivers serialize the calls anyway and jump enormous hoops to give you the impression of multi-threading, with varying results. In many cases single threaded rendering turns out to be faster, mostly due to no need for synchronization. That is however something you will have to heavily profile for your case.

  • 0 Votes
    8 Posts
    10k Views
    P

    workaround: see
    https://forum.qt.io/topic/57239/qt3d-basic-shapes-c-example-doesn-t-run/5

  • Rotate 3D Model

    QML and Qt Quick
    6
    0 Votes
    6 Posts
    4k Views
    p3c0P

    @nothing Congratulations and thanks for sharing :)

  • 0 Votes
    3 Posts
    2k Views
    Z

    https://github.com/qtproject/qt3d/tree/dev/examples/qt3d/common

    Remember to call create()!!!

  • 0 Votes
    2 Posts
    973 Views
    SGaistS

    Hi,

    Qt3D is a tech-preview, rest assured that the documentation will be there when it's officially integrated.

  • 0 Votes
    2 Posts
    1k Views
    SGaistS

    Hi and welcome to devnet,

    If you would like to have more information, please post a comment on the bug report. Since it's done it means that the problem has been fixed but you will have to either wait for 5.5.1 or build Qt3D yourself.

  • 0 Votes
    3 Posts
    1k Views
    Z

    QGLWidget is deprecate. I use QOpenGLWindow and it works. Make sure to call QOpenGLWindow::create() or it won't work.

    Here is a c++ example.
    https://github.com/qtproject/qt3d/tree/dev/examples/qt3d/cpp_example

  • 0 Votes
    3 Posts
    694 Views
    L

    Ah ok...thanks

  • Qt3D Module

    General and Desktop
    4
    0 Votes
    4 Posts
    1k Views
    SGaistS

    @Zypo , You should rather use code.qt.io, this is where the up to date code can be found.

  • 0 Votes
    3 Posts
    3k Views
    A

    Hey buddy,

    I am not sure if using QWidget is meant to work with Qt3D. Anyway, instantiate a custom QWindow with OpenGL surface works for me (like you did and like in the examples) :

    The View / Window subclass :

    View::View(QScreen *screen) : QWindow(screen) { setSurfaceType(QSurface::OpenGLSurface); resize(1024, 768); QSurfaceFormat format; if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL) { format.setVersion(4, 3); format.setProfile(QSurfaceFormat::CoreProfile); } format.setDepthBufferSize( 24 ); format.setSamples( 4 ); setFormat(format); create(); }

    And then from the main :

    QGuiApplication a(argc, argv); View view; Qt3D::QAspectEngine engine; engine.registerAspect(new Qt3D::QRenderAspect()); Qt3D::QInputAspect *input = new Qt3D::QInputAspect; engine.registerAspect(input); engine.initialize(); QVariantMap data; data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view))); data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view)); engine.setData(data);

    Hope that'll help !

  • 0 Votes
    5 Posts
    3k Views
    JKSHJ

    @okieh said:

    I'm a little bit confused... In my sysroot directory for my target (i.mx6) I have Qt in version 5.2.1 and Qt3D libs with Version 5.3.0.

    Those Qt 3D libs are not officially-provided by the Qt Project, and they're incomplete.

    Perhaps you can ask the person who built those libs?

    I already tried to build the Qt3d 5.5 version with my Qt 5.2.1 dev enviroment, but it doesn't work.

    Why not? What errors do you get?