• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

data/H07-May-2022-71,83171,811

Makefile.w32H A D16-May-20058.6 KiB335161

Makefile.x11H A D12-Sep-20057.7 KiB327156

READMEH A D12-Jun-200513.5 KiB363285

appTexturedPrims.cH A D08-Jun-200514.3 KiB548348

autoTmap.cH A D08-Jun-20059.1 KiB367233

barrier.cH A D19-Aug-20025.6 KiB18666

barrier.hH A D19-Aug-20022.9 KiB9826

clipper.cH A D12-Jun-200517.6 KiB678370

clrball.cH A D08-Jun-200510.7 KiB398191

cones.cH A D08-Jun-200515.9 KiB601263

configureH A D12-Sep-200516.5 KiB865478

dyntmap.cH A D08-Jun-200510 KiB409238

elev-2vu.cH A D08-Jun-200515.8 KiB625333

elev.cH A D08-Jun-200518.3 KiB712362

elevImage.cH A D08-Jun-200513.3 KiB526327

extensions.cH A D08-Jun-20056.9 KiB290148

fogtest.cH A D26-Jun-200523.8 KiB1,025672

fpsVis3d.cH A D08-Jun-200514.9 KiB603344

glxinfo.cH A D08-Jun-20054.6 KiB15758

imgMirror.cH A D04-Jul-20059.7 KiB366207

indexedPrims2D.cH A D08-Jun-200517.7 KiB700485

isodrv-mt.cH A D08-Jun-200519 KiB722388

isodrv.cH A D08-Jun-200516.3 KiB607301

jack.cH A D26-Jun-200512.7 KiB481230

jballs.cH A D08-Jun-200513.5 KiB521251

keyfunc.cH A D08-Jun-20057.3 KiB298154

libdio.cH A D08-Jun-200517.4 KiB872620

libdio.hH A D08-Jun-20052.6 KiB9627

lines2d.cH A D08-Jun-200514.4 KiB548324

makeincludeH A D03-May-2022509 2322

markers2d.cH A D08-Jun-200511.4 KiB456265

multiTexture2D.cH A D08-Jun-200515.5 KiB556348

offscreen.cH A D04-Jul-200515.5 KiB616336

orderTest.cH A D08-Jun-200512.9 KiB548325

pdb.cH A D08-Jun-200514.2 KiB582297

pdbwork.cH A D08-Jun-200518.3 KiB862623

pickListTest.cH A D08-Jun-200511.3 KiB453254

pickTest.cH A D08-Jun-200510.7 KiB430238

pntcld.cH A D08-Jun-200513 KiB530286

procmode.hH A D08-Jun-20053.4 KiB934

rm2screen.cH A D08-Jun-200513.9 KiB530321

skeleton.cH A D08-Jun-20056.5 KiB260119

spotlight.cH A D08-Jun-200516.8 KiB639389

spriteTest.cH A D08-Jun-200510.7 KiB433243

strands.cH A D12-Jun-200516.9 KiB719486

switchtest.cH A D08-Jun-200513.3 KiB491251

tcube.cH A D08-Jun-200516.4 KiB697401

text2d.cH A D08-Jun-200511.4 KiB430233

textureTest.cH A D08-Jun-200512.1 KiB503305

tfly.cH A D26-Jun-200536.7 KiB1,497928

tmap2d.cH A D08-Jun-200516.8 KiB708401

trans2d.cH A D08-Jun-200519.7 KiB865481

vector3d.cH A D08-Jun-200517 KiB683398

vis2d.cH A D08-Jun-200515.4 KiB668387

vis3d.cH A D08-Jun-200522.2 KiB889555

vrend.cH A D08-Aug-200514.8 KiB558281

vslicer.cH A D08-Jun-200519.6 KiB777420

README

1# $Id: README,v 1.11 2005/06/12 21:30:52 wes Exp $
2# $Revision: 1.11 $
3# $Log: README,v $
4# Revision 1.11  2005/06/12 21:30:52  wes
5# Updates for 1.6.0-alpha2.
6#
7# Revision 1.10  2004/02/23 03:00:56  wes
8# *** empty log message ***
9#
10# Revision 1.9  2004/01/17 03:57:59  wes
11# 1.5.1 beta updates..more to come.
12#
13# Revision 1.8  2002/09/22 22:58:34  wes
14# Updates for v1.4.3 distribution.
15#
16# Revision 1.7  2002/06/17 00:49:56  wes
17# Updated copyright line.
18#
19# Revision 1.6  2001/07/15 23:00:41  wes
20# Updated for v1.4.0-FCS.
21#
22# Revision 1.5  2001/06/03 20:16:09  wes
23# Spotlight demo, JPEG stuff.
24#
25# Revision 1.4  2001/03/31 16:56:53  wes
26# Update date, current arch.
27#
28# Revision 1.3  2001/03/31 16:55:18  wes
29# Added procmode.h, which defines an RMpipe processing mode used in
30# most demonstration programs. The default processing mode is
31# RM_PIPE_MULTISTAGE_VIEW_PARALLEL.
32#
33# Revision 1.2  2000/12/02 17:24:32  wes
34# Version 1.4.0-alpha-1 checkin. See the RELEASENOTES file for
35# a summary of changes. With this checkin, these demo programs
36# are no longer compatible with versions of the OpenRM API that
37# are pre-1.4.0.
38#
39# Revision 1.1.1.1  2000/02/28 21:55:30  wes
40# OpenRM 1.2 Release
41#
42
43Current Version: OpenRM 1.6.0-alpha2, June 2005
44
45Overview
46--------
47
48OpenRM Scene Graph is set of tools and utilities that implement a
49high performance, flexible and extendible scene graph API. Underneath
50OpenRM, OpenGL(tm) is used as the graphics platform for rendering,
51so OpenRM is highly portable and can deliver blazing rendering speeds.
52OpenRM can be used on any platform that has OpenGL, and has been
53built and tested on:
54   x86 Linux (s/w via Mesa, h/w via Mesa+native drivers, eg. nVidia)
55   FreeBSD
56   Irix
57   Solaris
58   Win32 (95/98/ME/NT/2K/XP)
59
60OpenRM is a derivative work of RM Scene Graph (tm), a commercial
61scene graph product from R3vis Corporation. Late in 1999, R3vis announced
62the release of OpenRM into the Open Source community, with the
63OpenRM debut occuring on 1 March 2000. R3vis continues to maintain
64and develop RM Scene Graph, which contains additional features not
65present in OpenRM. R3vis placed OpenRM into the Open Source community
66in order to promote graphics technology, with sensitivity towards
67the high performance research and scientific community, where performance
68and economics are important.
69
70Why should you use OpenRM, rather than a commercial scene graph API?
71There are four reasons. First, the price is right. Second, inside
72OpenRM, you'll find technology and a design that is superior in many
73respects (but not all) to what is available in the commercial market.
74Third, you get source code. Fourth, OpenRM has a bright future, with
75support from leading research institutions and universities.
76
77Why should you use OpenRM rather than some other Open Source scene
78graph API? This question is more difficult, since there are several
79good ones out there. It depends upon your application, ultimately.
80OpenRM doesn't impose an event processing model on you: you can use
81the rmaux library for event management, or you can use your own or
82someone else's. OpenRM's focus is upon a high performance scene graph
83model, period. Unfortunately, there is no "scene graph standard", so
84there will continue to be a proliferation of scene graph products
85and projects floating around, each with their own flavor and
86emphasis. OpenRM is implemented as a high performance, and general
87purpose scene graph API. Other Open Source scene graph implementations
88tend to focus on narrow application domains, such as first-person
89shooter game engines. Find one that suits your needs and use it.
90
91
92Licensing
93---------
94
95OpenRM is being distributed under the terms of the LGPL license.
96See the LICENSE.html file included with the distribution; it contains
97the text of the LGPL license in HTML form, and was snarfed from
98the GNU.ORG website.
99
100
101Documentation
102-------------
103
104Scene graph APIs can be complicated critters. There are three forms of
105documentation available with this project. First is the code itself.
106Study the demonstration programs. Second, there is a csh script in the
107rm160/doc directory you can be run to generate HTML pages
108containing "man page" style documentation for the subroutines in
109OpenRM. Those derived HTML pages will be posted on the OpenRM.sourceforge.net
110website for your convenience, and updated with new code releases.
111Third, there will be links to release notes and such from the
112OpenRM website.
113
114Another alternative form of documentation is a lengthy tome called the
115RM Programming Guide that may be purchased from the R3vis website.
116Since OpenRM is an Open Source project, we have to make a few bucks
117somehow. We have put a lot of effort into the RM Programming Guide, so
118it is of high quality and well worth the low purchase price.
119
120OpenGL documentation is available from a number of sources. We suggest
121the OpenGL Red and Blue books, published by Addison-Wesley. There are
122a number of other sources of OpenGL information, including www.opengl.org.
123
124The OpenRM project is not intended to provide support for OpenGL. Those
125of you working on h/w accelerated Linux projects can appreciate the
126issues involved.
127
128
129Requirements
130------------
131
132There are two requirements for building OpenRM: you need a C compiler
133and you need OpenGL. That's it.
134
135On our Linux systems, we use Mesa (www.mesa3d.org) for OpenGL as well
136as nvidia-accelerated workstations.
137
138On Win32, check your documentation for OpenGL. We use MSVC++ 6.0
139which includes the OpenGL headers and libs as part of the
140distribution. Typically, we build on NT boxes - those executables
141run on all other Win32 platforms.
142
143
144Installation of OpenRM
145----------------------
146
147Unix:
148
1490. Unpack the distribution into some directory, like /home/rmdev/rm151,
150   we'll now call that directory $RM for brevity (you don't need an
151   environment variable):
152   % cd /home/rmdev
153   % gunzip -dc <OpenRM-tarball-filename> | tar xvf -
154
1551. Examine $RM/make.cfg:
156   - (Note - you shouldn't have to modify make.cfg)
157   - Find your target (linux, linux-debug, irix6-n32, etc.)
158   - Make sure all *INC lines are OK. E.g. does GLINC point to
159     the location of OpenGL/include on your machine?
160   - Make sure all *LIB* defines have valid paths for your machine.
161
162   For solaris & Irix, you probably won't have to make any changes.
163   For Linux & Win32, you will probably need to make changes.
164
1652. Build:
166   - from $RM, type:
167     % make <target>        (where target is "linux", "solaris-debug", etc)
168
1693. All done?
170   - make sure there are 4 libraries in $RM/lib: librm.*, librmv.*,
171     librmaux.* and librmi*.
172
173Win32:
174Same steps as Unix, execpt/additionally:
175
1760. Grab, install and configure for use the Posix threads for Win32
177   package (see below). OpenRM uses Posix threads and related
178   mechanisms in order to implement a high performance, multistage
179   and multithreaded rendering engine.
180
1811. Use Winzip (www.winzip.com) to unpack the OpenRM tarball.
182
1832. The pathnames in $RM/make.cfg can be tricky..did you install your
184   compiler to C:\Program Files\...? If so, good luck. We put our
185   compilers in places where there are no spaces in the pathnames.
186
1873. Build -
188   - from $RM, type:
189    % nmake win-32-static
190
191   Note: if you're using MSVC++, be sure to run the vcvars32.bat script
192   before building OpenRM, otherwise nmake will fail.
193
194   Note 2: win-32-static builds static libs, win-32-dynamic builds DLLs.
195
196Installation of Posix Threads for Win32
197---------------------------------------
198
199Starting with OpenRM v1.4.0, OpenRM *requires* an implementation
200of Posix threads. For Win32 platforms, there is a freely available
201version available (all Unix variants we have tested provide some
202sort of native implementation of pthreads). We have used this version
203extensively during development and testing, and are quite happy with
204the results.
205
206Installation and configuration is straightforward.
207
2080. Grab the distribution (pre-built DLLs, headers and sources) from:
209	http://sources.redhat.com/pthreads-win32/
210   If sources.redhat.com is busy, you can grab a copy from the
211   R3vis website at:
212	http://www.r3vis.com/sourceForgeMirror/pthreads-2001-06-06.exe
213
2141. Unpack the distribution. In our development, we unpacked the
215   distribution into a directory called C:\pthreads-win32
216
2172. MSVC++ users - modify your VCVARS32.BAT file to include
218   c:\pthreads-win32\DLL in the PATH. This is needed in order for
219   the linker and runtime loader to find the pthreads-win32 DLLs.
220
221   There are actually many different ways to "get DLLs into your
222   path." We prefer this way because it requires the least amount
223   of effort.
224
225Installation of JPEG
226--------------------
227
228New in OpenRM v1.4.0, OpenRM includes support for raster
229image input and output (PPM & JPEG). While PPM support is completely
230native, JPEG support in OpenRM requires that you have version 6b
231of the JPEG library and header files installed on your build machine.
232Some systems (SGIs, and most Linux systems) include these headers
233and libs as part of the system, while other platforms (Solaris, Win32)
234do not.
235
236To obtain the source code for the JPEG library, go to www.ijg.org
237and follow the links to download the source code. In our experience,
238it was a fairly painless process to download and build.
239
240On Unix systems, just run the ./configure script in the unpack
241directory, then type "make."
242
243On Win32 systems with MSVC++, in the jpeg-6b unpack directory,
244copy the file jconfig.vc to jconfig.h, then type nmake to build
245the library.
246
247The RMDEMO configure script adds a new parameter that is used to
248specify the location of the JPEG distribution. Use the
249"-jpeg=/dir/to/jpeg-stuff" flag to specify a location to the
250JPEG distribution on your build machine.  We make the
251following assumptions inside the makefiles: (1) that if you are
252building the libs from the jpeg-6b src distribution, that the
253headers and resulting libjpeg.a (or libjpeg.lib on Win32) live
254in the jpeg-6b directory, or (2) that if your build machine
255includes JPEG headers and libs as part of the system, that
256headers and libs are in separate directories, such as /usr/include
257and /usr/lib.
258
259Note that the RMDEMO configure script is only for Unix-based
260systems. On Win32, you will have to swim through the Makefile.w32
261file to update the path to the JPEG libs and hdrs (look at the
262comments inside Makefile.w32).
263
264By default, the OpenRM distribution builds to include support
265for JPEG i/o. Therefore, by default, the RMDEMO programs will not
266link unless you have the JPEG headers and libs on your build machine.
267If, for some reason, you wish to exclude JPEG support from OpenRM
268(perhaps so that you can avoid the hassle of downloading and
269building the JPEG library), you can quickly disable all support in
270OpenRM for JPEG by modifying the file $RM/include/rmi/rmi.h
271and changing RM_JPEG from 1 (one) to 0 (zero) and rebuilding the
272librmi.a/.so/.lib libraries.
273
274
275Installation & Building the Demo Programs
276-----------------------------------------
277
278First, make sure that you have OpenRM installed and built. In the discussion
279that follows, we'll call the OpenRM home $RM, and we'll call the directoy
280where you've unpacked the OpenRM Demo Programs $RMDEMO.
281
282Unix/Win32:
283
2840. Unpack the RMDEMO distribution.
285
286   Win32: use Winzip (www.winzip.com)
287   Unix: gunzip -dc <OpenRM Demo Program Tarball filename> | tar xvf -
288
2891.a Configure: (Unix only) Run the configure script
290    This isn't GNU's autoconf thing, this is home brew. The $RMDEMO/configure
291    script needs to know 3 things:
292    a. Where is OpenRM installed?
293    b. Where is OpenGL installed?
294    c. Where is X11?
295
296    in addition, the following two parameters might be useful:
297    d. What level of optimization to use? (eg, -g, -O3, etc.)
298    e. Which flavor of Irix to use? (eg, 32, n32 or 64)
299
300    Specify it like this:
301    ./configure -rm=/path/to/openrm -opengl=/path/to/opengl \
302        -x11=/path/to/x11
303
304    X11: You shouldn't have to specify anything for -x11, configure has pretty
305    good defaults for that.
306    OpenGL: Mesa users will point to the root directory of the Mesa install.
307       Otherwise (on vendor-supplied OpenGL), configure has good defaults for
308       the "supported" architectures.
309    OpenRM: you'll probably have to specify something for this parameter.
310
311    Running "configure -foo" will print something helpful.
312
313    Note: the parser inside this script is brain-dead. Don't embed spaces
314    in the arguments. E.g.,
315	-rm=/tmp/foo   is good, while
316	-rm = /tmp/foo is bad.
317
3181.b Configure (Win32)
319    Sorry, but you have to swim in Makefile.w32. It's not that bad, you
320    just need to provide pathnames for three values:
321	(a) MSLIBROOT is the location of the development libaries,
322	(b) RMROOT is the location of the $RM libraries (librm.lib, etc.)
323	(c) PTHREADSROOT is the location of the pthreads-win32 installation.
324	(d) JPEGHOME is the location of the JPEG 6b headers and libraries.
325
3262. Build the demo programs.
327
328   Unix: make -f Makefile.x11
329   Win32: nmake /f Makefile.w32
330
3313. Run the demo programs.
332   See openrm.sourceforge.net for more detailed information about the
333   demonstration programs.
334
335   Win32 - the demo programs will not run unless the pthreads-win32
336   DLLs are in your $PATH.
337
338
339Current Architectures
340---------------------
341
342We've built and tested OpenRM on these architectures:
343
344Solaris 2.5.1/2.6/2.7 + Solaris OpenGL 1.2
345Irix 6.X (o32,n32,64) + Irix OpenGL
346x86 Linux RH 7.X/8.0/9.0, SuSE 9.2Pro/9.3Pro, Mesa 3.5 (s/w only)
347   h/w: nVidia GeForce2 DDR + nVidia's libGL.so + glx.so (www.nvidia.com, 1.0-71.67)
348Win32: 95/98/NT/2K/XP, MSVC++ v6.0 (only) on an assortment of Matrox, i810/i815
349   and nVidia accelerators.
350
351Trademarks
352----------
353
354RM Scene Graph and RM are registered trademarks of R3vis Corporation.
355OpenGL is a registered trademark of SGI.
356
357
358Copyright
359---------
360
361OpenRM is Copyright (C) 1999-2005, R3vis Corporation.
362
363