What is the difference between Canvas3D and View3D in Qt Quick?
-
Hi everyone,
I'm currently working on a Qt Quick project that involves 3D rendering, and I'm trying to understand the differences between Canvas3D and View3D.
From what I've gathered so far:
Canvas3D seems to have been used in earlier versions of Qt (possibly based on WebGL-style rendering).
View3D appears to be the newer approach for integrating 3D content, especially in Qt 6, with support for scene graph and high-level QML components.
I'm a bit confused about when and why one should be used over the other. Could someone help clarify:
The core differences between the two?
Which one is recommended for current Qt versions?
Any limitations or use cases where one is preferred over the other?
-
Hi everyone,
I'm currently working on a Qt Quick project that involves 3D rendering, and I'm trying to understand the differences between Canvas3D and View3D.
From what I've gathered so far:
Canvas3D seems to have been used in earlier versions of Qt (possibly based on WebGL-style rendering).
View3D appears to be the newer approach for integrating 3D content, especially in Qt 6, with support for scene graph and high-level QML components.
I'm a bit confused about when and why one should be used over the other. Could someone help clarify:
The core differences between the two?
Which one is recommended for current Qt versions?
Any limitations or use cases where one is preferred over the other?
@SuhasKrishanamurthy said in What is the difference between Canvas3D and View3D in Qt Quick?:
I'm a bit confused about when and why one should be used over the other.
Qt Canvas3D was deprecated long ago, and has been removed from Qt 6: https://bugreports.qt.io/browse/QTBUG-70510
So, you should use the Qt Quick 3D module (which contains View3D) because it's the one that is actually available and supported in Qt 6. Here is an example: https://doc.qt.io/qt-6/qtquick3d-view3d-example.html
Note: Qt Quick 3D is only available under the GPL and Commercial licenses. It is not available under LGPL.