Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!swrinde!ucsd!ucbvax!lsr-vax.UUCP!lmo From: lmo@lsr-vax.UUCP ("Lance M. Optican - LMO") Newsgroups: comp.sys.sgi Subject: (none) Message-ID: <9004111723.AA07506@> Date: 11 Apr 90 17:23:06 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 74 To: Info-Iris Subject: Animation at 60 fps I would like some advice on using graphics computers for Real-Time Animation of OPTICAL FLOW. This would allow us to simulate the visual effects of self- or relative-motion between an observer and the environment. Our application is to study how the brain deals with visual motion. I need to update the screen 60 times per second, and I want to run with something like a Stereographics Co. adapter to get stereo. In 80% of our cases, we can pre-compute the images, and load them like a movie at 60 fps. In the other 20% of our cases, we would like to move the image under interactive control of the user. The images we currently use are fields of up to 10,000 random dots (not stereo), precomputed and then DMA-pumped into an EGA card on a PC-AT (Intel 80286). We would like to use some more realistic objects, in addition to the dot fields. I have tested some sample code on SGI 4D-25TG, 4D-70GT, and 4D-120GTX machines. The 4D-25TG seems unable to run above 30 fps (even when displaying only 100 dots). There was also a strange BUG on the 4d-25TG that showed up when I ran a program that simulated a stop-watch. I tried to update the position of the sweep hand every frame. At every multiple of 45 degrees around the compass, the sweep hand slows down or speeds up by about a factor of two! SGI's Chuck Molyneaux saw this test, but was mystified as to the source of the problem. I suspect it may be a mistake in the microcode that does vectors. Could the code be some kind of Bresenham's algorithm, but written only for slope of line between 0 and 1? For other slopes, the points would then first have to be transformed to reverse the end points and invert the slope, thereby slowing down the machine enough to miss a frame. I could get simple dot fields on the GT machines to run at 60 fps, but only if the number of dots was limited (about 2000 dots). I also run into trouble when trying to do stereo, for which I am using a modification of the "Iris Universe" program for changing the perspective of the left & right viewpoints. The problem seems to be that the screen clear (czclear()) takes about 8 msec, and the viewing transformations are also slow. At the suggestion of Nancy Marks of SGI, I have turned these transformations into objects, but that has not speeded things up enough to increase the dot fields even to the complexity we get now on the PC-AT! I would appreciate any advice on how to make the Iris 4D-85GT run faster in this application. (Budgetary restrictions (about $50K) prevent us from moving up to the new 4D-xxxVGX system, even though it is almost an order of magnitude faster.) Also, if anyone knows of alternative approaches (such as video frame buffers that can show 1024x1024 resolution images at 60 fps) I would like to hear about them. All of these applications would have to run under a real-time Irix kernel to be of any use, since we can't have the displayed image jerking as the operating system decides to do things. Thus, if anyone has any experience with the SGI real-time Irix used in animation, I would like to hear about it. As always, my ordering deadline is imminent! Any information reaching me before April 15 will be greatly appreciated! Thanks, Lance Optican National Eye Institute Bethesda, Maryland (uunet!lsr-vax!lmo)