> We're currently using OpenInventor on the SGI and we're considering
> porting to the PC if we can do it without significant performance loss.
> My basic question is:
> What's the best way to measure OpenInventor performance on PC?
> Here's what we've done so far:
> We've downloaded TGS's OIV toolkit for Windows and run the
> LargeModelViewer on some of our representative data sets.
> LargeModelViewer displays frames per second and decimation stats in the
> status bar. But what I find is that performance is related to CPU speed
> regardless of hardware acceleration. (It doesn't seem to matter what
> graphics card I'm using.) That can't be right.
> My understanding is that SceneViewer uses the same classes as ivview
> (which is what our PC apps would use), so maybe this would be a more
> appropriate test. But SceneViewer doesn't display performance info
> directly. (I still have to test with SceneViewer to see if there is a
> noticeable, qualitative improvement with graphics acceleration.)
> Recommendations for benchmarking would be greatly appreciated.
This may repeat some of the info you've already gotten from the
TGS Hotline, but since it may be of general interest...
As Stan already pointed out here, ivPerf is actually the best
tool for benchmarking because it runs a tight loop calling
render() and so eliminates any overhead associated with the
viewer, the timer queue, etc. The next best tool would be the
LargeModelViewer because it a) shows performance stats (with
viewer overhead) and b) allows you to toggle some interesting
features on and off. By the way, the LargeModelViewer and the
SceneViewer use the same (standard OI) viewer classes.
If you don't seem to be getting HW acceleration, a good first
step is to check if there is any. :-) The "oglinfo" tool we
provide is handy for this. If you don't see any accelerated
pixel formats and you expected some, try changing the screen
resolution and/or color depth. Some boards don't have enough
memory to provide front, back and depth buffers at high res.
A quick and dirty test for HW acceleration is to compare the
performance between a small window and a big window. Software
rendering will typically be much slower in a big window.
If you are getting HW acceleration but it doesn't seem good
enough... there are a lot of possibilities. :-) There is a
white paper about this for OI and also some good/relevant
material on www.opengl.org. One important difference from
your SGI machine: low-end 3D boards for PCs only accelerate
rasterization. If you have 100K triangles, performance may
be limited because transforms, clipping and lighting are done
by the cpu. To solve this you need a faster cpu (sadly OpenGL
for Windows is not yet optimized for the Pentium III) or a
more expensive board with a geometry processor.
Keep in mind you'll probably never get the manufacturer's
claimed triangles-per-second unless you spend a lot of time
(like they did :-) tweaking your code. And the tweaking you
already did for an SGI machine is not necessarily optimal for
any given PC 3D board.
TGS Inc, http://www.tgs.com