Extra hardware-based speed-boost?

About Truespace Archives

These pages are a copy of the official truespace forums prior to their removal somewhere around 2011.

They are retained here for archive purposes only.

Extra hardware-based speed-boost? // Feature suggestions

1  |  

Post by Alien // May 6, 2006, 12:41pm

Alien
Total Posts: 1231
pic
So, I was reading this article the other day about the X1xxx series Radeons & the various advances they have over earlier models, & came across something rather interesting. I'm sure most of us have heard the term "programmable GPU" used here & there, & mostly it tended to be associated with the topic of shaders, eg game developers being able to create their own custom shaders, etc. Nothing a lot of us haven't heard before, right? Well apparently the X1xxx series GPUs can be programmed to do a lot more than just shaders.


Have a read of this (http://enthusiast.hardocp.com/article.html?art=ODIyLDcsLGhlbnRodXNpYXN0). That's just 1 page from a multi page article, but I thought it was the most interesting 1. Imagine: You have 1 card for normal graphics card tasks [eg tS, display, etc], & then if you had an SLI [presumably a Crossfire board would work as well] motherboard with 2 PCI-E slots, you could add in 1 of the cheaper X1xxx series cards [like an X1300] & get that to help take some of the load for a Lightworks or Vray render [I think I read somewhere that VL isn't multi-threaded]. Given that an X1300 or even an X1600 can be had for £100 or less, that's a pretty cheap speed boost.


There's just 1 problem - Caligari would have to add the extra code for it to tS [apparently ATI's looking for developers to make use of this new feature]. I have no idea how big a job it would be. I know tS7 is designed to be a lot more multi-processor friendly than any previous version, & the new core is supposed to be designed in such a way that makes adding new features significantly easier, but I'm neither a programmer, nor 1 of the tS Devs, so I don't know if it would actually be feasible. If, for example the task would be a similar size undertaking to the new stuff we're all waiting for in 7.5 then I think it would be worth Roman & co giving some serious thought to.


BTW - in theory you could also get it to boost physics in the player as well.

Post by xmanflash // May 6, 2006, 8:39pm

xmanflash
Total Posts: 335
I think thats a great idea, BUT doesnt DirectX 10 already cater for this? - I dont know much.... but I know I love it...

Post by tomasb // May 7, 2006, 12:03am

tomasb
Total Posts: 261
GPU can be used for tasks in which you apply the same procedure on the big amount of data.

But, for example when raytracing, procedure to use is dependent on the matarial ray hits, so if we want to use GPU to speed up offline rendering you need optimizations in LW or VRAY in the first plance (for example render triangle IDs as colors and use backbuffer for fast detection of intersections for first ray, also post processing filters can be made on GPU very effectively)

Post by Alien // May 7, 2006, 2:07am

Alien
Total Posts: 1231
pic
I think thats a great idea, BUT doesnt DirectX 10 already cater for this? - I dont know much....

Well, yeah, AFAIK, but there's a couple of probs with that - AFAIK there are no plans to release DX10 for XP [Vista only], & also tS7 is DX9.0c, not DX10.


IIRC, all DX10 cards will feature this feature/ability, ATI's just a bit ahead of the curve. :)


but I know I love it...

But not enough to vote? :p


GPU can be used for tasks in which you apply the same procedure on the big amount of data.

But, for example when raytracing, procedure to use is dependent on the matarial ray hits, so if we want to use GPU to speed up offline rendering you need optimizations in LW or VRAY in the first plance (for example render triangle IDs as colors and use backbuffer for fast detection of intersections for first ray, also post processing filters can be made on GPU very effectively)

:eek: That's a bit over my head Tomas, but I know you know what you're talking about so I'll take your word for it. :) What about using a spare/secondary [suitable] GPU for physics in the player? & is there a chance that we might actually see this feature [the ability to utilise the power of a secondary GPU for anything possible] implemented in tS 7.x?

Post by tomasb // May 7, 2006, 3:26am

tomasb
Total Posts: 261
:eek: That's a bit over my head Tomas, but I know you know what you're talking about so I'll take your word for it. :) What about using a spare/secondary [suitable] GPU for physics in the player? & is there a chance that we might actually see this feature [the ability to utilise the power of a secondary GPU for anything possible] implemented in tS 7.x?


When you check Havok FX, you will notice that GPU simulated objects are very simplified - they call it Debris Primitive - which has very simple geometry (sphere or may be some convex shape). This has 2 groups of major problems for us: you cannot use meshes and after computing transformations on HW you need to get data back to our transform nodes - both these would significantly drop usability & performance.

But it may be possible for example to simulate fur or particles on GPU - this would fit into it very well...


Player physics performance is not the best yet because all collisions are mesh-mesh which is very complex and slow. We are preparing possibility to use simplified collision shapes - for example box, sphere... for which the collision will be much faster. for example you can collide 500 analytical spheres in the time you collide 20 made with low poly meshes...

Post by Alien // May 7, 2006, 5:50am

Alien
Total Posts: 1231
pic
When you check Havok FX, you will notice that GPU simulated objects are very simplified - they call it Debris Primitive - which has very simple geometry (sphere or may be some convex shape). This has 2 groups of major problems for us: you cannot use meshes and after computing transformations on HW you need to get data back to our transform nodes - both these would significantly drop usability & performance.

I was going to say that as I'm not much of a gamer I didn't think I'd actually experienced Havok, though I have seen videos of it, but then I remembered Max Payne 2 - I just checked & apparently it was 1 of the 1st to use Havok FX, so yeah, I have seen it in action. :)


But it may be possible for example to simulate fur or particles on GPU - this would fit into it very well...

Cool, the more acceleration the better. :)


Player physics performance is not the best yet because all collisions are mesh-mesh which is very complex and slow.

Just a thought, but could you increase the versatility of the method you describe by...not sure how to describe this...


You know how with current [modeler/6.6] character animation, you create a character & then add the skeleton to it, & [for example] 1 bone moves the upper arm, 1 moves the lower arm, etc? Well I was thinking, what if you were going to do a physical simulation of a person - you could have some sort of procedure that would "map" analytical spheres/cubes to the various parts.


Sure it still wouldn't be a perfect match, but it would be closer than just 1 elongated cube for the whole character. I was thinking you could have a choice between manual or automatic analytical shape "mapping". Manual could work kinda like adding a skeleton to a model, the user selecting analytical cube or sphere [or other shapes if there are other analytical shapes - I only know what you've said in this thread] for each section of the model & then sizing it to match the model as closely as possible.


I was thinking automatic could work kinda like the shrinkwrap UV tool, & then the user could fine-tune it afterwards.


Maybe it's not a very practicle idea, or wouldn't work, but.... http://homepage.ntlworld.com/alien42/smilies/dunno.gif


We are preparing possibility to use simplified collision shapes - for example box, sphere... for which the collision will be much faster. for example you can collide 500 analytical spheres in the time you collide 20 made with low poly meshes...

I have actually done very little with the player [almost nothing]. I'd like to give it a go, but sadly my 9600 Pro just doesn't have enough oomph. :( A new card is on my list of things to get. If I buy a brand new it won't be until at least after I replace both monitors, but I've been keeping my eye on eBay as well, just incase any bargains crop up.


It's a shame that some of the grunt-work of either LW or Vray can't be handed off to a GPU [I mean 1 running in a secondary card, not 1 that's handling display work at the same time] without modification to the actual renderers. :(

Post by tomasb // May 7, 2006, 6:39am

tomasb
Total Posts: 261
You know how with current [modeler/6.6] character animation, you create a character & then add the skeleton to it, & [for example] 1 bone moves the upper arm, 1 moves the lower arm, etc? Well I was thinking, what if you were going to do a physical simulation of a person - you could have some sort of procedure that would "map" analytical spheres/cubes to the various parts.


there is a difference in how to map mesh to skeleton (skinning...) and between how to simulate it (IK, physics)... Doing physical simulation of a person if you don't want to simulate ragdols only is a pretty tricky and for good looking simulation you need to incorporate "character behavior" to it.



I was thinking automatic could work kinda like the shrinkwrap UV tool, & then the user could fine-tune it afterwards.


for skinning & characters... we are preparing something to 7.5 ;)



I have actually done very little with the player [almost nothing]. I'd like to give it a go, but sadly my 9600 Pro just doesn't have enough oomph. :( A new card is on my list of things to get. If I buy a brand new it won't be until at least after I replace both monitors, but I've been keeping my eye on eBay as well, just incase any bargains crop up.


hopefully 7.2 (or 7.5) will bring tools that would move you :-).

Post by splinters // May 7, 2006, 6:51am

splinters
Total Posts: 4148
pic
I have actually done very little with the player [almost nothing]. I'd like to give it a go, but sadly my 9600 Pro just doesn't have enough oomph. :( A new card is on my list of things to get. If I buy a brand new it won't be until at least after I replace both monitors, but I've been keeping my eye on eBay as well, just incase any bargains crop up. :(


Strange that-I used a Radeon 9600 for testing; it was OK and my 9800 Pro fair whizzes through on most player scenes...:confused:

Post by Alien // May 7, 2006, 7:20am

Alien
Total Posts: 1231
pic
there is a difference in how to map mesh to skeleton (skinning...) and between how to simulate it (IK, physics)... Doing physical simulation of a person if you don't want to simulate ragdols only is a pretty tricky and for good looking simulation you need to incorporate "character behavior" to it.
I'm already way out of my depth here, but I may as well continue... :) What about... some sort of variable level of detail. Not sure how it'd work, but maybe it could do a quick run through with those analytical shapes you mentioned, so as to get a general idea of where everything's going, & then where it detects 2 objects are going to collide, switch to the more detailed kind of physics, but keep the analytical stuff for the rest of the scene that doesn't need so much detail.

Hmm... thinking about it, it might not be able to automatically make the necessary adjustments to level of detail, or doing so might be too complicated a task, but perhaps if you ran through the 1st time with analyticals so the user could see where stuff would go, & then maybe select certain objects that needed more detailed level of simulation & mark them as such. That way you wouldn't have to choose between fast but not so accurate analyticals or the more accurate but slower method, you could have the best of both & presumably the speed would be somewhere inbetween the 2.

for skinning & characters... we are preparing something to 7.5 ;)
Yeah, I figured you were, but I wasn't talking about skinning as such, I was using skinning as an analogy.

hopefully 7.2 (or 7.5) will bring tools that would move you :-).
I don't doubt it. :) Infact according to Roman there's a strong possibility that the wireframe floor grid thing will be in 7.2, at which point I might try player with everything in wireframe & see if that works a bit faster.

Strange that-I used a Radeon 9600 for testing; it was OK
Standard, Pro, or XT?

and my 9800 Pro fair whizzes through on most player scenes...:confused:
That's not surprising, considering it has double the Vertex & Pixel pipelines, double the pixel shader engines, & double the memory bandwidth of the 9600 Pro [256bit bus, as opposed to the 96's 128bit]. Granted the 9800 [assuming you have the standard, rather than pro, XT, etc] does have a lower core clock speed [325Mhz] than the 9600 Pro [400Mhz], but that doesn't matter when it has all the above mentioned advantages.

Admittedly I tested it out on my primary display & it was slightly faster on primary rather than secondary, but the difference was barely noticeable.

Post by tomasb // May 7, 2006, 9:25am

tomasb
Total Posts: 261
I'm already way out of my depth here, but I may as well continue... :) What about... some sort of variable level of detail. Not sure how it'd work, but maybe it could do a quick run through with those analytical shapes you mentioned, so as to get a general idea of where everything's going, & then where it detects 2 objects are going to collide, switch to the more detailed kind of physics, but keep the analytical stuff for the rest of the scene that doesn't need so much detail.


Hmm... thinking about it, it might not be able to automatically make the necessary adjustments to level of detail, or doing so might be too complicated a task, but perhaps if you ran through the 1st time with analyticals so the user could see where stuff would go, & then maybe select certain objects that needed more detailed level of simulation & mark them as such. That way you wouldn't have to choose between fast but not so accurate analyticals or the more accurate but slower method, you could have the best of both & presumably the speed would be somewhere inbetween the 2.


for various speeds you can use various approximations for collisions - highest speed: sphere, mid speed: convex hull, low speed: mesh. something similar is planned...

Of course before actually detecting intersection points you make broad phase detection - ckecking whether bounding boxes intersect. Then you check collisions only for objects that intersect.

Post by xmanflash // May 7, 2006, 2:26pm

xmanflash
Total Posts: 335
for various speeds you can use various approximations for collisions - highest speed: sphere, mid speed: convex hull, low speed: mesh. something similar is planned...

Of course before actually detecting intersection points you make broad phase detection - ckecking whether bounding boxes intersect. Then you check collisions only for objects that intersect.


Yep - that makes sense - use the GPU to do the 'low res' collision detection and then flip the result back to the normal engine.. and putting hair or particles into the second GPU would be a great feature!

Now if the TS 7.5 tools work as well as/are as easy to use as Project:Messiah then I'm in! - Its 'dons-trex' example had my kids in stiches!!

Post by Alien // May 7, 2006, 3:27pm

Alien
Total Posts: 1231
pic
for various speeds you can use various approximations for collisions - highest speed: sphere, mid speed: convex hull, low speed: mesh. something similar is planned...

Of course before actually detecting intersection points you make broad phase detection - ckecking whether bounding boxes intersect. Then you check collisions only for objects that intersect.

Yeah, that was what I was trying to describe, you just did a [much] better job of it than I could.

:banana:


Yep - that makes sense - use the GPU to do the 'low res' collision detection and then flip the result back to the normal engine.. and putting hair or particles into the second GPU would be a great feature!

Definitely! :)


Its 'dons-trex' example had my kids in stiches!!

Not having used that software I've not seen the example you speak of, but if you can find it, try looking for an animation called "Bingo". IIRC, it was done in Maya. If someone could produce something like that with tS, that would really make people sit up & take notice.


P.S. your kids will love it. :D

P.P.S. depending on age, don't be surprised if after seeing it they go through a phase of sneaking up on people & making them jump out of their skin by yelling "Hi Bingo!". :D

Post by xmanflash // May 7, 2006, 11:38pm

xmanflash
Total Posts: 335
Not having used that software I've not seen the example you speak of, but if you can find it, try looking for an animation called "Bingo". IIRC, it was done in Maya.


Hehe - will have a look..


The Demo of Project:Messiah is all you need to check out the dinosaur.. The think I liked about the interface to that software is that I had worked out a great deal of the functionality with a little bit of prior knowledge, and found it extremely rewarding.

Post by Alien // May 8, 2006, 1:59am

Alien
Total Posts: 1231
pic
Hehe - will have a look..

Found it (http://youtube.com/watch?v=PYSj-nqvmes&search=bingo), though unfortunately it's a rather low quality copy, but I couldn't find a better 1. What makes it more impressive is apparently it was made 8 years ago!


I think I have a somewhat better quality version on a magazine CD somewhere, but I have no idea where it is, & nowhere to upload it to [IIRC it's ~60MB].

Post by xmanflash // May 8, 2006, 6:24am

xmanflash
Total Posts: 335
Found it (http://youtube.com/watch?v=PYSj-nqvmes&search=bingo), though unfortunately it's a rather low quality copy, but I couldn't find a better 1. What makes it more impressive is apparently it was made 8 years ago!


I think I have a somewhat better quality version on a magazine CD somewhere, but I have no idea where it is, & nowhere to upload it to [IIRC it's ~60MB].


Wow - you are right - ist amazing for all that time ago.. and still good by todays standards! Weird, but good! :-)
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn