[Development] Adding new third party component three.js to Qt?

Keränen Pasi pasi.keranen at theqtcompany.com
Wed Jan 7 07:03:14 CET 2015


Hi,

I¹d like to open the discussion on including the three library as part of
Qt 5.6 and onwards. Mainly because this would give our users a better
experience if we¹d bundle the right, tested version of Three.js together
with the Qt version it was tested on.

I¹ve been pushing the Qt Canvas3D component onwards and timewise it should
be landing to Qt 5.5 release. The WebGL-like API (non-conformance tested)
it offers is very low level and most users will not like to work on that
level. To that end I¹ve ported the WebGL based Three.js scenegraph library
available at http://threejs.org on top of Canvas3D. You can find the
latest version from master branch at https://github.com/tronlec/three.js

The reason for picking this particular library over others are:
* It¹s one of the most active WebGL scene graph projects out there.
* It¹s well done, with examples, API documentation etc.
* It has excellent support form community in the form of tutorials,
websites, discussion forums etc.
* It is available under permissive MIT license:
https://github.com/mrdoob/three.js/blob/master/LICENSE

In Qt 5.5 we¹ll include a few examples that will have this library as part
of the examples.

The library will for now at least need some porting effort to make it run
on top of Canvas3D as there are some HTML depencencies that need to be
handled, plus V4VM has a few quirks that need to be accounted for.
Hopefully some of the V4VM quirks are bugs and will be fixed in due time,
but the HTML dependencies do remain. And my current experience with
graphics APIs is that you want to test the whole stack together. If we
e.g. add support for new extensions in Canvas3D, that can activate new
codepaths in Three.js that again need testing and possibly new Qt specific
delta must be added to the three.js for those parts.


Comments? Thoughts?

Regards,
Pasi Keränen
Software Specialist
The Qt Company
http://www.qt.io





More information about the Development mailing list