1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
Olaf Bachmann <obachman@mathematik.uni-kl.de>
and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-->
<HTML>
<HEAD>
<TITLE>Crystal Space: Feature List</TITLE>
<META NAME="description" CONTENT="Crystal Space: Feature List">
<META NAME="keywords" CONTENT="Crystal Space: Feature List">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.64">
</HEAD>
<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<A NAME="SEC6"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_5.html#SEC5"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_7.html#SEC7"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_1.html#SEC1"> << </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_1.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> >> </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<HR SIZE=1>
<H2> 1.5 Feature List </H2>
<!--docid::SEC6::-->
<P>
The first feature to mention is that Crystal Space is an open source project.
It falls under the GNU copyleft license (LGPL). See section <A HREF="cs_14.html#SEC16">1.13 GNU Library General Public License</A>.
</P><P>
Crystal Space is divided into several libraries. The items in the feature
list are sorted by the library they belong to. Note that this is not a
description of how these libraries work together. Some libraries are not
even mentioned here.
</P><P>
Currently Crystal Space has the following features:
</P><P>
<DL COMPACT>
<DT><EM>System Driver</EM>
<DD>A system library that will perform system-dependent operations for your
program. This way your program is easily portable to any supported system.
It includes a good plug-in system that offers you an interface to
dynamically loaded drivers (`<TT>.so</TT>' or `<TT>.dll</TT>'), like the 3D rasterizer.
NOTE: This library as such will not be available in the 1.0 release, OS-specific
functions will remain in this library however. The most important classes will
be moving into the Tool and Utility libraries.
<DT><EM>Geometry Library</EM>
<DD>A 3D math library, including 2D and 3D vectors, matrices and polygons.
This library can be used without the rest of Crystal Space.
<P>
<DT><EM>2D Canvas / 3D Renderer</EM>
<DD>These libraries allow you to draw directly on the screen, and to use
hardware accelerated 3D drawing. They are independent from the engine and
perform only basic operations. You can actually use them if you want to
write your own engine. The libraries include:
<P>
<UL>
<LI>
Direct3D for Windows (32 bit) port.
<P>
<LI>
OpenGL support for GNU/Linux, BeOS, MacOS/9, OS/2, and Windows (32 bit).
<P>
<LI>
Drawing arbitrary sloped convex polygons.
<P>
<LI>
Perspective correct texture mapping. You can chose between accuracy
and speed (by selecting the interpolation step).
<P>
<LI>
Support for 8-bit (palette), 15/16-bit and 32-bit truecolor displays
(no support for 24-bit yet).
<P>
<LI>
Mipmapping to minimize memory strain on the texture cache and to have
nicer textures in the distance.
<P>
<LI>
The width and height of textures must be a power of two but the
texture need not be a square.
<P>
<LI>
Procedural textures. Currently the included procedural textures are plasma,
sky, water, and fire. You can also define your own procedural textures.
<P>
<LI>
It is possible to map the texture on a polygon in various ways such as via
rotation, scaling, mirroring, etc.
<P>
<LI>
Transparent and semi-transparent textures allowing for see-through
water surfaces and windows.
<P>
<LI>
Colored volumetric fog.
<P>
<LI>
Halos around lights.
</UL>
<P>
<DT><EM>3D Engine</EM>
<DD>The engine features the following:
<P>
<UL>
<LI>
True six-degrees-of-freedom (6DOF).
<P>
<LI>
Integrated landscape engine.
<P>
<LI>
Moving objects and scripts controlling the movement.
<P>
<LI>
Static colored lighting with real shadows. Lighting and shadows are
precomputed before the world is displayed. Radiosity is also supported.
<P>
<LI>
Pseudo-dynamic colored lights which cannot move but have very accurate
shadows and can change intensity/color randomly.
<P>
<LI>
Dynamic colored lighting with support for shadows (detail objects are
ignored for shadows currently).
<P>
<LI>
Support for frame and skeletal based 3D triangle mesh sprites with
level-of-detail (LOD) reduction via progressive meshes.
<P>
<LI>
Support for 2D sprites and particle systems.
<P>
<LI>
Mesh object plugin system that is used for 3D sprites, 2D sprites and
particle systems. The game developer can also write his own mesh objects
and plug them into the engine transparently.
<P>
<LI>
Portals are used for efficient and easy visibility sorting. In
addition you can optionally enable an OCTREE and/or BSP for some
sectors to allow for even more powerful world definitions.
<P>
<LI>
Additional C-buffer (coverage buffer) which can be enabled for even
better visibility culling.
<P>
<LI>
Using portals you can also create transparent and semi-transparent
mirrors.
<P>
<LI>
Alpha transparency in combination with mirrors allows simulation of
shining walls.
<P>
<LI>
You can also include gouraud shaded triangles in the world.
<P>
<LI>
Dynamic gouraud shaded sky spheres. Also support for skybox.
<P>
<LI>
Curved bezier surfaces with dynamic tessellation depending on viewer
distance.
<P>
<LI>
Support for multiple cameras and the ability to make 1st person or
3rd person cameras.
<P>
<LI>
ZIP archive format to pack the map file, the textures and all other
needed data files for one level inside one file. Crystal Space also
uses the same ZIP file to automatically add lightmap data. This
greatly speeds up the start-up of Crystal Space.
<P>
<LI>
Powerful text-based map file format allows you to easily redefine the world.
<P>
<LI>
Libraries of commonly used objects and textures are supported.
</UL>
<P>
<DT><EM>Utility Library</EM>
<DD>Much of the utility functionality in this library can be used independently
of Crystal Space. This library includes the following functionality:
<P>
<UL>
<LI>
Reading configuration (INI) files for program options.
<P>
<LI>
Reading and writing ZIP files as data files.
<P>
<LI>
Simple parser that you can use if INI files are not enough. It is used
by the engine to read map files.
<P>
<LI>
Defining an interface for shared libraries (`<TT>.so</TT>' or .DLL). This is
used by the plug-in system.
<P>
<LI>
Dynamically-sized arrays (<CODE>csVector</CODE>).
</UL>
<P>
<DT><EM>VFS</EM>
<DD>Virtual file system. See section <A HREF="cs_161.html#SEC340">7.2 Virtual File System (VFS)</A>.
<P>
<DT><EM>Tool Library</EM>
<DD>Much of the utility functionality in this library can be used independently
of Crystal Space. This library includes the following functionality:
<P>
<UL>
<LI>
Contains several functions that can help setup an application.
The most important class in this library is csInitializer which will create
everything needed to get a CS application operational.
<P>
<LI>
Support for models, procedural textures, and sprites.
<P>
<LI>
Support for collision detection.
</UL>
<P>
<DT><EM>Sound Driver / Sound Renderer</EM>
<DD>General sound system. Currently drivers exist for GNU/Linux, MacOS/9, and
Windows.
<P>
<DT><EM>Network Driver</EM>
<DD>General networking support. Currently supports socket-based networking via
TCP/IP.
<P>
<DT><EM>Scripting</EM>
<DD>Crystal Space supports scripting through the PYTHON plugin. This way
a game using Crystal Space can call PYTHON methods and PYTHON
scripts can call Crystal Space methods.
</DL>
<A NAME="Where to Get"></A>
<HR SIZE=1>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_5.html#SEC5"> < </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_7.html#SEC7"> > </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_1.html#SEC1"> << </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_1.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> >> </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<BR>
<FONT SIZE="-1">
This document was generated
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
</BODY>
</HTML>
|