User:Barraemme

From K-3D

Jump to: navigation, search

Game Engine Integration

Introduction

Idea


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.

Goal


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.

Deliverables


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 http://www.collada.org/mediawiki/index.php/COLLADA ). 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 http://www.collada.org/mediawiki/index.php/Portal:Products_directory ). These plugins will be developed using Collada DOM API that provides a C++ object representation of a COLLADA XML instance document.

Image:export-import.png

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.

Image:K-3d_ogre_scene_filter.png

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 http://www.ogre3d.org/wiki/index.php/Main_Page)
- Collada (file format, features, wiki page http://www.collada.org/mediawiki/index.php/Main_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