Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Options to add a 3D view to a Qt C++ application
Forum Update on Monday, May 27th 2025

Options to add a 3D view to a Qt C++ application

Scheduled Pinned Locked Moved Solved General and Desktop
qt3d
11 Posts 4 Posters 1.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AndyBriceA Offline
    AndyBriceA Offline
    AndyBrice
    wrote on last edited by
    #1

    I have a Qt 5 application written in C++ for Windows and Mac. It has a various views in tabs, including a 2D floor plan. I want to add another tab with a 3D floor plan.

    The 3D floor plan is going to be quite basic/cartoon-like. No need for meshes, custom shaders, lighting models etc. I just need to add various primitive shapes (cyclinders, cubes etc) programmatically to contruct the floor plan from the information that I already have. The user then needs to be able to move around the floor plan and do some simple manipulation.

    I am trying to work out what my options are. It seems that I can use Qt 3D or Qt Quick 3D. Given that my requirements are basic and I don't have much experience in 3D stuff, is Qt Quick 3D the better choice? Is it possible to integrate this into an application that is currently pure C++ (no QML)?

    I have a commercial (small business) license.

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      For the second part of your question, yes you can mix them. In the absolute, every QtQuick application starts as a C++ application (unless you use a viewer).

      As for your main question, where do you get your 3D data from ? Are you using a 3D model ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      AndyBriceA 1 Reply Last reply
      1
      • SGaistS SGaist

        Hi,

        For the second part of your question, yes you can mix them. In the absolute, every QtQuick application starts as a C++ application (unless you use a viewer).

        As for your main question, where do you get your 3D data from ? Are you using a 3D model ?

        AndyBriceA Offline
        AndyBriceA Offline
        AndyBrice
        wrote on last edited by
        #3

        @SGaist said in Options to add a 3D view to a Qt C++ application:

        For the second part of your question, yes you can mix them. In the absolute, every QtQuick application starts as a C++ application (unless you use a viewer).

        Ok, thanks.

        @SGaist said in Options to add a 3D view to a Qt C++ application:

        As for your main question, where do you get your 3D data from ? Are you using a 3D model ?

        I have all the dimensions for the 2 floor plan, stored in XML, already in the application. So I just need need to add Z information (which can be a sensible default to start with).

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          Are you looking to implement something like this paper describes ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          AndyBriceA 1 Reply Last reply
          0
          • SGaistS SGaist

            Are you looking to implement something like this paper describes ?

            AndyBriceA Offline
            AndyBriceA Offline
            AndyBrice
            wrote on last edited by AndyBrice
            #5

            @SGaist My floor plan are not too complex. Basically tables (of various shapes), seats and guests. Tables and chairs are standard heights, so it shouldn't be to hard (in principal) to create a 3D floor plan if you have all the data for a 2D floor plan.

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #6

              One track I would explore is to check what would be needed to convert your xml to one of the format supported by Assimp which is used as loader for Qt3D.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              1
              • L Offline
                L Offline
                loopless
                wrote on last edited by
                #7

                OpenSceneGraph is very usable with QT. I was able to create a simple scene in a tab with basic user interaction quite easily. OSG is very mature with a long history.

                AndyBriceA 1 Reply Last reply
                1
                • L loopless

                  OpenSceneGraph is very usable with QT. I was able to create a simple scene in a tab with basic user interaction quite easily. OSG is very mature with a long history.

                  AndyBriceA Offline
                  AndyBriceA Offline
                  AndyBrice
                  wrote on last edited by
                  #8

                  @loopless Did you use OpenSceneGraph instead of Qt3D? If so, why?

                  L 1 Reply Last reply
                  0
                  • JoeCFDJ Offline
                    JoeCFDJ Offline
                    JoeCFD
                    wrote on last edited by JoeCFD
                    #9

                    Qt 3D is late on board for 3D rendering. Other packages have much more functions for this. Like VTK, https://www.blender.org/ etc.
                    if you do research and have time, it may be interesting to use Qt 3D to build your projects. Otherwise, you may want to try other packages and it is quicker. The interfaces of Qt packages always look simpler and easier for use.

                    AndyBriceA 1 Reply Last reply
                    0
                    • JoeCFDJ JoeCFD

                      Qt 3D is late on board for 3D rendering. Other packages have much more functions for this. Like VTK, https://www.blender.org/ etc.
                      if you do research and have time, it may be interesting to use Qt 3D to build your projects. Otherwise, you may want to try other packages and it is quicker. The interfaces of Qt packages always look simpler and easier for use.

                      AndyBriceA Offline
                      AndyBriceA Offline
                      AndyBrice
                      wrote on last edited by
                      #10

                      @JoeCFD I had a play with Qt3D and manage to integrate it into a tab of a Qt GUI application without any problems. My 3D requirements are quite modest and I am a C++ programmer at heart, so Qt3D/C++ will probably be fine for me.

                      1 Reply Last reply
                      0
                      • AndyBriceA AndyBrice

                        @loopless Did you use OpenSceneGraph instead of Qt3D? If so, why?

                        L Offline
                        L Offline
                        loopless
                        wrote on last edited by
                        #11

                        @AndyBrice Frankly, I had a lot of familiarity with OSG - it is very mature with a lot of useful functionality built in over the years and a robust user community. For example, it is trivial to add geometry with a space-ball "navigator" and selection to highlight an object.

                        1 Reply Last reply
                        1

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved