Sign in to follow this  

High performace graphics and effects

This topic is 2961 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 All, Im on a new project and basically we are working with a firm who creates concepts that, at the end of the day, we need to implement. Currently we are using WPF for our View stack, but XNA is an option for us, although I dont really have much (i do have some) experience with XNA. We are working on Microsoft Surface, and I have seen their (Microsoft) water effect stuff which is written in XNA, and it performs soooo well when heaps of people are touching it (creating a water ripple effect). Basically we are trying to get two things (which are similar but for different releases). 1. An ice frosting over effect, when a user touches an object on the screen, it should frost over, and reveal an ice texture, but using WPF at the moment to play a pre-baked video, does not perform very well when there are lots of people touching it (i.e. lots of videos are playing) 2. A green aura like glow to appear from under the users finger when they touch a blue rectangle. This should look like the aurora-borielis (sp?), but again performance is our biggest issue. So, I know that XNA is the go-to for us to roll these effects out, but there are a few issues... 1. Where to start (as the dead line is soooo short :( ) 2. How to make use of the "after effect" artists that we have available to us (currently they are just creating the videos that I spoke of, which look freaking awesome, but at the end of the day, cant be used if they perform so badly). Maybe I could just get them to make some nice textures. Im really just reaching out as a last resort for some help here... ANY guidance/help is greatly appreciate, Thanks Mark

Share this post


Link to post
Share on other sites
I am not an expert but I'll throw some ideas anyway.

For the ice - frosting effect all you need is an ice texture and an animation that goes from a regular object to an icy object. When the user touches the screen on the object ( I assume it's the same as clicking it with the mouse ) , you just transform the screen coordinates to 3D coordinates , Identify the object , invoke its frosting animation and change it's base texture to an ice texture.
I'm not really sure how can you account for a number of people , using threads maybe while doing the same thing.

For the green aura , you could use a small polygon that will be rendered at the coordinates your finger is pointing and apply a glow effect on it ( I have a vague idea about making a post - process glow effect , but i'm pretty sure it could work ). A different approach is to use an animation maybe, and invoke it whenever you are on a blue rectangle.

Anyway , just some ideas :)

Share this post


Link to post
Share on other sites
Actually, running "video" (as long as it has a very limited number of frames) is rather simple with GPU accelerated APIs. Since the GPU just renders the whole screen every frame, you can simply pick the correct frame for each video instance.
As far as the software is concerned, it is simply rendering several instances of different frames at different locations on the screen. Any decent GPU should be fully capable of drawing multiple "videos" at the same time on different parts of the screen (under people's fingers, in your case).
I'm sure there are other more complex options, but given your already available art, this sounds like a solution that should be easy to implement and will probably scale well.

Hope this helps.

Share this post


Link to post
Share on other sites
If you want to play videos in XNA, you can use the handy VideoPlayer class. This can give you the video stream as a texture, which you can then do whatever you want with.

Also keep in mind that there are tons of samples over at creators.xna.com...there's lots of great stuff on the basics. Unfortunately they're mostly going to be aimed at games, and they're going to use the Game class (which you most likely won't want to use for your app). Also if you're not familiar with 3D graphics then it will probably be pretty overwhelming for a while...there's a lot to know about how the GPU pipeline works and how you can make it do what you need it to do.

Share this post


Link to post
Share on other sites
Hi everyone,

Thanks so much for the replies, I appreciate the thoughts, one thing that I do keep reading is that my implementations as they are should scale well, but they are not... It must be something I am doing wrong, so what Ill do is break down my app into pieces and try to determine what is causing the slow down in performance.

Thanks again

Share this post


Link to post
Share on other sites

This topic is 2961 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this