Technical Details

What is the primary development platform for K-3D?

K-3D is primarily developed under Linux, but K-3D is portable to several other platforms.

What platforms are supported by K-3D ?

K-3D is designed to be portable, and therefore all platforms are supported. However, at this time, K-3D is built and tested on GNU/Linux and Microsoft Windows. If you would like K-3D ported to your platform please contribute patches to the maintainers or author.

What are the hardware requirements for running K-3D ?

K-3D will run on any computer, but a hardware accelerated OpenGL graphic board is highly recommanded.

What language is K-3D written in ?

K-3D is written in ANSI C++, with a pseudo- client/server architecture. All of the major functionality is broken down into libraries of objects that are loaded into the application at run-time. For example, a light in a 3D scene is an object that is implemented in the corelib library. As of this writing, there are six libraries: bitmaplib, corelib, geometrylib, sfxlib, toollib, and videolib. Careful consideration has gone into the design of a system that supports run-time integration of libraries from third-parties. This is important as it gives non-technical users the ability to install new or updated features without recompiling. The interfaces between objects are designed so that objects can be written using programming languages other than C++.

K-3D objects are written using a (very small) subset of the Component Object Model, defined in the SDPTYPES library.

Which X widget set do you use for the user interface ?

The K-3D user interface is built on top of GTK+, the popular X widget set used by the GIMP and GNOME projects, among many others. By building on top of GTK+, K-3D can be compiled without source changes for both GNU/Linux and Win32.

K-3D makes heavy use of the SDPGTK library, which wraps GTK+ using C++ classes. In addition to making the code more object-oriented and readable, SDPGTK has the ability to load XML documents in GTKML format to create user interfaces. The GTKML files act as user interface templates, and are easily edited, allowing fast UI creation, along with end-user customization and internationalization.

What API does K-3D use for displaying 3D graphics ?

K-3D makes extensive use of OpenGL/Mesa in the user interface. This allows the program to easily benefit from hardware acceleration on the end-user's platform. K-3D connects to the OpenGL API through the SDPGL library, which wraps the OpenGL functions so that they can be traced. When SDPGL_TRACE is defined at build time, all OpenGL calls will be logged to stdout for analysis.

Where can I find more information about K-3D system architecture?

Please consult the K-3D Developer Guide for more information on system architecture, writing plugins and how to contribute to the project.

<< Previous 
Table of Content
  Next >>