Dynamic Branching demo by Humus!

Here's a demo that implements dynamic branching with very basic features. Only alpha test and stencil test is needed to perform real dynamic branching. It will require two passes though, but the workload is actually the same. So when ps3.0 can be used to speed things up, you can usually use this technique too, and still get the same performance boost. Compare by turning dynamic branching on/off on the F1 menu. The performance boost should be in the 2-4x range.

http://www.rage3d.com/board/showthread.php?t=33767327
 
Very cool demo. Extremely fast on my modded X800 Pro. I have a feeling the tide is going to shift soon.
 
Uhh, ok I'll admit this...

What exactly is dynamic branching. Anyone have a good explanatory link?
 
So could this work with FarCry 1.2? Doesn't FarCry 1.2 use Dynamic Branching?
 
Moofasa~ said:
So could this work with FarCry 1.2? Doesn't FarCry 1.2 use Dynamic Branching?

It uses Pixel Shader 3.0 dynamic branching, which the X800 series do not support.

It also uses vertex instancing, which the X800 series do not support.
 
Brent_Justice said:
It uses Pixel Shader 3.0 dynamic branching, which the X800 series do not support.

It also uses vertex instancing, which the X800 series do not support.

I mean yes I realize that, I worded my first post wrong. I meant to ask, could a new Catalyst driver or a new patch in FarCry give the X800 the same performance increase with Humus' dynamic branching as the 6800 Ultra's performance increase with PS3.0 dynamic branching?
 
Moofasa~ said:
I mean yes I realize that, I worded my first post wrong. I meant to ask, could a new Catalyst driver or a new patch in FarCry give the X800 the same performance increase with Humus' dynamic branching as the 6800 Ultra's performance increase with PS3.0 dynamic branching?

You'd have to ask the developers that question.
 
Moofasa~ said:
I mean yes I realize that, I worded my first post wrong. I meant to ask, could a new Catalyst driver or a new patch in FarCry give the X800 the same performance increase with Humus' dynamic branching as the 6800 Ultra's performance increase with PS3.0 dynamic branching?

A driver cant. About a patch, only crytek could answer that
 
Brent_Justice said:
You'd have to ask the developers that question.


Hmmm, ok thanks Brent. In addition, off hand, do you know how hard it would be to put Humus' dynamic branching in games (do you feel this is a feature that developers would use)?
 
MrHappyGoLucky said:
Very cool demo. Extremely fast on my modded X800 Pro. I have a feeling the tide is going to shift soon.

I have that feeling too.

Oh wait nope nope, I forgot I left my hand in my jeans again.
 
Moofasa~ said:
Hmmm, ok thanks Brent. In addition, off hand, do you know how hard it would be to put Humus' dynamic branching in games (do you feel this is a feature that developers would use)?

Humus said:
No, it's not hard. It's very simple. But of course it's still more convenient to do it in ps3.0.
Why it's not been used is probably mostly a matter of not being aware of the possibility. All cards that supports early stencil culling can do this.
The limitations to this technique is that it's multipass, thus is hard to combine with transparent surfaces. It also uses stencil, which a game may use for something else. On the other hand, there are typically enough bits left to make it possible to combine. The strength is of course the performance.

http://www.rage3d.com/board/showthread.php?t=33767327&page=3&pp=30

Right from the horses mouth.
 
Moofasa~ said:
Hmmm, ok thanks Brent. In addition, off hand, do you know how hard it would be to put Humus' dynamic branching in games (do you feel this is a feature that developers would use)?

I have no idea what it is or how it works or what it would take to implement it. Humus is better suited to answer your question.
 
I meant to ask, could a new Catalyst driver or a new patch in FarCry give the X800 the same performance increase with Humus' dynamic branching as the 6800 Ultra's performance increase with PS3.0 dynamic branching?

Unfortunately Dynamic Branching in FarCry apparently didn't work out too well in the 1.2 patch. According to the devs, they really couldn't get the gains they wanted with it and used static branching instead. It seems the majority of the gains we saw in the 1.2 patch were from SM3.0's geometry instancing, not dynamic branching.

As for Humus' demo, the technique he used has been around for a long time, but devs have chosen not to use it even though it is common knowledge. It's yet to be seen if they will use it in a full scale game, but IMO its doubtful because if it was truly useful or worth implementing they probably would have used it by now. It also doesn't work for the FX 5xxx series of cards, though it does work on the 9800, x800, and 6800 series.

SM3.0 would be a wiser investment of development time as it will provide performance improvements for not only this generation of cards, but the next one as well, making the game's engine more "future proof." Plus SM3.0 allows for other performance improvements as well, such as the aforementioned geometry instancing, which apparently in Far Cry was much more useful than dynamic branching.

This particular technique would only be useful to two generations of ATI cards, and that's about it.
 
Before the entire "3D Technology and Hardware" forum at Beyond3D was wiped clean because of rampant fanboyism, Humus started a thread about this. It turned into what I'm guessing was the main reason why the forum was wiped, feel free to read it for yourself:
http://www.beyond3d.com/forum/viewtopic.php?t=13716

Here's a thread with a little more technical info:
http://www.beyond3d.com/forum/viewtopic.php?t=13751

I'm not sure how useful Humus' technique really is, but since the algorithm has been around for years, I'm guessing it isn't all that useful in real games.
 
tranCendenZ said:
This particular technique would only be useful to two generations of ATI cards, and that's about it.

right now SM 3.0 is only useful to one generation of NVIDIA cards, and that's about it

;)
 
Brent_Justice said:
right now SM 3.0 is only useful to one generation of NVIDIA cards, and that's about it

;)

Point. But it'll trickle down to ATI eventually, like a hand-me-down. ;)
 
Brent_Justice said:
right now SM 3.0 is only useful to one generation of NVIDIA cards, and that's about it

;)

The difference is, SM3.0 will be useful to this generation of Nvidia cards, and generations of Nvidia & ATI cards from here on out.

Humus' technique is not useful for any Nvidia card, is not useful on any ATI card before the 9700, and will not be useful on any ATI card after the x800. Therefore its only useful on two generations of ati cards, ever - r3xx, and x8xx, and thats it :)

In other words, if developers go for SM3.0 they are developing for both now and the future. If they develop using Humus technique, they basically are just developing for two generations of ATI cards that would benefit from the speed boost, not the future or even the past really. It's similar to devs putting in an NV3X path.
 
Do any of you understand what he is doing? Well, I examined it, and from what I gather it would not be usefull in a gaming situation at all. What he did was store various light maps for different positions, (almost like cheating - like precompiling) And for most games would not be useful.

You would have to pre compute for millions of different possible light sources.... ex: a rocket with a lighted tail.... how would you calculate all of the possible places it could be fired from/to, etc.

In a few rare cases it could be used.... ex: static lights, etc.... but game devs dont want to have to do all of that work. Its the equivalent of using HTML pages for a forum and having to edit every single page instead of an .asp or .php template. Game devs want to build a 3D engine that does almost everything for them. I just dont see it being used in games anytime.

The future of gaming is to include fewer textures and light maps.... and more shaders that generate the surfaces, etc.
 
In a few rare cases it could be used.... ex: static lights, etc.... but game devs dont want to have to do all of that work. Its the equivalent of using HTML pages for a forum and having to edit every single page instead of an .asp or .php template. Game devs want to build a 3D engine that does almost everything for them. I just dont see it being used in games anytime.

I'm not so sure about that, once something is made coders tend to copy and paste entire pages of information if its public opensourced. Sure it may only be one line of code with the new way and 10 lines the old way, but once one person finishes it everyone can use it. Sort of like assembly, there are still plenty of people who copy and modify assembly code for the fastest speed. You could use a single line of code and writeln "Hello world" or you can use 10 lines of assembly like "MOV AX,BX", etc...

Yeah, it does not sound like the current scheme he uses would be too useful in gameplay situations. But it would be useful for cutscenes and animation rendering.
 
ZenOps said:
I'm not so sure about that, once something is made coders tend to copy and paste entire pages of information if its public opensourced. Sure it may only be one line of code with the new way and 10 lines the old way, but once one person finishes it everyone can use it. Sort of like assembly, there are still plenty of people who copy and modify assembly code for the fastest speed. You could use a single line of code and writeln "Hello world" or you can use 10 lines of assembly like "MOV AX,BX", etc...

Yeah, it does not sound like the current scheme he uses would be too useful in gameplay situations. But it would be useful for cutscenes and animation rendering.

Where did I say you have to copy the code? That would be easy if it was just copy & pasting code. Its not, its building light maps for every specific instance all over the place. You would have to build and precode for every possible light combination. The point is you would have to generate lightmaps for every instance all over the place and it would be a big pain in the butt for a whole game. For a small little tech demo, or cut scene, or isolated room, etc. MAYBE.

But not nearly as efficient as a game engine. (ex: compare a Database driven website or forum with templates, vs html for every page and manually typing in each entry for every person as its submitted, not just copy & pasting)

Ex: game engine vs. mutliple light maps for every angle.

I'm simplifying it... but it real world use of a game I doubt you will see (a derivative of) his work. Now for a small demo, etc.. maybe.
 
It doesn't sound much worse than a 3D programmer inputting and creating 64 textures for a 3D object instead of 16 because he/she wants to make it look a little better with a higher order surface done manually. Sure its more work, but I think the idea he was trying to get across is that it could be done.
 
Yes Christmas will be a nice time to play Far Cry again when the 1.2 patch is finally out!

:D
 
evilchris said:
It'll get here before X800XT's hit retail I wager.

Well I guess I pulled my X800XT out of my ass then.

On a serious note I have yet to see any of the high end cards on a shelf anywhere, 6800 Ultra or X800XT. Pretty sad if you ask me.

Okay, you fanboys can go back at it now!
 
Arioch said:
Well I guess I pulled my X800XT out of my ass then.

On a serious note I have yet to see any of the high end cards on a shelf anywhere, 6800 Ultra or X800XT. Pretty sad if you ask me.

Okay, you fanboys can go back at it now!

Arioch, you being one of the 10 who has an X800XT doesn't mean it is readily available at retail. Use your brain.
 
Arioch said:
On a serious note I have yet to see any of the high end cards on a shelf anywhere, 6800 Ultra or X800XT. Pretty sad if you ask me.
Haven't seen any here either in LA County. Pretty sad really. The 6800GTs just started showing up on retail shelves last week here.
 
evilchris said:
Arioch, you being one of the 10 who has an X800XT doesn't mean it is readily available at retail. Use your brain.

I suppose there are 474646433 freaking people with 6800 Ultras then. Neither card is exactly falling off of store shelves anywhere. Let's just leave this witty banter where it is - there is enough silly crap on this board anyway.

I am still trying to score me a 6800 Ultra anyway. I may either do a SFF with my ATI card or put it in my old PC.
 
Arioch said:
I suppose there are 474646433 freaking people with 6800 Ultras then. Neither card is exactly falling off of store shelves anywhere. Let's just leave this witty banter where it is - there is enough silly crap on this board anyway.

I am still trying to score me a 6800 Ultra anyway. I may either do a SFF with my ATI card or put it in my old PC.
Quote me where I said Ultra's were available.
 
evilchris said:
Quote me where I said Ultra's were available.

Ok I jumped the gun on that one - sorry. Some of the threads here bring out the darkside in me I think.
 
Back
Top