After some extensive refactoring, QmlOgre is now a library, making the integration of Ogre into Qt QML scenes even easier. The library comes with the original QmlOgre sample application, adapted to work with the new library code.
Let me know in the comments what you think. More updates to the code are on the way as time permits.
Recently I’ve been checking out again how to integrate Ogre3D into a Qt application. My previous effort Cutexture can be found here, here and the code here. This was nice as a simple integration but didn’t use modern graphics systems as efficiently as it could.
Fortunately the people at Nokia (when they were still interested in Qt) did publish a demo application qmlogre here that integrates Ogre3D into a Qt Quick QML scene by having Ogre render into an OpenGL Frame Buffer Object (FBO) which is in turn added to the QML scene as a textured item. However, this demo was relying on internal Qt headers that are not supposed to be used in production projects.
With a helpful comment I found here, I was able to update the qmlogre example to no longer rely on those internal Qt headers and to build fine with the latest stable Qt 5.0.1. In the hope that others may find it useful, I’ve made the revised code available on my Github account at https://github.com/advancingu/QmlOgre
Let me know in the comments what you think.
Edit: Here is a video of the original qmlogre application.
Qt5 hosts a couple of new features to simplify working with OpenGL, with a helpful introduction given by Dr. Sean Harmer at Qt Developer Days 2012:
Unfortunately the source code to the presentations was not made available. To remedy, I’ve created a GitHub repository of the “Hello World” triangle example that is shown at the beginning of the presentation and adapted it to work with GLSL 1.30 and vanilla Qt5.
Find the code at https://github.com/advancingu/Qt5OpenGL
Thanks to a few helpful tips on the previous post about Cutexture, I have been able to significantly improve performance with the latest updates. See below a short screencast of the Google ball pool experiment website embedded into a Ogre3D texture which is shown as the User Interface.
As before, the code can be found at Github.
Today, I’d like to write about the results of a development effort which I undertook together with former co-worker Kevin Lang in our spare-time. Our goal was to create a small but fine PC game but unfortunately it never saw the light of the day. We therefore decided to release the game-independent source code of these efforts to the public as we believe we developed a novel approach to integrating Qt User Interfaces into the Ogre3D development framework.
In a nutshell, this new framework called “Cutexture” should provide developers with the following benefits over off-the-shelf User Interface solutions available for Ogre3D:
- The full range of Qt’s widgets can be used in Ogre3D, including the Webkit webbrowser component, enabling completely new ways of integrating Web content into 3D environments.
- Powerful: Qt is one of the most powerful User Interface toolkits currently available.
- Ease of development: Qt’s .ui files are supported for rapid User Interface development with Qt Designer.
- Reliable: Using the proven Qt framework, widgets are rendered into a texture instead of relying on unstable overlay techniques provided by desktop environments.
- Flexible: Possibility to extend Cutexture to use Qt widgets as textures on arbitrary Ogre objects.
- Open Source: Cutexture is available under the “MIT license”, thereby providing full source code access to the framework while allowing the development of proprietary (closed source) applications.
… when the largest German drugstore chain starts offering a Linux version of its end-user software for designing and ordering photo products such as photo books and calendars.
Screenshot of the photo application running under the KDE 4 desktop.
(For the technically inclined: The application was developed with the Qt library.)