File: cs_277.html

package info (click to toggle)
crystalspace 0.94-20020412-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 62,276 kB
  • ctags: 52,843
  • sloc: cpp: 274,783; ansic: 6,608; perl: 6,276; objc: 3,952; asm: 2,942; python: 2,354; php: 542; pascal: 530; sh: 430; makefile: 370; awk: 193
file content (275 lines) | stat: -rw-r--r-- 12,102 bytes parent folder | download
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
<!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: Glossary</TITLE>

<META NAME="description" CONTENT="Crystal Space: Glossary">
<META NAME="keywords" CONTENT="Crystal Space: Glossary">
<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="SEC648"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_276.html#SEC647"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_278.html#SEC649"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_271.html#SEC637"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_278.html#SEC649"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <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>
<H1> A. Glossary </H1>
<!--docid::SEC648::-->
<P>

This is a short glossary of terminology used throughout the documentation as
well as in discussions of 3D graphics.
</P><P>

<DL COMPACT>
<DT><EM>3D Renderer</EM>
<DD>The 3D renderer plugin in Crystal Space is responsible for rendering
3D objects (polygons) on the canvas. We have several renderers but the two
most common are the software and OpenGL renderers.
<P>

<DT><EM>3D Sprite</EM>
<DD>A 3D Sprite in Crystal Space is a mesh object based on a triangle mesh.
It is often used for actors. The word 'Sprite' may be confusing because a
3D Sprite is really a full 3D object. 3D Sprites support skeletal and
frame based animation.
<P>

<DT><EM>Camera Space</EM>
<DD>Before viewing objects and rooms are transformed from world to camera space.
This means that the position of the camera is set at (0,0,0); the positive z
direction points away from the eyes, the y direction is up and the x
direction is right.
<P>

<DT><EM>Canvas</EM>
<DD>A canvas is a plugin which is responsible for managing a window for
Crystal Space. On operating systems that don't support windows the canvas
will represent the screen. The 3D renderer will use a canvas to render on.
<P>

<DT><EM>Detail Texture</EM>
<DD>A detail texture is a texture that is blended on top of another texture
so that the texture gets more detail. Crystal Space supports this by
allowing several detail layers on top of the base texture in a material.
<P>

<DT><EM>Event Queue</EM>
<DD>Crystal Space is an event-driven framework. So a Crystal Space application
will also be event driven. The event queue manages the event system and
sends events to listeners. Every module or plugin that implements
<CODE>iEventHandler</CODE> can register itself with the event queue so it gets
notified when certain events happen. See also
with <CODE>csInitializer::CreateEventQueue()</CODE> or
<CODE>csInitializer::CreateEnvironment()</CODE>.
<P>

<DT><EM>Haze Mesh Object</EM>
<DD>A haze mesh object is a bit like volumetric light. It represents a 3D
volume on which a texture is applied in a fuzzy way.
<P>

<DT><EM>Light-Map Space</EM>
<DD>Two-dimensional (l,m) coordinate-system corresponding to some point on a
light-map.  Light-map space is closely related to texture space.
<P>

<DT><EM>Material</EM>
<DD>A material represents how some object or polygon looks. In the most common
case a material is just a texture. But a material can contain additional
information like detail textures (textures that are blended on top of
the base texture). In future materials will be able to do much more.
<P>

<DT><EM>Mesh Factory</EM>
<DD>A mesh factory is an object from which you can create mesh objects.
See section <A HREF="cs_201.html#SEC452">7.8 Mesh Object Plug-In System</A>.
<P>

<DT><EM>Mesh Object</EM>
<DD>A mesh object represents geometry in Crystal Space. The Crystal Space engine
is very modular. The engine itself does not know how to render. It only
knows about mesh objects. Every mesh object is responsible for rendering
what it represents (using the 3D renderer). Crystal Space supports several
mesh objects: things, 3D sprites, 2D sprites, particle systems, haze,
terrain engine, metaballs, ...
<P>

<DT><EM>Object Registry</EM>
<DD>The object registry (represented by the `<SAMP>iObjectRegistry</SAMP>' interface
is the central repository for all objects in Crystal Space. Everything in
Crystal Space will use the object registry to get the pointer to the objects
it is interested in. See also:
<P>

<CODE>csInitializer::CreateObjectRegistry()</CODE><BR>
<CODE>csInitializer::CreateEnvironment()</CODE>
</P><P>

<DT><EM>Object Space</EM>
<DD>Every object or room is defined with its own local 3D coordinate system
typically centered around (0,0,0).
<P>

<DT><EM>Particle System</EM>
<DD>A particle system is another kind of mesh object. Crystal Space supports
several particle systems (snow, rain, fire, explosion, emit, ...).
<P>

<DT><EM>Plugin</EM>
<DD>A plugin is a number of classes that can be loaded dynamically into
a running Crystal Space application. A plugin is represented by a dynamic
library in a format suitable for the host operating system. On Unix systems
this is a .so file and on Windows systems this is a .dll file.
<P>

<DT><EM>Plugin Manager</EM>
<DD>The plugin manager is responsible for loading and unloading plugins. A
plugin is a shared library of functions that can be loaded dynamically
into a running Crystal Space application. On Unix a plugin has the `<TT>.so</TT>'
extension and on Windows the `<TT>.dll</TT>' extension is used. Almost everything
in the Crystal Space framework is itself a plugin. So the plugin manager
is an important object. See also
<CODE>csInitializer::CreatePluginManager()</CODE> or
<CODE>csInitializer::CreateEnvironment()</CODE>.
<P>

<DT><EM>Portal</EM>
<DD>A Portal is one of the polygons of a thing mesh object which will not be
texture mapped (unless it has a semi-transparent texture).  Instead another
sector (visible through that portal) will be drawn.  A portal may
even point back into the the sector in which it is contained.  This is
useful for portals which act as mirrors. A more general form of a mirror
is a space warping portal. This way a portal can go to any place in the
world.
<P>

<DT><EM>Procedural Texture</EM>
<DD>A procedural texture is a special texture that has a 3D renderer
associated with it. This means that you can change the image on the
procedural texture by drawing on it. Since the procedural texture
has a full 3D renderer associated with it you can even use the 3D
engine to render on a texture. Procedural textures can be used on
all objects in Crystal Space that can use textures.
<P>

<DT><EM>Reporter</EM>
<DD>The reporter is a plugin in Crystal Space that listens to messages.
It supports the notion of errors, warnings, and notification messages.
All components in Crystal Space use the reporter to report about unusual
situations. An application can be aware of the reporter in two ways:
it can either query the messages at regular intervals or else it can
install a <EM>reporter listener</EM>. There is also a standard reporter
listener plugin in Crystal Space which will use the console to output
notification messages and use other means to report errors.
<P>

<DT><EM>Reporter Listener</EM>
<DD>A reporter listener in general is an entity that can register itself
with a reporter to listen to message that arrive on that reporter.
There is also a standard reporter listener plugin that you can use
so you don't need to write your own reporter listener.
<P>

<DT><EM>SCF</EM>
<DD>The shared class facility.  A mechanism for managing plugin modules and
treating objects in a uniform manner. Also manages reference counting.
See section <A HREF="cs_134.html#SEC297">6.4 Shared Class Facility (SCF)</A>.
<P>

<DT><EM>Screen Space</EM>
<DD>Two-dimensional coordinate-system corresponding to physical screen coordinates.
Screen space is perspective corrected camera space.
<P>

<DT><EM>Sector</EM>
<DD>A sector is simply a container of geometry. It contains several mesh objects
which will represent the geometry of the sector. A common mesh object is
the thing mesh object which is usually used to put walls around a sector
(that way the sector represents a room). Other mesh objects like 3d sprites
can be used for actors.
<P>

<DT><EM>Texture Space</EM>
<DD>Two-dimensional (u,v) coordinate-system corresponding to some point on a
texture.  Texture space is given by a transformation matrix and vector going
from object space to texture space.
<P>

<DT><EM>Thing Mesh Object</EM>
<DD>A mesh object which is often used to represent walls of a sector but can
in general be used to represent many more kinds of objects.
<P>

<DT><EM>Virtual Clock</EM>
<DD>Most Crystal Space applications will be time-based. The virtual clock
supports the notion of CURRENT TIME and ELAPSED TIME. It is
called a virtual clock because it doesn't necessarily have to correspond
with real time. A game can be paused for example. Note that a well-behaved
game should always take elapsed time (between two frames) into consideration
for calculating what could have happened in that time. This is important
especially for physics calculations and also for speed of moving objects.
You want an object moving at some speed to move with the same speed on a
system with low framerates compared to a system with high framerates.
See also <CODE>csInitializer::CreateVirtualClock()</CODE> or
<CODE>csInitializer::CreateEnvironment()</CODE>.
<P>

<DT><EM>World Space</EM>
<DD>Three-dimensional coordinate-system corresponding to the world in which all
objects live.  Mesh objects are mapped from object space to world space via a
matrix transformation.
<P>

<DT><EM>VFS</EM>
<DD>The virtual file system.  A mechanism for unifying filesystem access between
various platforms. Using this a Crystal Space application can read and write
transparently from ZIP archives. See section <A HREF="cs_161.html#SEC340">7.2 Virtual File System (VFS)</A>.
</DL>
<P>

<A NAME="FAQ"></A>
<HR SIZE=1>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_276.html#SEC647"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_278.html#SEC649"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_271.html#SEC637"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_278.html#SEC649"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <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>