Skip to content
Browse files

websiteL: Add applications menu

[ ] May break build
[ ] Breaks existing applications
[ ] Bugfix
[ ] New Feature
[x] Cleanup
[ ] Optimization
[x] Documentation
  • Loading branch information...
1 parent f6458fe commit 20a2353cad436baa6c278796681bb917602b4641 @eile eile committed Nov 9, 2007
View
11 Makefile
@@ -6,6 +6,7 @@ TARGET = build
FILES = \
$(wildcard downloads/*) \
api.html \
+ applications.html \
changes.html \
compatibility.html \
configuration.html \
@@ -29,6 +30,10 @@ FILES = \
stylesheet.css \
useCases.html \
robots.txt \
+ applications/eqHello.html \
+ applications/eqPly.html \
+ applications/eVolve.html \
+ applications/thirdParty.html \
documents/CV_Stefan_Eilemann.pdf \
documents/Developer/ProgrammingGuide.pdf \
documents/Developer/eqPly.pdf \
@@ -120,7 +125,6 @@ FILES = \
documents/Howtos/glutToEqualizer.html \
documents/user/configTool.html \
documents/user/crComparison.html \
- documents/user/eqPly.html \
news/EqualizerNewsJuly07.html \
news/Release_0.1.html \
news/Release_0.2.html \
@@ -135,6 +139,7 @@ IMAGES_SRC = \
$(wildcard images/*jpg) \
$(wildcard images/NewsJune07/*gif) \
$(wildcard images/NewsJune07/*jpg) \
+ $(wildcard applications/images/*png) \
$(wildcard documents/design/images/*png) \
$(wildcard screenshots/*) \
@@ -194,6 +199,10 @@ $(TARGET)/documents/%-small.jpg: documents/%.png
@mkdir -p $(@D)
convert $< -geometry 300x1000 $@
+$(TARGET)/applications/%-small.jpg: applications/%.png
+ @mkdir -p $(@D)
+ convert $< -geometry 150x1000 $@
+
$(TARGET)/%-small.jpg: %.jpg
@mkdir -p $(@D)
convert $< -geometry 200x1000 $@
View
81 applications.shtml
@@ -0,0 +1,81 @@
+#define S_APPLICATIONS
+#define PAGE Parallel Rendering Applications
+
+#include "header.shtml"
+
+<h2>Equalizer Example Applications</h2>
+<p>
+ The Equalizer distribution contains several example applications to
+ demonstrate the capabilities of Equalizer and to provide a reference for
+ application developers.
+</p>
+
+<h3>eqHello - Hello, World!</h3>
+<p>
+ <a href="applications/eqHello.html">eqHello</a> is the most simple Equalizer
+ application. It illustrates the basic principle of any Equalizer application,
+ namely the implementation of the rendering in <code>Channel::frameDraw</code>,
+ similar to the <code>glutDisplayFunc</code> used in GLUT applications.
+</p>
+
+<h3>eqPly - Polygonal Renderer</h3>
+<div class="float_right">
+ <a href="applications/images/eqPly.png">
+ <img src="applications/images/eqPly-small.jpg"
+ alt="eqPly polygonal renderer"></a>
+ <div class="label">eqPly</div>
+</div>
+<p>
+ <a href="applications/eqPly.html">eqPly</a> is a parallel polygonal
+ renderer. It can
+ read <a href="http://www.cc.gatech.edu/projects/large_models/ply.html">ply
+ files</a>, which are automatically converted into
+ an <a href="http://en.wikipedia.org/wiki/Kd-tree">3-dimensional kd-tree</a>
+ for efficient rendering.
+</p>
+<p>
+ The example supports all scalable rendering features
+ of Equalizer, and demonstrates several other features, such as head tracking
+ and resident node support. It is also the reference for large parts of the
+ <a href="documentation/Developer/ProgrammingGuide"</a>Programming Guide</a>.
+</p>
+
+<h3>eVolve - Volume Renderer</h3>
+<div class="float_right">
+ <a href="applications/images/eVolve.png">
+ <img src="applications/images/eVolve-small.jpg"
+ alt="eVolve volume renderer"></a>
+ <div class="label">eVolve</div>
+</div>
+<p>
+ <a href="applications/eVolve.html">eVolve</a> is a parallel volume
+ renderer. It is currently under development and not yet fully debugged and
+ refactored.
+</p>
+<p>
+ The example renders pre-integrated raw volumes. The volume information and
+ lookup table is read from a separate header file. Equalizer ships with a
+ converter which can
+ read <a href="http://www9.informatik.uni-erlangen.de/External/vollib/">pvm
+ files</a> and various transfer functions.
+</p>
+<p>
+ eVolve does support all Equalizer scalable rendering features. The current
+ technology preview does not yet work on Windows XP.
+</p>
+
+<h2>Third Party Applications</h2>
+<p>
+ Various <a href="applications/thirdParty.html">other commercial and open
+ source applications</a> use Equalizer as the foundation for parallel
+ rendering
+</p>
+<p>
+ If you are working on an application based on Equalizer,
+ please
+ <a href="mailto:eile@equalizergraphics.com?subject=New Equalizer Application">drop us an email</a>
+ and we will add your program to the list.
+</p>
+
+#include "footer.shtml"
+<!-- $Id$ -->
View
289 applications/eVolve.shtml
@@ -0,0 +1,289 @@
+
+#define S_APPLICATIONS
+#define S_APPLICATIONS_EVOLVE
+#define PAGE Applications
+#define TITLE eVolve: Parallel Volume Rendering
+
+#include "header.shtml"
+
+<p>
+ TODO: transform design doc to application description
+</p>
+
+<h2>Overview</h2>
+
+<div class="float_right">
+ <a href="documents/design/images/volumeDB.png">
+ <img src="documents/design/images/volumeDB-small.jpg"
+ alt="Volume DB decomposition"></a>
+ <div class="label">Volume DB decomposition example</div>
+</div>
+
+<p>
+ This document gathers some design issues around Equalizer's volume rendering
+ application. A 3D texture based approach was chosen for the
+ implementation. The focus is to render large volumes the volume decomposition
+ using DB (sort-last) compounds. The volume is split into bricks along one
+ axis for simplicity. The recomposition of the partial, semi-transparent volume
+ bricks is done using back-to front compositing. The number of frames to
+ composite equals the data bricks number, the data bricks are in strong
+ correspondence to each other. We only need to transfer RGBA information, and
+ we can ignore depth values on the final compositing stage, which save a network
+ bandwidth. The correct sequences of the RGBA frames for compositing is fixed,
+ but Equalizer's current compositing implementation assumes that frames can be
+ composed in arbitrary way. For the volume render, we will implement a user
+ defined sequence of frame compositing. This technique could be used in future
+ for arbitrary semitransparent objects compositing.
+</p><div class="flush_float"></div>
+
+
+<h2>Design</h2>
+
+<h3>3D Texture-Based approach in volume rendering</h3>
+
+<div class="float_right">
+ <a href="documents/design/images/currentBackFront.png">
+ <img src="documents/design/images/currentBackFront-small.jpg"
+ alt="back to front compositing"></a>
+ <div class="label">Semi-transparent image compositing</div>
+</div>
+<p>
+ The main idea of the 3D texture-based approach is that the volume is stored as
+ a 3D texture on the GPU, and then intersected with viewport-aligned slices
+ rendered in back-to-front order. This algorithm allows to achieve good
+ performance, because GPU will do all the work on texture interpolation. The
+ quality can be improved by using a pre-integrated transfer function [1]
+ p.61,92.
+</p>
+<p>
+ The following pictures illustrate a few slices which intersect the
+ volume. After rendering the slices with blending from back to front, the
+ result image will contain a complete view of the model.
+</p>
+
+<div class="float_left">
+ <a href="documents/design/images/vol_texMap3D.png">
+ <Img src="documents/design/images/vol_texMap3D-small.jpg"
+ alt="Rendering slices with model 'fuel'.">
+ </a>
+ <div class="label">Rendering slices with model 'fuel'</div>
+</div>
+<div class="float_right">
+ <a href="documents/design/images/vol_texMap3Drot.png">
+ <Img src="documents/design/images/vol_texMap3Drot-small.jpg"
+ alt="Rendering slices with rotated model 'fuel'.">
+ </a>
+ <div class="label">Rendering slices with rotated model 'fuel'</div>
+</div>
+<div class="flush_float"></div>
+
+<p>
+ In our eVolve example we are dealing with cubic models (parallelepiped models
+ are treated in the same way, assuming that they are cubic and then scaled to
+ the real shape, which allows using of uniform algorithms for model
+ manipulation). The intersecting viewport-aligned slices are polygons with 3..6
+ vertices. There is no need to render the rest of a slice, only the
+ intersection is important in order to save computational power. We use
+ algorithm to determine that intersection from [1] p. 73.
+</p>
+
+
+<h3>DB decomposition in eVolve example and Texture Memory Allocation</h3>
+
+<div class="float_right">
+ <a href="documents/design/images/vol_mem_allocation.png">
+ <img src="documents/design/images/vol_mem_allocation-small.jpg"
+ alt="Volume's memory allocation"></a>
+ <div class="label">Volume's memory allocation</div>
+</div>
+<p>
+ In the eVolve example the volume is divided along Z axis for simplicity
+ reasons. In fture it is possible to extend that to decomposition in arbitrary
+ parallelepipeds.
+</p>
+
+<p>
+ Logically, the volume is represented as a cube with all edges' lengths equal
+ to 1, which corresponds to the texture coordinates in the GPU. The DB
+ decomposition range is a pair of values which belongs to interval [0..1], so
+ we can divide the volume using directly the DB range. The actual 3D texture
+ dimensions should be equal to power of two because of hardware limitations,
+ but in the real world models can have different dimensions. A scaling of the
+ final 3D texture coordinates is required in that case. The scaling of
+ coordinates also should be used to utilize 3D texture memory in an efficient
+ way, there is no need to have free space in the 3D texture which correspond to
+ object slices which are rendered by other clients.
+</p>
+
+<p>
+ The picture in the right illustrates memory allocation and scaling of 3D
+ texture coordinates processes. Each channel renders parallelepiped of a model
+ which has texture coordinates: [0,0,Ds]..[1,1,De]. This piece of model has
+ dimensions of [ Wd x Hd x Dd ] voxels, the 3D texture has dimensions of [ Wt x
+ Ht x Dt ] pixels. The piece of a model is not stored tightly to the 3D texture
+ edge along the Z axis, but with small threshold for the pre-integration
+ technique, which requires some space in the edge for correct compositing. This
+ shift equals to DBt pixels. The texture coordinates Wd-1, Hd-1, Dd-1 are
+ correspond to 1 in 3D texture coordinates' space, hence the coordinates
+ transformation will look like:
+<p>
+
+<p>
+ <pre>
+ Xn = X * W
+ Yn = Y * H
+ Zn = Db + ( Z - Ds ) * D
+ </pre>
+ where:
+ <pre>
+ W = Wd / Wh
+ H = Hd / Hh
+ Db = DBT / Dh
+ D = ( Dd / Dh ) / ( De - Ds )
+
+ X, Y, Z - original texture coordinates
+ Xn, Yn, Zn - new 3D texture coordinates
+ </pre>
+</p>
+
+</p><div class="flush_float"></div>
+
+<h3>Semi-transparent frame compositing</h3>
+<p>
+ Since the current compositing implementation assumes no order, the currently
+ rendered plane in the frame buffer already and we don't need to read it back
+ for compositing. For volume rendering, this plane is often not the last one in
+ the compositing order. There are two ways to solve the problem:
+</p>
+
+<ul>
+ <li>
+ The channel that performs the compositing should wait for all frames that
+ should be assembled before him, perform the compositing of this planes, then
+ render his own data over already assembled planes, and finally assemble all
+ frame which should be drawn in front of his. This process could be
+ schematically described as following:
+ <pre>
+ clear
+ assemble "pre"
+ render
+ assemble "post"
+ </pre>
+
+ It introduces 1 frame latency which is not a problem. However this approach
+ has the following problems: only one client can perform compositing (serial
+ assembly) and parallel compositing algorithms, such as direct send, couldn't
+ be used. This approach could be possibly used only when semitransparent
+ objects covers small area of a frame.
+ </li>
+ <li>
+ The second approach uses a read-back of assembling area so theoretically it
+ should be slower but it doesn't introduce latency and could be done in
+ parallel so it will work much faster, plus it will take less effort to
+ implement. Its order of operations is:
+ <pre>
+ clear
+ render
+ read-back
+ assemble
+ </pre>
+
+ Please note that read-back should be used only for compositing area and only
+ when the current brick is not the farthest one.
+ </li>
+</ul>
+
+<p>
+ A more detailed sequence for the second algorithm is:
+
+ <pre>
+ override Channel::frameAssembly()<br>
+ - compute union of frames -> uPVP (unionn pixel viewport);<br>
+ * read image of uPVP<br>
+ * glClear( uPVP )<br>
+ - push GL state, set up blending<br>
+ - draw all frames ordered (range and current transformation matrix
+ should be used to obtain correct assembling sequence)<br>
+ - restore GL state<br>
+ * free/recycle image
+ </pre>
+
+ Stages marked with (*) should be performed only when the current
+ brick is not the farthest one. The assembly stage should be omitted
+ in case of 2D (Sort First) composition.
+</p>
+
+<h3>Correct Frames Compositing Order Computation</h3>
+
+<p>
+ In order to perform back to front compositing, we need the right order of
+ DB slices. There are two different cases implemented in eVolve: for
+ perspective and parallel projection.
+<p>
+
+<div class="float_right">
+ <a href="documents/design/images/vol_slice_compositing_1.png">
+ <img src="documents/design/images/vol_slice_compositing_1-small.jpg"
+ alt="Compositing in case of parallel projection.">
+ </a>
+ <div class="label">Compositing for parallel projection</div>
+</div>
+<p>
+ As it is described above, volume model is divided along Z axis. The
+ compositing order is defined according to the angle between view vector and
+ vector which is parallel to the Z axis in model-space (vector [0,0,1]). The
+ compositing order should be switched if that angle is more than 90 degrees, as
+ shown in the first picture below. In fact we only need to check a sign of one
+ element of the rotation matrix which corresponds to cos(Ax)*cos(Ay), where Ax
+ and Ay are angles or rotation around X and Y axes.
+</p>
+
+<div class="flush_float"></div>
+<div class="float_right">
+ <a href="documents/design/images/vol_slice_compositing_2.png">
+ <img src="documents/design/images/vol_slice_compositing_2-small.jpg"
+ alt="Compositing in case of perspective projection.">
+ </a>
+ <div class="label">Compositing for perspective projection</div>
+</div>
+<p>
+ The perspective projection case is more complicated as you can see from the
+ picture on the right. In that picture the right compositing order would be:
+ slices 1,2,5,4,3 or 5,4,1,2,3 (and other variants with slices 2 and 4 after
+ slices 1 and 5, with slice 3 on top) because of the perspective distortion.
+ To calculate the right order we have to check several angles now, two angles
+ per slice. Our algorithm finds the first slice where the change of sign of cos
+ of angle happens, and changes order of the rest slices.
+</p>
+
+<h2>Implementation</h2>
+<p>
+ TBD
+</p>
+
+<h2>API</h2>
+<p>
+ TBD
+</p>
+
+<h2>File Format</h2>
+<!-- /* --><pre>
+ TBD
+</pre><!-- */ -->
+
+<h2>Open Issues</h2>
+<p>
+</p>
+
+<h2>References</h2>
+<p>
+ [1] Klaus Engel, Markus Hadwiger, Joe M.Kniss, Christof Rezk-Salama, Daniel Wieskopf. "Real-Time Volume Graphics." A K Peters, Ltd, 2006.
+</p>
+
+<div class="footnote">
+ Volume data sets courtesy of: Computer Graphics Group, University of Erlangen,
+ Germany; SFB-382 of the German Research Council (DFG); AVS, USA.
+</div>
+
+ #include "footer.shtml"
+<!-- $Id$ -->
View
30 applications/eqHello.shtml
@@ -0,0 +1,30 @@
+#define S_APPLICATIONS
+#define S_APPLICATIONS_EQHELLO
+#define PAGE eqHello: Hello, World!
+
+#include "header.shtml"
+
+<div class="float_right">
+ <a href="/applications/images/eqHello.png">
+ <img src="/applications/images/eqHello-small.jpg"
+ alt="Hello, World!"></a>
+ <div class="label">Hello, World!</div>
+</div>
+<p>
+ The eqHello example is a minimal application to illustrate the basic principle
+ of an Equalizer application: The application developer has to implement the
+ rendering method <code>Channel::frameDraw</code>, similar to
+ the <code>glutDisplayFunc</code> in GLUT applications. It can be run as a
+ stand-alone application from the command line.
+</p>
+<p>
+ The eqHello redraw function renders six rotating, colored quads around the
+ origin. The <code>frameDraw</code> method provided by
+ the <code>eq::Channel</code> can be used as a convience function to setup the
+ frustum and other OpenGL state. After setting up some additional lighting
+ parameter, eqHello rotates the scene and render the quads using immediate mode
+ rendering.
+</p>
+
+#include "footer.shtml"
+<!-- $Id$ -->
View
28 documents/user/eqPly.shtml → applications/eqPly.shtml
@@ -1,12 +1,17 @@
-#define S_DOCUMENTATION
-#define S_DOCUMENTATION_ENDUSER
-#define PAGE Documentation
-#define SUBPAGE End User
-#define TITLE Parallel Polygonal Renderer
+#define S_APPLICATIONS
+#define S_APPLICATIONS_EQPLY
+#define PAGE Applications
+#define TITLE eqPly: Parallel Polygonal Renderer
#include "header.shtml"
<h2>Overview</h2>
+<div class="float_right">
+ <a href="/applications/images/eqPly.png">
+ <img src="/applications/images/eqPly-small.jpg"
+ alt="eqPly polygonal renderer"></a>
+ <div class="label">eqPly</div>
+</div>
<p>
The <a href="/cgi-bin/viewvc.cgi/trunk/src/examples/eqPly">eqPly example</a>
is the reference implementation of an Equalizer application. It does render
@@ -16,16 +21,19 @@
different color to illustrate the database decomposition.
</p>
<p>
- The <a href="documents/Developer/ProgrammingGuide.pdf">Programming Guide</a>
- covers the application structure of eqPly extensively.
+ The <a href="/documents/Developer/ProgrammingGuide.pdf">Programming Guide</a>
+ covers the application structure of eqPly extensively. A semester thesis in
+ German (<a href="/documents/Developer/eqPly.pdf">Entwicklung eines parallelen
+ OpenGL Polygon-Renderers</a>) covers the kd-tree implementation for Equalizer
+ 0.4.
</p>
<h2>Application Structure</h2>
<p>
As with any Equalizer application, eqPly consists of the main application and
the rendering clients. In this simple example, they are both contained in the
same executable. The executable can also be run as
- a <a href="documents/design/residentNodes.html">resident render client</a>,
+ a <a href="/documents/design/residentNodes.html">resident render client</a>,
which is used to pre-launch rendering clients manually.
</p>
@@ -50,7 +58,7 @@
init method receives the identifier of the InitData object, as defined by the
application. It instanciates the object and loads the polygonal model named by
the InitData. A seperate document describes
- all <a href="documents/design/taskMethods.html">task methods</a>.
+ all <a href="/documents/design/taskMethods.html">task methods</a>.
</p>
<h3>Event Processing</h3>
@@ -59,7 +67,7 @@
application thread, where they are processed at the end of the frame by
Config::handleEvent. This example implements a trackball, move and zoom mouse
interaction, as well as some keystroke commands. A separate document describes
- the <a href="documents/design/eventHandling.html">event handling</a>.
+ the <a href="/documents/design/eventHandling.html">event handling</a>.
</p>
View
BIN applications/images/eVolve.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN applications/images/eqHello.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN applications/images/eqPly.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
32 applications/thirdParty.shtml
@@ -0,0 +1,32 @@
+#define S_APPLICATIONS
+#define S_APPLICATIONS_THIRDPARTY
+#define PAGE Third Party Applications
+
+#include "header.shtml"
+
+<p>
+ If you are working on an application based on Equalizer,
+ please
+ <a href="mailto:eile@equalizergraphics.com?subject=New Equalizer Application">drop us an email</a>
+ and we will add your program to the list.
+</p>
+
+<h2>eqSmart: Terrain rendering</h2>
+<div class="float_right">
+ <a href="/screenshots/wall.png">
+ <img src="/screenshots/wall-small.jpg"
+ alt="eqSmart"></a>
+ <div class="label">eqSmart</div>
+</div>
+<p>
+ eqSmart is a port of the Smart terrain rendering software. Smart is based upon
+ the <a href="http://www.ogre3d.org/">Ogre3D graphics engine</a>. Support for
+ database decomposition was not implemented. eqSmart will be superseded by
+ eqRaster, an OpenGL-based terrain visualization engine.
+</p>
+<p>
+ eqSmart is not publically available due to licensing issues.
+</p>
+
+#include "footer.shtml"
+<!-- $Id$ -->
View
5 compatibility.shtml
@@ -19,7 +19,7 @@
<th width="25%">AGL (Carbon)</th>
</tr>
<tr>
- <th>Windows XP<sup>1,5</sup></th>
+ <th>Windows XP<sup>1,5,7</sup></th>
<td bgcolor="#ccffcc">pipe creates affinity context<sup>6</sup>, window uses
handle (HWND) and WGL context (HGLRC)</td>
<td bgcolor="#ffcccc">not yet implemented</td>
@@ -62,10 +62,11 @@
<tr><th>4</th><td>Version 0.1 was tested on SGI IRIX. Porting to other
Unix-like operating system requires minimal porting effort, mostly for
compiler differences.</td></tr>
- <tr><th>5</th><td>Version 0.4 version has experimental support for
+ <tr><th>5</th><td>Version 0.4 and later has experimental support for
Cygwin.</td></tr>
<tr><th>6</th><td>requires WGL_NV_gpu_affinity extension available on nVidia
Quadro fx with selected drivers.</td></tr>
+ <tr><th>7</th><td>svn tree has experimental support for MinGW/MSys.</td></tr>
</p>
#include "footer.shtml"
View
61 documentation.shtml
@@ -1,84 +1,79 @@
#define S_DOCUMENTATION
-#define S_DOCUMENTATION_ENDUSER
#define PAGE Documentation
-#define SUBPAGE End User
#include "header.shtml"
<h2>Presentations</h2>
<ul>
- <li><a href="documents/EqualizerTeaser.html">Teaser</a> is a three
+ <li><a href="/documents/EqualizerTeaser.html">Teaser</a> is a three
slide abstract of Equalizer,
- <a href="documents/EqualizerTeaser.pdf">pdf</a> or
- <a href="documents/EqualizerTeaser.html">html</a>.</li>
+ <a href="/documents/EqualizerTeaser.pdf">pdf</a> or
+ <a href="/documents/EqualizerTeaser.html">html</a>.</li>
- <li><a href="documents/Equalizer.html">Overview</a> is a presentation
+ <li><a href="/documents/Equalizer.html">Overview</a> is a presentation
to provide a background to high-performance visualization, Equalizer
components and features,
- <a href="documents/Equalizer.pdf">pdf</a> or
- <a href="documents/Equalizer.html">html</a>.</li>
+ <a href="/documents/Equalizer.pdf">pdf</a> or
+ <a href="/documents/Equalizer.html">html</a>.</li>
- <li><a href="documents/EqualizerGuide.pdf">Quickstart and Demo
+ <li><a href="/documents/EqualizerGuide.pdf">Quickstart and Demo
Guide</a> guides through running and understanding a few Equalizer
configurations,
- <a href="documents/EqualizerGuide.pdf">pdf</a> or
- <a href="documents/EqualizerGuide.html">html</a>,
- <a href="documents/EqualizerGuide-0.4.pdf">Guide for 0.4 and
+ <a href="/documents/EqualizerGuide.pdf">pdf</a> or
+ <a href="/documents/EqualizerGuide.html">html</a>,
+ <a href="/documents/EqualizerGuide-0.4.pdf">Guide for 0.4 and
earlier</a>.</li>
- <li><a href="documents/FlyerWeb.pdf">Flyer</a> is a folded, two-sided
+ <li><a href="/documents/FlyerWeb.pdf">Flyer</a> is a folded, two-sided
brochure for the Equalizer project,
- <a href="documents/FlyerWeb.pdf">1 MB display version</a>,
- <a href="documents/Flyer.pdf">9 MB print version</a> (please print
+ <a href="/documents/FlyerWeb.pdf">1 MB display version</a>,
+ <a href="/documents/Flyer.pdf">9 MB print version</a> (please print
two-sided).
</li>
- <li><a href="documents/EGPGV07.html">Direct Send Compositing
+ <li><a href="/documents/EGPGV07.html">Direct Send Compositing
for Parallel Sort-Last Rendering</a> is the paper presentation for the
Equalizer paper with the same name at EGPGV07,
- <a href="documents/EGPGV07.pdf">pdf</a> or
- <a href="documents/EGPGV07.html">html</a>.</li>
+ <a href="/documents/EGPGV07.pdf">pdf</a> or
+ <a href="/documents/EGPGV07.html">html</a>.</li>
- <li><a href="documents/EqualizerVizSIG06.html">VizSIG Meeting 2006</a>
+ <li><a href="/documents/EqualizerVizSIG06.html">VizSIG Meeting 2006</a>
is a presentation given at the VizSIG Meeting 2006 in Woking, UK. It is
based on the overview presentation but features more technical content about
the programming interface and configuration,
- <a href="documents/EqualizerVizSIG06.pdf">pdf</a> or
- <a href="documents/EqualizerVizSIG06.html">html</a>.</li>
+ <a href="/documents/EqualizerVizSIG06.pdf">pdf</a> or
+ <a href="/documents/EqualizerVizSIG06.html">html</a>.</li>
</ul>
<h2>White Papers</h2>
<ul>
- <li><a href="documents/WhitePapers/ProjectEqualizer.pdf">Project Equalizer
+ <li><a href="/documents/WhitePapers/ProjectEqualizer.pdf">Project Equalizer
</a> is a project description of Equalizer.</li>
- <li><a href="documents/WhitePapers/ParallelRenderingSystems.pdf">An
+ <li><a href="/documents/WhitePapers/ParallelRenderingSystems.pdf">An
Analysis of Parallel Rendering Systems</a> reviews, analyzes and
classifies approaches to multi-pipe rendering, and outlines our motivation
for developing Equalizer.</li>
- <li><a href="documents/user/crComparison.html">Chromium vs Equalizer
+ <li><a href="/documents/user/crComparison.html">Chromium vs Equalizer
Comparison</a></li>
</ul>
<h2>Academic Papers</h2>
<ul>
- <li><a href="documents/EqualizerTR.pdf">The Equalizer Parallel Rendering
+ <li><a href="/documents/EqualizerTR.pdf">The Equalizer Parallel Rendering
Framework</a>, technical report 2007/06.</li>
- <li><a href="restricted/directSend.pdf">Direct Send Compositing for
+ <li><a href="/restricted/directSend.pdf">Direct Send Compositing for
Parallel Sort-Last Rendering</a>,
- <a href="http://web.cscs.ch/EGPGV07/">Eurographics Symposium on Parallel
+ <a href="/http://web.cscs.ch/EGPGV07/">Eurographics Symposium on Parallel
Graphics and Visualization 2007</a> (restricted access due to copyright
limitations)</li>
- <li><a href="documents/Developer/eqPly.pdf">Entwicklung eines parallelen
+ <li><a href="/documents/Developer/eqPly.pdf">Entwicklung eines parallelen
OpenGL Polygon-Renderers</a>, semester thesis about the eqPly example
implemented for v0.4, 2007/09.</li>
</ul>
-<h2>Equalizer Applications</h2>
+<h2>Tools</h2>
<ul>
- <li><a href="documents/user/eqPly.html">eqPly</a>
- is a polygonal rendering application, and the Equalizer example
- application.</li>
- <li><a href="documents/user/configTool.html">Configuration Tool</a>
+ <li><a href="/documents/user/configTool.html">Configuration Tool</a>
automatically generates common configuration files.</li>
</ul>
View
99 include/footer.shtml
@@ -5,10 +5,10 @@
<!-- Navigation -->
<div class="navigation">
- <a href="index.html">
- <img src="images/Equalizer.png" alt="Equalizer logo">
+ <a href="/index.html">
+ <img src="/images/Equalizer.png" alt="Equalizer logo">
</a>
- <p><a href="index.html"
+ <p><a href="/index.html"
#ifdef S_HOME
class="used"
#endif
@@ -18,39 +18,72 @@
#ifdef S_HOME
<div class="subnavigation">
- <p><a href="index.html"
-#ifdef S_HOME_ABOUT
- class="used"
-#endif
- >Overview</a></p>
-
- <p><a href="useCases.html"
+ <p><a href="/useCases.html"
#ifdef S_HOME_USECASES
class="used"
#endif
>Use Cases</a></p>
- <p><a href="configuration.html"
+ <p><a href="/configuration.html"
#ifdef S_HOME_CONFIG
class="used"
#endif
>Runtime Configuration</a></p>
- <p><a href="scalability.html"
+ <p><a href="/scalability.html"
#ifdef S_HOME_SCALABILITY
class="used"
#endif
>Runtime Scalability</a></p>
- <p><a href="api.html"
+ <p><a href="/api.html"
#ifdef S_HOME_API
class="used"
#endif
>Programming Interface</a></p>
</div>
#endif // S_HOME
- <p><a href="documentation.html"
+
+ <p><a href="/applications.html"
+#ifdef S_APPLICATIONS
+ class="used"
+#endif
+ >Applications</a></p>
+
+ <!-- Applications sub-navigation-->
+#ifdef S_APPLICATIONS
+ <div class="subnavigation">
+
+ <p><a href="/applications/eqHello.html"
+#ifdef S_APPLICATIONS_EQHELLO
+ class="used"
+#endif
+ >eqHello</a></p>
+
+ <p><a href="/applications/eqPly.html"
+#ifdef S_APPLICATIONS_EQPLY
+ class="used"
+#endif
+ >eqPly</a></p>
+
+ <p><a href="/applications/eVolve.html"
+#ifdef S_APPLICATIONS_EVOLVE
+ class="used"
+#endif
+ >eVolve</a></p>
+
+ <p><a href="/applications/thirdParty.html"
+#ifdef S_APPLICATIONS_THIRDPARTY
+ class="used"
+#endif
+ >Third Party</a></p>
+
+ </div>
+#endif // S_APPLICATIONS
+
+
+ <p><a href="/documentation.html"
#ifdef S_DOCUMENTATION
class="used"
#endif
@@ -60,31 +93,25 @@
#ifdef S_DOCUMENTATION
<div class="subnavigation">
- <p><a href="documentation.html"
-#ifdef S_DOCUMENTATION_ENDUSER
- class="used"
-#endif
- >End User</a></p>
-
- <p><a href="doc_developer.html"
+ <p><a href="/doc_developer.html"
#ifdef S_DOCUMENTATION_DEVELOPER
class="used"
#endif
>Developer</a></p>
- <p><a href="features.html"
+ <p><a href="/features.html"
#ifdef S_DOCUMENTATION_FEATURES
class="used"
#endif
>Feature List</a></p>
- <p><a href="compatibility.html"
+ <p><a href="/compatibility.html"
#ifdef S_DOCUMENTATION_COMPATIBILITY
class="used"
#endif
>Compatibility Matrix</a></p>
- <p><a href="relnotes.html"
+ <p><a href="/relnotes.html"
#ifdef S_DOCUMENTATION_RELNOTES
class="used"
#endif
@@ -93,56 +120,56 @@
#endif // S_DOCUMENTATION
- <p><a href="screenshots.html"
+ <p><a href="/screenshots.html"
#ifdef S_SCREENSHOTS
class="used"
#endif
>Screenshots</a></p>
- <p><a href="news.html"
+ <p><a href="/news.html"
#ifdef S_NEWS
class="used"
#endif
>News</a></p>
- <p><a href="events.html"
+ <p><a href="/events.html"
#ifdef S_EVENTS
class="used"
#endif
>Events</a></p>
- <p><a href="downloads.html"
+ <p><a href="/downloads.html"
#ifdef S_DOWNLOADS
class="used"
#endif
>Downloads</a></p>
- <p><a href="lists.html"
+ <p><a href="/lists.html"
#ifdef S_LISTS
class="used"
#endif
>Mailing Lists</a></p>
- <p><a href="contact.html"
+ <p><a href="/contact.html"
#ifdef S_CONTACT
class="used"
#endif
>Contact</a></p>
- <p><a href="contributors.html"
+ <p><a href="/contributors.html"
#ifdef S_CONTRIBUTORS
class="used"
#endif
>Contributors</a></p>
- <p><a href="http://pogl.wordpress.com/">Blog (off-site)</a></p>
+ <p><a href="/http://pogl.wordpress.com/">Blog (off-site)</a></p>
#ifdef S_SEARCH
<p>
- <a href="search.html" class="used">Search</a>
+ <a href="/search.html" class="used">Search</a>
</p>
#else
<!-- Google CSE Search Box Begins -->
@@ -161,7 +188,7 @@
</p>
<p>
<a href="http://www.ifi.unizh.ch/vmml/">
- <img src="images/VMML_logo_150_grey.png"
+ <img src="/images/VMML_logo_150_grey.png"
alt="Visualization and MultiMedia Lab, University of Z&uuml;rich">
</a>
</p>
@@ -170,14 +197,14 @@
<div class="footer">
<a href=QUOTE( PAGEURL#top )>Back to top</a>
<a href=QUOTE( SITE_EMAIL )>Ask a Question</a>
- <a href="impressum.html"
+ <a href="/impressum.html"
#ifdef S_IMPRESSUM
class="used"
#endif
>Impressum</a>
#ifndef S_CHANGES
Last changed: <a href=CHANGEURL>UPDATE</a>
- <a href="changes.html">What's new?</a>
+ <a href="/changes.html">What's new?</a>
#endif
</div>
</body>
View
4 index.shtml
@@ -1,7 +1,5 @@
#define S_HOME
-#define S_HOME_ABOUT
-#define PAGE About
-#define SUBPAGE Parallel Rendering
+#define PAGE Parallel Rendering
#define DESCRIPTION "Equalizer is an open source programming interface and resource management system for scalable OpenGL applications"
#define KEYWORDS "parallel rendering, parallel OpenGL, Equalizer, OpenGL, scalable graphics, graphics cluster, graphics clusters, visualization, multi-GPU"

0 comments on commit 20a2353

Please sign in to comment.
Something went wrong with that request. Please try again.