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. How to zoom in/out or resize a 3D model rendered in QML from a .obj file
Forum Updated to NodeBB v4.3 + New Features

How to zoom in/out or resize a 3D model rendered in QML from a .obj file

Scheduled Pinned Locked Moved Unsolved General and Desktop
1 Posts 1 Posters 449 Views 1 Watching
  • 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.
  • R Offline
    R Offline
    rahulch_pp
    wrote on last edited by rahulch_pp
    #1

    I am trying to implement a basic QML application that loads a 3D model from a .obj file and just display it on the screen. For now I am able to do so, but the object displayed is far too small. Is there a way to stretch/resize the model while rendering to fit its parent window's size or something?

    Here is the code -

    import Qt3D.Core 2.12
    import Qt3D.Render 2.12
    import Qt3D.Extras 2.12
    import Qt3D.Input 2.12
    import QtQuick.Scene3D 2.12
    import QtQuick 2.12 as QQ2
    
    Scene3D {
        id: scene3d
        anchors.fill: parent
        focus: true
        aspects: ["input", "logic"]
        height: parent.height
        width: parent.width
        cameraAspectRatioMode: Scene3D.AutomaticAspectRatio
        Entity {
            id: sceneRoot
    
            Camera {
                id: camera
                projectionType: CameraLens.PerspectiveProjection
                fieldOfView: 45
                nearPlane: 0.1
                farPlane: 1000.0
                position: Qt.vector3d(0.0, 0.0, 40.0)
                upVector: Qt.vector3d(0.0, 1.0, 0.0)
                viewCenter: Qt.vector3d(0.0, 0.0, 0.0)
            }
    
            FirstPersonCameraController {
                camera: camera
            }
    
            components: [
                RenderSettings {
                    activeFrameGraph: ForwardRenderer {
                        camera: camera
                        clearColor: "transparent"
                    }
                },
                InputSettings {
                    id: inputSettings
                }
            ]
    
            PhongMaterial {
                id: material
            }
    
            Mesh {
                id: sphereMesh
    //             source: "images/face3d/face_bse_mesh.obj"
                source: "images/robo-obj-pose4/source/d2f0cff60afc40f5afe79156ec7db657.obj"
            }
    
            Transform {
                id: modelTransform
                property real userAngle: 0.0
                matrix: {
                    var m = Qt.matrix4x4()
                    m.rotate(userAngle, Qt.vector3d(0, 1, 0))
    //                 m.translate(Qt.vector3d(20, 0, 0))
                    return m
                }
            }
            
            QQ2.NumberAnimation {
                target: modelTransform
                property: "userAngle"
                duration: 10000
                from: 0
                to: 360
                
                loops: QQ2.Animation.Infinite
                running: true
            }
            
            Entity {
                id: sphereEntity
                components: [sphereMesh, material, modelTransform]
            }
        
            OrbitCameraController{
                id: orbitCamera
                camera: camera
            }
        }
    }
    
    
    
    1 Reply Last reply
    0

    • Login

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