I’m taking an OpenGL class at school. We have a computer lan with Silicon Graphics machines but I also wish to work at home on my projects with my PC. However, the same code (I use glut) seems to run much slower. I assume this is due to a lack of hardware acceleration, but I don’t know for sure. Is there any way I can speed up the graphics on my computer at home? I am using a 533 P3 with a generic video card.
Your processor should be sufficient, so it sounds like your “generic” vid card doesn’t support OpenGL in hardware. There are a number of reasonably priced vid cards out there that should improve performance. If you’re on a tight budget, I might suggest a Geforce2 MX card.
Before buying a card, what gfx card do you have at the moment?, how much slower, what sort of stuff are you doing?
I’ll have to get back to you on that, when I get a chance to go to the lab. And I’m not sure about my card, but I believe it is built into the motherboard. My computer was a standard Pavilion model from HP.
Another question, why do professional graphics applications, such as games, run tolerably on my computer if the problem is the video card? One person suggested to me that the reason was because they use assembly code, but I find it hard to believe that is the difference. Shouldn’t openGL run nearly as good as assembly code? Aren’t many games made with openGL? Furthermore, my graphics are much simpler than a game, though I am using openGL’s lighting model and defining a fair number of vertices for that purpose.
I know when I first started on my home computer I was astonished at how slowly my program ran, then I determined that my hardware wasn’t being used because of the framebuffer I was defining (after a lot frustration).
There’s a way to tell what library is being used to run your openGL app. After you set up your windows at such, call:
If it says “Microsoft” then it’s using the software implementation of OpenGL (SLOW), if it says the name of your hardware vendor, then it’s truly going thru the hardware and your problem is elsewhere. If it is using the Microsoft implementation, try different parameters to your framebuffer (bitdepth, resolution, etc.).
Hardware acceleration is just (!?) another computing resource that your system is allowed to play with. Ultimately all a computer is EVER doing is moving numbers around memory. It might be to paste a 32bit number to mean the average age of the population of tibet, or a 32bit number written to the soundcard to represent the amplitude of a wave, or a 32bit number to represent RGBA pixel in graphics.
The CPU is certainly capable of moving numbers around; it is, after all, its job. But if you start tying all the computation required for a game to the cpu, then it doesn’t have as much time to spend on all the required tasks. So, one useful strategy is to add more computing resources. This could be to attach more cpus to the motherboard, or to a tighly coupled network (in super computers) or a loosly coupled network (in beowulf clusters) and/or to add specialised, dedicated computing resources, such as floating point units, sound cards with signal processing chips and graphics cards with rasteriser engines.
So, Nvidia can make a lot of money putting out a single for its GeForce3, but the question you raise is why buy a graphics card if your games run tolerably on your unaccelerated machine. The answer is that games (for example) can do a lot more with the increased computing power. Instead of loading the cpu with all the graphics tasks, it can pass them to another computing resource (the graphics card) instead. The idea, then, is to either free up the cpu or to reduce the time it takes to perform some of the tasks.
When I read the topic, I thought “why would anyone keep their methamphetamine on their PC?”
What I really need is PC on speed…
A PC on speed would give funny results
To get back to the original topic–which has doing speed WITH the PC instead of doing speed of it :
The way you sounded like you had an on-board graphics card. Let me be precise:
This is death itself.
By all means get a new card (off-board!) if that is really the case! Otherwise have a lot of fun with single-digit frame rates!
PS: I got even worse problems: A 166MHz with an S3 Trio V64+! My frame rate for full screen is one frame every 5 seconds!
I am not so sure anymore that my code runs significantly faster on the Silicon Graphics workstations we have at school than my pc at home. So I guess I should ask if it is unreasonable to expect my code to run at the speed I want it to. My geometry is extermely simple, it’s just a rectangluar prism, 800X800X400. (do the dimension units really matter, isn’t it relative to your viewing volume? I mean, couldn’t the box have been 8X8X4 and made to look the exact same if I equally reduced the viewing volume). Anyway, each side of the box is made up of squares that are 100X100 and are alternatey colored so each wall looks like a chess board.
Each 100X100 square is actually broken up into smaller squares of the same color for the purposes of lighting. Each square’s ambient color corresponds to the pure color of that object, the specular color is bright white, and the diffuse color is dim white. I have four red revolving spotlights located near to opposite corners of the inside of the box (it’s supposed to be a room). Now, as for the smaller squares that make up the 100X100 squares, if I draw them as 1X1 I get great lighting effects but the frame rate is like 60 sec/frame. In fact, I don’t really get the animation speed I want unless I set the smallest squares to be 50X50, subdividing each checker section by 4. At that level of detail the animation looks cool, and the lights really look like flashing siren lights, except that of course the outer edges of the spot lights are quite blocky. I realize that I am drawing like 2,560,000 quads if I set the the samllest sqaures to be 1X1(plus all the normals, and GL_NORMALIZE is set). Is that too many for any system no matter what I do to make it faster, or is that not that many? I have no idea. How many polygons per frame should a 533 P3 be able to handle?
[This message has been edited by dhoffman (edited 04-20-2001).]