vertex/pixel shaders
by Ben Tormey · in Technical Issues · 03/15/2001 (10:24 pm) · 33 replies
How does the V12 engine incorporate DX8 vertex/pixel shaders into the rendering pipeline?
#2
As well, shaders aren't going to be too relevant until everyone has a GeForce3 or Radeon2 (or some other future card that might support shaders). For anything other than brief, irregular effects (say, an explosion), running them in software isn't to swift of an idea.
03/15/2001 (11:14 pm)
My guess is that it doesn't, being that the engine was in development for a significant amount of time before DX8 was released.As well, shaders aren't going to be too relevant until everyone has a GeForce3 or Radeon2 (or some other future card that might support shaders). For anything other than brief, irregular effects (say, an explosion), running them in software isn't to swift of an idea.
#3
03/15/2001 (11:46 pm)
Shaders don't have to wait for the widespread use of the Geforce 3 or Radeon 2 to be relevant. The X-Box makes them relevant now.
#4
03/16/2001 (2:50 am)
The V12 does not support DX8 shaders. Shaders didn't show up until the engine was almost done. Sounds like something to work on though :)
#5
Out of curiosity, have they been implemented yet? Does the V12 support any of the GeForce 3 DX8-specific functions?
--
Troy
02/06/2002 (5:52 pm)
You said that the DX8 shaders were "something to work on." It's been awhile since you posted this (nearly a year.Out of curiosity, have they been implemented yet? Does the V12 support any of the GeForce 3 DX8-specific functions?
--
Troy
#6
Jeff Tunnell GG
02/06/2002 (6:39 pm)
At the present time, we are leaving shaders up to the community to implement. They are only supported in certain cards. Instead, we are continuing to implement features that will help enhance gameplay and game types. Having fancy fog or lighting effects will make your game look cooler, but not play better. Whereas, getting vehicles to run properly opens up an entire category of games. So, we are concentrating on this bigger issues.Jeff Tunnell GG
#7
Its on my todo list like everything else.
I dare say that some of us will do this (whilst updating the shape code) at some time in the future.
Phil.
02/06/2002 (7:08 pm)
Here here Jeff, making the engine render differently is whats going to set the game apart *other than content* so its wise to get people to implement special rendering themselves.Its on my todo list like everything else.
I dare say that some of us will do this (whilst updating the shape code) at some time in the future.
Phil.
#8
Which means, of course, that just because a game uses the V12 engine does not mean that it doesn't use shaders, correct?
Thanks again.
--
Troy
02/06/2002 (7:34 pm)
Thank you. So, as I understand it, DX8 shaders can still be taken advantage of in a game that uses the engine, but the game itself would have to make the calls and not rely on the engine to do the work. Which means, of course, that just because a game uses the V12 engine does not mean that it doesn't use shaders, correct?
Thanks again.
--
Troy
#9
As far as the Torque rendering pipleline being converted to be exclusively shaders that will happen at bit later, when a larger percentage of the market has cards that support shaders. Right now I would guess is is under 5% of the market.
--Rick
02/06/2002 (7:44 pm)
Correct. All objects in the engine render themselves, if someone wants to add some special shader rendering for some objects in their game they have direct access to OpenGL and can easily do that.As far as the Torque rendering pipleline being converted to be exclusively shaders that will happen at bit later, when a larger percentage of the market has cards that support shaders. Right now I would guess is is under 5% of the market.
--Rick
#10
First, Troy claimed that Tribes2 used DX8 pixel and vertex shaders. I provided a wealth of evidence and referred him to this thread to show that it did not, but he's now using the more recent replies in this thread to cast doubt, claiming that it's impossible for either of us to say for sure whether or not Tribes2 used pixel and vertex shaders. Could someone here please settle this? Note that he and I are discussing Tribes2, not the current Torque engine.
Second, Troy also claims that the GF3 has additional DX8 optimizations (other than the shader functionality) that the GF2 does not have, and this is what caused another Tribes2 player's improved performance after upgrading from a GF2 to a GF3 (not including the improvement due to higher core/memory). I suggested that the only functions of the GF3 which require DX8 are the shaders, and that the GF2/GF3 performance difference (again, other than the core/memory differences) was due to GF3 features which do NOT require DX8, such as the Lightspeed Memory Architecture and the single-pass quad texturing. If anyone here is familiar with the GF2 and GF3, could you let us know if there are any functions which depend on DX8 (other than shaders) which could explain this additional peformance increase?
I guess at this point I don't care if I'm completely wrong on all counts--I just want the debate to end. :-) Thanks in advance for any help you can provide.
02/06/2002 (9:32 pm)
I'm terribly sorry about all this--it's kinda' my fault. Troy and I have had a running debate in the Tribes newsgroup in which he's made a couple claims with which I disagree. Perhaps you could settle the debate once and for all?First, Troy claimed that Tribes2 used DX8 pixel and vertex shaders. I provided a wealth of evidence and referred him to this thread to show that it did not, but he's now using the more recent replies in this thread to cast doubt, claiming that it's impossible for either of us to say for sure whether or not Tribes2 used pixel and vertex shaders. Could someone here please settle this? Note that he and I are discussing Tribes2, not the current Torque engine.
Second, Troy also claims that the GF3 has additional DX8 optimizations (other than the shader functionality) that the GF2 does not have, and this is what caused another Tribes2 player's improved performance after upgrading from a GF2 to a GF3 (not including the improvement due to higher core/memory). I suggested that the only functions of the GF3 which require DX8 are the shaders, and that the GF2/GF3 performance difference (again, other than the core/memory differences) was due to GF3 features which do NOT require DX8, such as the Lightspeed Memory Architecture and the single-pass quad texturing. If anyone here is familiar with the GF2 and GF3, could you let us know if there are any functions which depend on DX8 (other than shaders) which could explain this additional peformance increase?
I guess at this point I don't care if I'm completely wrong on all counts--I just want the debate to end. :-) Thanks in advance for any help you can provide.
#11
02/06/2002 (9:36 pm)
Tribes 2 doesn't have shaders. GeForce 3 has hardware shader support, which does give it an edge over the GF2.
#12
"The only reply that will count is somebody who has
seen Tribes 2 source code, including all the updates."
Any dev's here that can help me out?
02/06/2002 (11:43 pm)
Unfortunately, Troy still doesn't believe that Tribes2 didn't use shaders. He says:"The only reply that will count is somebody who has
seen Tribes 2 source code, including all the updates."
Any dev's here that can help me out?
#13
This is going to really mess up the market for games that require the use of shaders. The GF4MX will get used a lot in OEM (ships in the computer) situations and since it is the lowest priced card of the new GF4 line, it will be picked up by people that don't really understand the difference. As an example, GF4MX is what is shipping in the new G4 Macs, so none of the Mac community will be able to enjoy shader-only based games.
Jeff Tunnell GG
02/07/2002 (3:15 am)
To back up what Rick said about the number of cards that support this feature. Here is a quote from Tom's Hardware regarding the new GeForce 4 MX cards (btw, a good overview article on the subject is here www.tomshardware.com/graphic/02q1/020206/index.html:Quote:
Still, none of the GeForce4 MX cards has got full DirectX 8.x support, because of its lack of vertex and pixel shaders.
This is going to really mess up the market for games that require the use of shaders. The GF4MX will get used a lot in OEM (ships in the computer) situations and since it is the lowest priced card of the new GF4 line, it will be picked up by people that don't really understand the difference. As an example, GF4MX is what is shipping in the new G4 Macs, so none of the Mac community will be able to enjoy shader-only based games.
Jeff Tunnell GG
#14
The fact that the GF4MX doesn't have pixel/vertex shader support is considered a real weakness of the card, even for a low end model. It is competing with low end cards from other manufacturers that do have pixel/vertex shaders.
In other words shader support is not considered to be a luxury item any more. If you can do the job better with pixel or vertex shaders then you should use them IMO.
02/07/2002 (4:16 am)
Many people have to upgrade their video card to play certain games, Tribes 2 for example. If there is a good enough game that requires shaders, people will upgrade their card. The fact that the GF4MX doesn't have pixel/vertex shader support is considered a real weakness of the card, even for a low end model. It is competing with low end cards from other manufacturers that do have pixel/vertex shaders.
In other words shader support is not considered to be a luxury item any more. If you can do the job better with pixel or vertex shaders then you should use them IMO.
#15
My point is this. There will be far more GF4MX cards sold through than any of the shader cards. Most people do not upgrade their cards. In fact, most people do not even know they have a graphics card.
You can choose to target shaders, but you will significantly cut back the size of your market. As an indie developer you have to ask yourself if you can afford to do that. Can you completely cut off the Mac market? Can you cut off the tens of millions of people that do not have shader cards and are not willing to upgrade?
My answer to these questions would be no, but that is why being an indie is so cool, you can go your own route. Instead of making a game that runs nearly everywhere, you can look for your niche at the absolute high end, bleeding edge of the market. That has proven to be a successful strategy for some developers such as John Carmack and Mark Rein. But then you have to ask yourself if you can successfully compete with these development gods:)
Goo luck either way you go.
Jeff Tunnell GG
02/07/2002 (3:38 pm)
Robert,My point is this. There will be far more GF4MX cards sold through than any of the shader cards. Most people do not upgrade their cards. In fact, most people do not even know they have a graphics card.
You can choose to target shaders, but you will significantly cut back the size of your market. As an indie developer you have to ask yourself if you can afford to do that. Can you completely cut off the Mac market? Can you cut off the tens of millions of people that do not have shader cards and are not willing to upgrade?
My answer to these questions would be no, but that is why being an indie is so cool, you can go your own route. Instead of making a game that runs nearly everywhere, you can look for your niche at the absolute high end, bleeding edge of the market. That has proven to be a successful strategy for some developers such as John Carmack and Mark Rein. But then you have to ask yourself if you can successfully compete with these development gods:)
Goo luck either way you go.
Jeff Tunnell GG
#16
Well, that's the graphics chip market for you!
-d
02/07/2002 (6:09 pm)
Yeah, especially with the 'crippling' of the GF4MX, I'm actually no longer sure that the size of the shader-enabled market will be growing much in the next 12 months. Seems like NVidia is undercutting their own technological leaps.. Not to mention the GF4 only supports up to ps1.3 and not ps1.4, which means it's not fully-capable up to dx8.1/r8500 levels. Weird.Well, that's the graphics chip market for you!
-d
#17
The idea behind a shader based architecture is that you allow high end cards to render with all the bells and whistles, whilst low end cards can simply ignore functionality it cant handle and render what it can.
Whilst I'm not exactly sure that hardware shaders will or will not be supported in the near future, I AM convinved that a shader based architecture is the most flexible solution and one thats been proven as a good method of organisign a render engine.
Shaders are merely textual descriptions of the render functions and setups that should be set at the time a peice of geometry is rendered.
Look at Quake 3 and its use of shaders, even though it doesnt use hardware shaders.
We should definitely be looking to incorporate support for a shader description language into torque, not merely because its infinitely more flexible than the system thats in place.
Phil.
02/07/2002 (6:54 pm)
You guys are missing the point with shaders. Shaders have NOTHING to do with hardware. Shaders are a description of how something will be rendered. The idea behind a shader based architecture is that you allow high end cards to render with all the bells and whistles, whilst low end cards can simply ignore functionality it cant handle and render what it can.
Whilst I'm not exactly sure that hardware shaders will or will not be supported in the near future, I AM convinved that a shader based architecture is the most flexible solution and one thats been proven as a good method of organisign a render engine.
Shaders are merely textual descriptions of the render functions and setups that should be set at the time a peice of geometry is rendered.
Look at Quake 3 and its use of shaders, even though it doesnt use hardware shaders.
We should definitely be looking to incorporate support for a shader description language into torque, not merely because its infinitely more flexible than the system thats in place.
Phil.
#18
You're probably right, I might be missing the point. I'm not really a technical coder type. I just know a problem when I see it. The problem that I see is that hardware shaders will be so much faster then the software shaders you describe that we will be back to much the same situation we had when software rendering vs. hardware rendering.
Here is a simple example of the problem (as I understand it). If your game uses shaders to produce some fog-like effect that is required for gameplay and it is only fast enough to be satisfactory on hardware supported shader cards, then how can it possibly work with a software shader? So, if we can't rely on the effects for game-play enhancements, then the power of the hardware shader cards is relegated to use for eye candy things such as special effects, shadows, lighting effects, etc. If I have a choice of choosing between game play enhancements or eye candy enhancements, I'll take the game play every time.
Tim, Rick, and Mark have tried over and over to explain this stuff to me, and I thought I kind of had it, but now I'm not so sure. One thing we all agree on is that shaders are the future of 3D rendering, but the question is how long it will take. It is my feeling the GF4MX just set this effort back a couple of years.
Jeff Tunnell GG
02/07/2002 (7:20 pm)
Phil,You're probably right, I might be missing the point. I'm not really a technical coder type. I just know a problem when I see it. The problem that I see is that hardware shaders will be so much faster then the software shaders you describe that we will be back to much the same situation we had when software rendering vs. hardware rendering.
Here is a simple example of the problem (as I understand it). If your game uses shaders to produce some fog-like effect that is required for gameplay and it is only fast enough to be satisfactory on hardware supported shader cards, then how can it possibly work with a software shader? So, if we can't rely on the effects for game-play enhancements, then the power of the hardware shader cards is relegated to use for eye candy things such as special effects, shadows, lighting effects, etc. If I have a choice of choosing between game play enhancements or eye candy enhancements, I'll take the game play every time.
Tim, Rick, and Mark have tried over and over to explain this stuff to me, and I thought I kind of had it, but now I'm not so sure. One thing we all agree on is that shaders are the future of 3D rendering, but the question is how long it will take. It is my feeling the GF4MX just set this effort back a couple of years.
Jeff Tunnell GG
#19
I do not think this is true for the majority of people who are likely to purchase from GGs, not in the short term anyway. I know you are exaggerating, but the only people I know who fall into that category couldn't play half, no 90%, of the games currently on the market with their current system.
"You can choose to target shaders, but you will significantly cut back the size of your market. As an indie developer you have to ask yourself if you can afford to do that. Can you completely cut off the Mac market? Can you cut off the tens of millions of people that do not have shader cards and are not willing to upgrade?"
Isn't finding a niche market the point of being an indie developer?
"My answer to these questions would be no, but that is why being an indie is so cool, you can go your own route."
Yes, well that answers my question even before I asked it :)
Of coarse I can't think of any reason why any game would *require* the use of shaders but maybe I just lack imagination. My point is that as an indie developer if you decide that shaders will *make* the game you should do it, you *can* afford to restrict yourself to a niche market.
[for "shaders" please read "hardware shader support"]
02/07/2002 (10:42 pm)
"Most people do not upgrade their cards. In fact, most people do not even know they have a graphics card."I do not think this is true for the majority of people who are likely to purchase from GGs, not in the short term anyway. I know you are exaggerating, but the only people I know who fall into that category couldn't play half, no 90%, of the games currently on the market with their current system.
"You can choose to target shaders, but you will significantly cut back the size of your market. As an indie developer you have to ask yourself if you can afford to do that. Can you completely cut off the Mac market? Can you cut off the tens of millions of people that do not have shader cards and are not willing to upgrade?"
Isn't finding a niche market the point of being an indie developer?
"My answer to these questions would be no, but that is why being an indie is so cool, you can go your own route."
Yes, well that answers my question even before I asked it :)
Of coarse I can't think of any reason why any game would *require* the use of shaders but maybe I just lack imagination. My point is that as an indie developer if you decide that shaders will *make* the game you should do it, you *can* afford to restrict yourself to a niche market.
[for "shaders" please read "hardware shader support"]
#20
Just drop it. GG has more important things to do, and wasting time trying to add a feature that such a small minority could take advantage of is not what they should be doing.
Indie developers are to make good games.
If you want to make a niche game, so be it. GarageGames isn't going to drop everything (or anything) to help implement a feature that so few people want and even less need.
Will your game be better with special shader support? Probably not. So let's not get the cart before the horse, because I severely doubt you are just now putting the final polish on your project. Don't worry about minor details like these when you don't really need them.
02/08/2002 (12:59 am)
It doesn't matter if they don't know if they have card. Of course Jeff was exaggerating.Just drop it. GG has more important things to do, and wasting time trying to add a feature that such a small minority could take advantage of is not what they should be doing.
Indie developers are to make good games.
If you want to make a niche game, so be it. GarageGames isn't going to drop everything (or anything) to help implement a feature that so few people want and even less need.
Will your game be better with special shader support? Probably not. So let's not get the cart before the horse, because I severely doubt you are just now putting the final polish on your project. Don't worry about minor details like these when you don't really need them.
Torque Owner Luc Jordan
Edit: Testing the edit function. :)