On Mon, 10 Jul 2000, Thomas Loop wrote:
Hi Johannes,
therefore i have written a "view" method for the GemWin object (which controls the whole scenery and therefore seems to be predestined to influence the viewing point of the whole scenery) which is exactly what you want (as i think)
....
on Win98 I had it work for a quite long time (12-24h) without any crash;
ah, maybe i promised too much :: i saw the whole thing crash on Win98 after a view seconds on another machine than mine (unfortunately, this was the one machine that was supposed to perform in public...)
I am very interested, as I work on Win98 at the moment.
you really should change to anything else :-)
I have also done a "fog" method and a material object (although I lost formatted my harddisk and lost the latter...but of course I can do this again if anybody get's interested)
Again, sounds very interesting. Could you somehow publish the objects for Win98. It's a shame, but I'm a plain (l)user at the moment. No compiler nor the knowledge to compile pd/gem objects. Guess the stuff is included in the gem++ tarball you uploaded, right?
ah for all those users that cannot afford microsofts applications, i have put a zip-file on our ftp-server, that provides only the gem.dll; get it from ftp://iem.mhsg.ac.at/pd/Externals/GEM/misc , unpack it and have fun.
the gem++ tarball contains nothing but the sources
changing the viewport:: send a message-list to the "gemwin"-object "view <x_eye> <y_eye> <z_eye> [<azimuth> [<elevation>]" will put the viewer onto the specified position looking into the specified direction; note that there may arise some unexpected behaviour, because normally, the viewer is located at (0/0/-4) or (0/0/+4) (cannot remember); i dunno whether i add this offset internally; maybe you have to do it yourself azimuth and elevation are both given in degree (this is 0..360); i did this piece of code very rough and therefore the picture might flip for 180deg when reaching an elevation of 90deg. This is because I need not deal with looking straight upwards/downwards in my specifique case...
"view <x_eye> <y_eye> <z_eye> <x_center> <y_center> <z_center> <x_up> <y_up> <z_up>" gives you total control over the used gluLookAt -procedure; the _eye coordinates are as above, the _center coordinates define (nona) the center of confusion, the up_coordinates define a vector that is points to your hat (and not to your mouth, cyclop !); of course the up_vector must not be parallel to the viewing direction (center-eye)
changing the fog:: "fog <density>" will change the density of the fog depending on which exponential fogmode you use; the greater <density> is, the denser the fog becomes (gotit ?) negative densities are truncated to no density "fog <a> <b>" will modify the parameters for linear fog; something like "beginning and ending" of the fog range "fogmode <n>" will switch between linear-fog (0), exponential-fog (1, default) and exponential^2-fog(2) "fogcolor <r> <g> <b>" sets the fogcolor
a disk-object "disk": very similar to all other spheric-geos (cylinder, cone, sphere)
ah, next time i will do a documentation in the tar-balls, this will be less effort. thought i would be faster this way ::--_
mfg.dfs.sdr iohannes
Thanks for your time and greetings,
.loop.