It is platform-independent and runs fine under Windows and Linux; we believe it can probably be compiled on other Unices as well.
One control, which deserves a more detailed explanation here, is "Load Images". This allows you to load single images or entire animation sequences. The loading dialog may be shown up to 3 times, depending on how a particular effect uses image data. For example, the "B-Spline Warp" requires 2 images (or image sequences): one for the morph source and one for the morph target. If any of these dialogs gets canceled or no files are selected for loading, then you will only see a white rectangle, since most effects are only fully visible when all images needed are present.
The middle portion of the right part of the GUI is empty upon startup. It will be populated by the specific controls of the effect you select. Alternatively, these controls may appear in an extra window, depending on how the programmer of that effect decided. In that case, it might happen that this extra window is hidden by the main window, if your screen resolution is less than 1024x768. The effect-specific controls are described in detail in corresponding effect documentation in subdirectory doc in the Tar archive.
The large square button with sort of an "orbits" icon, can be toggled. When on,it turns the image viewport into a virtual trackball. All rotations are performed using the left mouse button. The axis tripod in the lower-right corner of the view shows the current orientation of the coordinate system. The reset controls reset the camera orientation and field-of-view (zoom). The red and green axes in the center of the viewport are the x- and y-axes of the coordinate system. They can be used to "lock" onto a primary axis for precise rotation. This works in the following way: when the mouse cursor is placed on the green or red axis, or on their intersection, it will change shape automatically to signify the "locked" rotation axis. The lock is possible on any of the three primary axes. Using the right mouse button you can zoom in and out.
The "Perspective View" button toggles between orthographic and perspective projection.
The lower part contains a "memory usage meter" and a small status window where effects may output various diagnostic messages or notifications. The memory meter shows how much memory is currently available and how much is taken in total by all programs and the system (for now, it is only available under Windows.)
|Linux executables||imogl_linux_x11.tar.gz||1.1 (MB)|
|Windows 2000 executable||imogl_win32.tar.gz||1.8 (MB)|
|Source code||imogl_devel.tar.gz||0.7 (MB)|
|Test images||imogl_img.tar.gz||3.3 (MB)|
|Test image sequence||imogl_seq.tar.gz||14 (MB)|
Note: This effect will require a fast CPU if you want to achieve smooth animation at higher settings of the "Resolution" parameter.
|The images show the water waves effect on several different source images. Here, only the Cygnus Loop is shown undistorted.||A side view of the surface, with texture applied, being deformed by a single radial ripple wave emanating from the center. (Orig. image: Tarantula nebula)||The effect has been switched into distortion mode and shows the interaction of two waves emanating from sources located at the edges. (Orig. image: dust cloud)||Image of the Cygnus Loop being distorted by a single wave (in normal mode), originating from the lower-right corner. This time, damping has been turned on - notice how the distortion is more pronounced in the corner that in the center of the image.|
Note: Please keep in mind that rendering in this effect has been optimized for Nvidia chipsets, so if you don't run this on an Nvidia-based graphics card, the rendering performance may be impaired, depending on the CPU speed of your machine.
|Tarantula Nebula||A shadow pattern applied to the Tarantula Nebula. The image has been taken in orthographic mode. (You may have to look carefully to notice the difference to the original image).||The rendering has been switched to "Metal Foil" mode and now clearly exhibits shadows on the underlying three-dimensional terrain object.||The aforementioned terrain object as seen from the side. This image has been taken while in perspective mode (otherwise the orthographic projection tends to "flatten out" certain surface features).|
Note: The implementation does not utilize any buffer-to-texture paths on the graphics card, if any. So the performance is not very fast.
|Spiral galaxy NGC 4414.||Notice how most of the background stars are gone as a result of image subtraction.||Here the subtraction of the image of NGC 4414 from the Tarantula Nebula has resulted in clearly visible "hole" in the nebula.||The image of Eskimo Nebula NGC2392 was added to the image of Tarantula Nebula. The result appears brighter because of the combined brightness of the two source images.|
|Star Birth Clouds M16.||A simple line segment has been rotated about the center of the image, which has an effect of "swirling" the image. (The original line is the blue segment).||The same line segment, this time scaled down. The resulting image is pinched towards the center.|
In morphing mode, it additionally performs blending between images. In a source image and a, possibly different, target image, you can draw a polygon; for both, you specify keyframes. The effect will warp the source image into the target image according to the polygon, and blend them between the two keyframes according to the time.
|Eskimo Nebula NGC2392||The controlling lattice with 8 vertices selected and translated away from their original positions.||...the resulting deformation of the image mesh.||... and the effect on the source image. The Eskimo nebula has now got a pair of "ears" and now looks more like a "Bear Nebula".|
The base directory contains a readme file where you will find the instructions on how to build and run the application in Windows and Linux.
Root of the whole system is an abstract base class GLEffect, which provides most basic functions required for rendering, mouse, and keyboard event handling etc. Every manipulation effect (i.e., feature) is derived from this base class.
The program documentation contained in the /docs subdirectory has a tutorial section that will show you how to derive a very basic effect class. Starting from the index.html, you can find links to in-depth documentation of the framework, and all other effect classes. Additionally, examine the sources of the effects that come with the program, as many parts of these can be used as a base for your own code. They have been designed by various students and contain a lot of helpful hints and information.
The effect sources are well documented, partly in English, partly in German, depending on who wrote them. Hopefully this will not hinder anyone to understand the source code. :)
Your feedback is important! We would welcome any comments, remarks, bug reports etc. concerning this application. This will give us a chance to improve it and make it more stable (perhaps even enhance it someday?). We have tried our best to remove all bugs known up to this moment.
The sources are provided under the terms of the General Public License. A copy of the GPL can be found in the source directory.
Copyright © 2001 by Ibragium Kouliev for the framework application. All Rights Reserved.
All stellar images are courtesy of NASA (all of them are public domain, as far as we know). All other images, including those in the Tar files, are from the Net, and, to our best knowledge, in the public domain. Should any legal issues arise, please notify us, and we will remove them.
Notice about the Manta Ray logotype image: To our best knowledge, "Manta Ray Research" is not a registered company name and/or trademark of any kind. Should any legal dispute arise, we shall promptly remove or change this name.
|Ibragim Kouliev||Framework and Integration|
|Michael Nolden||Water waves effect|
|Moritz Voß||Shadow effects|
|Lukas Degenar & Ingmar Kanitschneider||Warping with Contourlines|
|Christoph Brzozowski||Warping with B-Splines|
|Philip Claren & Christian Mühlhaupt||Accumulationbuffer effects|