From K-3D

Jump to: navigation, search

Game Engine Integration



The idea is to make it as simple as possible for the user to use K-3D as a content creation system for the chosen engine.


Provide content-creation support for an existing open-source game engine using K-3D. K-3D's modular structure lends itself perfectly to integration with an external realtime rendering engine, such as CrystalSpace or OGRE 3D.


Use K-3D's plugin system to provide integration with a game engine. Example plugins would include:

  • A viewport displaying its contents using the external engine.
  • Painters rendering different kinds of K-3D geometry in the new viewport.
  • Elements specific to the engine used, i.e. light sources, particle sources, materials, etc.
  • Conversion between game-engine file formats and K-3D data structures.

Guide line

Project details

The project can be divided in more plugins:

Import/Export plugins

For these plugins I have choose COLLADA, an open standard to represent 3d data (for more information visit ). The COLLADA supports all the features that modern 3-D interactive applications need and it is used by many game engine like Irrlicht and Ogre3D ( complete list at ). These plugins will be developed using Collada DOM API that provides a C++ object representation of a COLLADA XML instance document.


Engine viewport plugin

This plugin add a new perspective for embedding Ogre render windows (this will be write using Gtkmm).

Filter plugin

With this plugin new K-3D mesh datatype are converted (at runtime) into engine datatype and the rendered into engine viewport. It seems that OGRE do not support yet COLLADA runtime database so I have to converter K-3D nodes into OGRE specific nodes representation.


Light source and material support

This plugin add support for light and material into game engine viewport. These element will be converted (using filter plugins) into compatible Ogre3D format and then rendered into viewport.

Agenda for this summer

14 March - 30 March
  • Explain project details and discuss about it.
  • Complete idea project by learning about tecnologies that will be applicated at it.
  • Set up system (download source code from svn, setting IDE, and more).
31 March - 26 May
  • Read documentation of:
- Ogre3D (documentation and tutorial at wiki page
- Collada (file format, features, wiki page DONE
- K3d (source code, wiki page) 
27 May - 1 June
  • Explain analisys and design orientation about plugins in wiki pages
2 June - 15 August
  • Implement plugins int his order:
 - build a viewport plugin and test it
 - build a filter plugin and test it 
 - build a support for light, material plugin and test it
 - build a import plugin for Collada files and test it
 - build a export plugin for Collada files and test it

I have 3 exams at June. I do not have any other occupation in the time between July and October so I have time to concentrate on k3d fully,

Work in progress

Building a plugin for importing COLLADA polygonal mesh. DONE ->TESTING link

Building a viewport for OGRE3D. DONE -> TESTING link

About me

Hi, I am a 21 year old student of Informatics at Department of Pure and Applied Mathematics, University of Padova (Italy). I have experience in:

  • programming:
   C/C++ (5 years) with wxwidgets and Qt4 libraries
   Java (5 years) with graphics and networks libraries
  • informatics algoritms and data structures
  • operative systems (Unix ,Windows)
  • Artificial Intelligence
  • Graphics with OpenGL
  • database management
  • networks