Crystal Space
Encyclopedia
Crystal Space is a framework for developing 3D
applications written in C++
by Jorrit Tyberghein and others. The first public release was on August 26, 1997. It is typically used as a game engine
but the framework is more general and can be used for any kind of 3D visualization. It is very portable and runs on Microsoft Windows
, Linux
, UNIX
, and Mac OS X
. It is also free software
, licensed under GNU Lesser General Public License
, and was SourceForge.net
's Project of the Month for February 2003.
It can optionally use OpenGL
(on all platforms), SDL
(all SDL platforms), X11 (Unix or Linux) and SVGALib
(Linux). It can also optionally use assembler routines using NASM
and MMX.
use the plugins, such as the OpenGL 3D renderer, by registering them via Crystal Space's Shared Class Facility (SCF).
and Bullet
.
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...
applications written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
by Jorrit Tyberghein and others. The first public release was on August 26, 1997. It is typically used as a game engine
Game engine
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...
but the framework is more general and can be used for any kind of 3D visualization. It is very portable and runs on Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
, and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
. It is also free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
, licensed under GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
, and was SourceForge.net
SourceForge.net
SourceForge is a web-based source code repository. It acts as a centralized location for software developers to control and manage open source software development. The website runs a version of SourceForge Enterprise Edition, forked from the last open-source version available...
's Project of the Month for February 2003.
It can optionally use OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
(on all platforms), SDL
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....
(all SDL platforms), X11 (Unix or Linux) and SVGALib
SVGALib
SVGAlib is an open-source low-level graphics library which runs on Linux and FreeBSD and allows programs to change video mode and display full-screen graphics. Some popular games like Quake and Doom used it in their original releases....
(Linux). It can also optionally use assembler routines using NASM
NASM (computer program)
The Netwide Assembler is an assembler and disassembler for the Intel x86 architecture. It can be used to write 16-bit, 32-bit and 64-bit programs. NASM is considered to be one of the most popular assemblers for Linux....
and MMX.
Engine design
Crystal Space is programmed in object oriented C++. It is very modularly built with a number of more or less independent plugins. The client programsClient (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
use the plugins, such as the OpenGL 3D renderer, by registering them via Crystal Space's Shared Class Facility (SCF).
Features
Crystal Space has modules for 2D and 3D graphics, sound, collision detection and physics through ODEOpen Dynamics Engine
The Open Dynamics Engine is a physics engine in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine...
and Bullet
Bullet (software)
Bullet is an open source physics engine featuring 3D collision detection, soft body dynamics, and rigid body dynamics. It is used in games, and in visual effects in movies. The Bullet physics library is published under the zlib license. Erwin Coumans, its main author, worked for Sony Computer...
.
- Graphics:
- OpenGLOpenGLOpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
rendering - Supports hardware accelerationHardware accelerationIn computing, Hardware acceleration is the use of computer hardware to perform some function faster than is possible in software running on the general-purpose CPU...
from all major card vendors - Allows use of shaderShaderIn the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...
s - Library of common shaders like normal mappingNormal mappingIn 3D computer graphics, normal mapping, or "Dot3 bump mapping", is a technique used for faking the lighting of bumps and dents. It is used to add details without using more polygons. A common use of this technique is to greatly enhance the appearance and details of a low polygon model by...
, parallax mappingParallax mappingParallax mapping is an enhancement of the bump mapping or normal mapping techniques applied to textures in 3D rendering applications such as video games...
and hardware skinning - Supports software renderingSoftware renderingIn the context of rendering , software rendering refers to a rendering process that is unaided by any specialized graphics hardware, such as a graphics card. The rendering takes place entirely in the CPU...
with limited features
- OpenGL
- Mesh objects:
- Plugin-based mesh system
- Triangle-based meshes with frame and bone animation support
- Collision detection and dynamics:
- ODEOpen Dynamics EngineThe Open Dynamics Engine is a physics engine in C/C++. Its two main components are a rigid body dynamics simulation engine and a collision detection engine...
and BulletBullet (software)Bullet is an open source physics engine featuring 3D collision detection, soft body dynamics, and rigid body dynamics. It is used in games, and in visual effects in movies. The Bullet physics library is published under the zlib license. Erwin Coumans, its main author, worked for Sony Computer...
dynamics - Simplified collision detection when full dynamic simulation is not needed
- ODE