Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Diasapandra

Multiple Movies within a 3D Scene

This topic is 5282 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, We are currently trying to develop a 3D engine who'' main capability (and downfall) at the moment is loading VRML2 models which have multiple objects textured with video. The main problem that we have is that we are developing on an SGI Reality Center under IRIX 6.5.21, using the TGS Open Inventor API and the performance is terrible. After a great deal of testing of different configurations I''ve come to the conclusion that this is due to the video textures, as the models are only around 20k polys. So my question is this. After searching around the net I found very few if any references to anyone attempting this sort of project (multiple video textures). I was wondering if anyone had advice or information in regards to a similar idea, not just for OpenInventor but any 3D API?

Share this post


Link to post
Share on other sites
Advertisement
How are you playing back your videos? DO you have a library which decodes the videos?
How are you displaying them? As textures?

Share this post


Link to post
Share on other sites
The video''s are triggered individually upon mouse click, and as far as I know just use the standard IRIX MPG decoder. I have no way of knowing this for certain as the TGS OpenInventor API is not open source.

Share this post


Link to post
Share on other sites
From my experience, there are likely to be 2 bottlenecks :

1) Decoding of video
With many videos, decoding videos can be very taxing on the CPU. It could change with the newer gfx cards which can decode mpg videos on hardware.

2) Disk I/O
Usually this can be solved by keeping the streaming of the data from disk in another thread, so that the CPU wont stall while waiting for the Disk to read.

Share this post


Link to post
Share on other sites
I don't know anything about Irix or SGI but... I've played around with video decoding lately (using ffmpeg lib with OpenGL and DirectX9) and have this to say:

Video dimensions greatly affect graphics card performance. Textures are scaled to powers of two, so keep that in mind. I have had satisfatory results decoding up to 3 mpegs at once on textures meshes (though considerably less than 20k).

One thing to keep in mind... If you can sacrifice disk space over runtime decoding (by using raw YUV format or such), you might get better decoding increases, which would only help you as long as it's not your graphics card slowing you down.

[edited by - pjcast on June 2, 2004 1:08:14 AM]

Share this post


Link to post
Share on other sites
Thanks for your replies, reading over what I''ve put in I think I need to explain more. The application I''m developing is supposed to be a 3d representation of information organised by topic into rooms, sub-topics on walls etc. The movies in question are mapped to "screens" which are basically rounded cubes, using indexed faces, so that the "screen" has borders and a rear section, its only 1 face on the front of the object that the movie is mapped onto.

I think the problems I am running into are related to the system that I am running the application on. Upgrading for the moment is out of the question, as new graphics boards for SGI systems cost around a couple of 100k (for something that a standard nVidia or ATI system can blow away).

I was just curious as to whether anything similar to this had been attempted elsewhere, not just on SGI systems but Windows, or Linux.

Share this post


Link to post
Share on other sites
btw:

All of the movies are in powers of 2, and are for the most part very small ~1Mb, with 4 at 5Mb.

If you dont know very much about SGI''s you probably wont understand this;
I currently think it is the SGI system. It is very resistant to programs operating over multiple pipes, and as the code is written in TGS OpenInventor is is unable to spread the load of the videos across all of the 8 CPU''s in the system as the movie texture code is not thread safe.

Currently the only 3d API that we are able to use that fully leverages all of the hardware in the system is Performer, which as anyone who has coded it knows, is incredibly slow to develop in with a huge amount of work to get the most basic functionality operating correctly.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!