You can’t convert 2d coordinates to a 3d position because you are missing the z coordinate. It is similar problem like with picking objects in a 3D scene - you can unproject a 2d screen coordinate to a vector/ray in your 3d scene and then do a ray casting to see what you hit but that’s about it. If you just want to render a 3D object at a specific location on a screen you can do so via rendering to an offscreen target and then displaying it like a regular 2d image but that will look and act like an overlay image rather than being composed into your scene.
Sent from my iPad > On Mar 16, 2021, at 10:52 AM, Alex john <blackbriar...@gmail.com> wrote: > > > > > I did the following changes to the wireframe example (Trefoilknot.qml file > translation property of transform) but still unable to get the modelView > Matrix, and also not sure whether the following changes to translation are > right If anyone can confirm and let me know > > property var mainCam // got the mainCamera ID from main.qml (wireframe > example) > property var forwardRenderer //forwardRendered id from main.qml (wireframe > example) > > Transform { > id: trefoilMeshTransform > translation:Qt.vector3d(Qt.vector2D(4, 4)).unproject( *modelView* > ,mainCam.projectionMatrix, forwardRenderer.viewportRect) > property real theta: 0.0 > property real phi: 0.0 > property real roll: 0.0 > rotation: fromEulerAngles(theta, phi, roll) > scale: root.scale > } > /* > translation : Qt.vector2D(100, 100) is where I intend to give window 2d > coordinates(here its x:100, y:100)and I assume that unproject api will > convert the 2d points to 3d and renders the 3d object exactly at 100, 100 > pixel 2d location > */ > > I got the projectionMatrix from camera, viewPortRect from ForwardRenderer in > Rendering settings. I'm completely stuck for this step. If anyone can please > confirm the changes and let me know the modelView matrix. > > >> On Mon, Mar 15, 2021 at 5:14 PM Alex john <blackbriar...@gmail.com> wrote: >> > Going the other way round (back-projection) can be done by e.g. >> > QVector3D::unproject() >> >> Thanks, as I'm referring the the wireframe example I was able to get >> the camera projection matrix from Camera Qml. However, I'm unsure how >> to get the ModelView matrix and the viewport. >> >> As I have loaded my custom obj in wireframe example and using the same >> geometry and camera settings as its for wireframe, therefore can you >> please let me know how this can be done at QML side? I did try to find >> this in the documentation but didn't find the usage. >> >> >> >> >> > On Mon, Mar 15, 2021 at 11:03 AM Alex john <blackbriar...@gmail.com> wrote: >> >> >> >> Hello , >> >> >> >> Im successessfully able to load the obj file in Scene3D, and by using >> >> fromEulerAngles I'm able to get the required yaw, pitch and >> >> roll.However, I'm not able to use the right translation to get the >> >> object rendered. I get the x,y coordinates in pixels from the other >> >> module and I need to render the 3d model exactly at that pixel >> >> location. It turns out that the Transform type has translation and it >> >> takes the input in 3d coordinates (not sure which unit) if I try to >> >> assign the x,y coordinates to the 3d coordinates it renders somewhere >> >> else. Seems like the x,y in the translation is not the pixel 2d >> >> values, as even with a x=0.3 it deflects more than expected. >> >> >> >> Is there a way to assign the x,y 2d pixel values (as we do for >> >> Rectangle {x: 100, y:100}) to the translation so that it is rendered >> >> to the right place where it's desired. >> >> _______________________________________________ >> >> 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 mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest