Unsolved Animation, 3D development
-
@Wieland ya sure.. i will reproduce it and post the example code..
Can you please guide in the following issue also
Thank you.
https://forum.qt.io/topic/84633/camera-rotation-around-a-mesh -
@Wieland Hi,
I have few doubts regarding rotating an object in 3D,
For ex, i have a car model, which i have sliced in blender, to get door as a separate object and whole car as a separate object, i have exported both as .obj files and i have assembled them in the code.
Now what is happening, when i try to rotate the door which is separate object using number animation, it is rotating with respect to car's origin not w.r.t to door's so, i want to rotate it based on it's own axis or origin. not w.r.t car's origin.
I have tried the following code but didn't get the excepted result.// Car front door // Mesh { id: carDoorMesh source: "qrc:/Meshes/CarFrontDoor_modified.obj" } PhongMaterial{ id: carDoorMaterial } Transform { id: carDoorTransform property real userAngle: 0.0 matrix: { var m= Qt.matrix4x4(); m.translate(Qt.vector3d(0.501096,1.5006,1.78036)) m.rotate(userAngle, Qt.vector3d(0,1,0)) m.translate(Qt.vector3d(-0.501096,-1.5006,-1.75036)) return m } NumberAnimation on rotationY { to: -45 duration: 1000 running: true } }
i got the respective values from blender.
Any guidance is appreciated
Thank you. -
@Naveen_D No offense, but this has nothing to do with Qt really but only with your lack of a basic understanding of how transformation matrices work. Seriously, get a book on linear algebra or you'll never get this to work.
-
@Wieland Hi,
If i want to give color animation for a particular part of the 3d object, here for eg, car tire or door etc how can i do that? i want to show color animation for car tire, from existing color to red and back to same color and once started, it should be running continuously.
I tried with the following code within transform, but didn't get the resultTransform{ id: frontRightDoorWheelTireTransform property real userAngle: 0.0 property real userDistance: 0.0 matrix: { var m= Qt.matrix4x4(); m.translate(0.57005,-0.462196,-2.27110) m.rotate(userAngle,Qt.vector3d(1,0,0)) m.translate(-0.57005,0.462196,2.27110) return m; } translation: Qt.vector3d(userDistance,0,0) ColorAnimation { id: frontRightDoorWheelTireAnimation from: "#171512" to: "red" duration: 2000 running: true } }
Thank you,
Naveen -
Any updates on the above query.. ?
Thank you. -
What makes you think that you could apply a color animation to a spatial transformation? That doesn't make any sense.
-
@Wieland Ok thank you...
- one more thing, i have a scene 3D function in which i am rendering my car entity, but i am not able to rotate it, when it runs the object is still at one place i am not able to move it. can you please guide me through this
here is the code
import QtQuick 2.5 import Qt3D.Core 2.0 import Qt3D.Render 2.0 import Qt3D.Input 2.0 import Qt3D.Extras 2.0 import QtQuick.Scene3D 2.0 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 import QtQuick.Layouts 1.1 ApplicationWindow { id: appWindow visible: true width: Screen.width height: Screen.height Rectangle { width: parent.width height: parent.height color: "Transparent" // 3D scene Scene3D { id: scene3d anchors.fill: parent aspects: "input" Entity { id: root components: [ RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: "#0D8EA2" camera: camera } }, InputSettings { } ] Camera { id: camera property real topPosition: 3.0 property real topPos: 0.5 projectionType: CameraLens.PerspectiveProjection fieldOfView: 25 nearPlane : 0.1 farPlane : 1000.0 position: Qt.vector3d( 15.0, topPosition, 20.5) upVector: Qt.vector3d(0.0,1.0,0.0) viewCenter: carBodySlicedTransform.translation } OrbitCameraController {camera: camera} // car Base Mesh{ id: baseMesh source: "qrc:/Meshes/CarBase.obj" } PhongAlphaMaterial{ id: baseMaterial diffuse: "#7bc0ce" alpha: 1.0 } Transform{ id: baseTransform translation: Qt.vector3d(0.0,-1.0,0.0) } // car Body sliced Mesh { id: carBodySlicedMesh source: "qrc:/Meshes/CarBodySliced.obj" } PhongAlphaMaterial { id: carBodySlicedMaterial shininess: 500.0 specular: "#62788d" diffuse: "#62788d" alpha: 1.0 } Transform { id: carBodySlicedTransform property real userAngle: 0.0 property real userDistance: 0.0 property real xAngleValue: 0.0 property real yAngleValue: 0.0 property real zAngleValue: 0.0 matrix: { var m = Qt.matrix4x4(); m.rotate(userAngle, Qt.vector3d(xAngleValue, yAngleValue, zAngleValue)); m.translate(Qt.vector3d(userDistance, 0, 0)); return m; } translation: Qt.vector3d(0.0,0.0,0.0) NumberAnimation on rotationY { id: carAnimation to: 360 duration: 5000 running: false } } // main car body entity Entity { id: carMainEntity components: [ carBodySlicedMesh, carBodySlicedMaterial, carBodySlicedTransform ] // car base entity Entity{ id: carBaseEntity components: [baseMesh, baseMaterial, baseTransform] } } } } }
- Also i want to know how to apply animation to zoom the car based certain condition for eg: if i want to show the engine part of the car then i want to zoom the car towards that particular part in show it using animation.
Thank you
- one more thing, i have a scene 3D function in which i am rendering my car entity, but i am not able to rotate it, when it runs the object is still at one place i am not able to move it. can you please guide me through this
-
Hi, can anyone guide me.. regarding above question
Thank you -
@Wieland Hi, how can i place the camera within the car, so that i can give the inside view of the car in 3D development environment.
Thank you -
hi is there any good tutorial for this ? thanks