vertex/pixel shaders
by Ben Tormey · in Technical Issues · 03/15/2001 (2:24 pm) · 33 replies
How does the V12 engine incorporate DX8 vertex/pixel shaders into the rendering pipeline?
#22
BTW, I'm serious about people not knowing they even have a graphics card. You have to remember that not only are most of the people in these forums hard core gamers, they are people that want to make games. That puts us all in a special niche of nerdness. As an experiment, ask a few people you know what kind of graphics card they have, how much video memory it has, and what it does. Be fair, and ask a wide range of people like your brother-in-law that you talked into buying a computer two years ago, or your aunt that just bought her HP at Circuit City, or your neighbor that ordered his $799 Dell because of those dumb-ass commercials on TV.
Like I said, I applaud all niches, both high end and low end. I'll put my money on certain niches and others on different niches. That is what makes a market, and it is also why it is so great to be an indie game maker. You don't have a big corporation making you do the 10th revision of an already tired game. You get to come up with your own idea, and go for it!
Jeff Tunnell GG
02/07/2002 (6:18 pm)
Easy Matt. This is a great discussion, and I'm learning a lot along the way. GG does not feel incredible pressure to support the DX shaders any time soon. As Rick stated, there are fairly easy ways support shaders in Torque via OpenGL that more advanced users will understand.BTW, I'm serious about people not knowing they even have a graphics card. You have to remember that not only are most of the people in these forums hard core gamers, they are people that want to make games. That puts us all in a special niche of nerdness. As an experiment, ask a few people you know what kind of graphics card they have, how much video memory it has, and what it does. Be fair, and ask a wide range of people like your brother-in-law that you talked into buying a computer two years ago, or your aunt that just bought her HP at Circuit City, or your neighbor that ordered his $799 Dell because of those dumb-ass commercials on TV.
Like I said, I applaud all niches, both high end and low end. I'll put my money on certain niches and others on different niches. That is what makes a market, and it is also why it is so great to be an indie game maker. You don't have a big corporation making you do the 10th revision of an already tired game. You get to come up with your own idea, and go for it!
Jeff Tunnell GG
#23
It remains to be seen how well the GF4MX will sell. Nvidia are already copping flak over the GF4MX, I don't think we'll see another gaming VC released (with the possible exception of KyroIII?) that doesn't support shaders.
I stand by my statement about people who don't know they have a video card. I agree there are many of them, you see them in stores all the time trying to return games that wont run on their computer even though they only bought it 6 years ago. People who are passionate about computer games (enough to buy something that is not on store shelves) do generally know what VC they have and are prepared to upgrade if the product is good enough. I will be surprised if GGs are selling to the mainstream market before hardware pixel/vertex shaders are mainstream (but I do like surprises ;).
Just to reiterate, I am debating the use of hardware pixel/vertex shaders by indie developers, not whether GGs should be supporting them.
02/07/2002 (7:46 pm)
Yeah, my post was a little off topic. I wasn't arguing that GG should support shaders directly in TGE. What I was saying is that if a particular indie developer (not me) feels that shaders will significantly improve their game (and I personally can't think why that would be) then they should go ahead and add that feature. It remains to be seen how well the GF4MX will sell. Nvidia are already copping flak over the GF4MX, I don't think we'll see another gaming VC released (with the possible exception of KyroIII?) that doesn't support shaders.
I stand by my statement about people who don't know they have a video card. I agree there are many of them, you see them in stores all the time trying to return games that wont run on their computer even though they only bought it 6 years ago. People who are passionate about computer games (enough to buy something that is not on store shelves) do generally know what VC they have and are prepared to upgrade if the product is good enough. I will be surprised if GGs are selling to the mainstream market before hardware pixel/vertex shaders are mainstream (but I do like surprises ;).
Just to reiterate, I am debating the use of hardware pixel/vertex shaders by indie developers, not whether GGs should be supporting them.
#24
I am a game development student, and we are being told that pixel-shaders are going to be a major player. Btw, I would have thought the kind of people that visit this site and would download these games would have a beefy machine in the first place.
Well, thats what I think, and its late so it might not make sense, but there it is.
redwyre
03/04/2002 (6:19 am)
I must say, I have become very confused after reading this thread. The GeForce2 has pixel-shading support, and in the near future this card will be *a* standard. If pixel-shading can be emulated, then it would be a good idea to start work now, and get it working with the core of Torque now before it gets really complicated. I must admit I know little about Torque and how it works, but it seems this is a task that needs to start now.I am a game development student, and we are being told that pixel-shaders are going to be a major player. Btw, I would have thought the kind of people that visit this site and would download these games would have a beefy machine in the first place.
Well, thats what I think, and its late so it might not make sense, but there it is.
redwyre
#25
Under nvidia ref driver v10.80 there is an experimental pixel shader v0.5 for geforce2 cards. it's been removed in the later drivers.
Currently, Geforce 3/4Ti cards support vertex/pixel-shader 1.0/1.1/1.2/1.3. Gforce4MX with no shader support in hardware.
The latest ATI cards supports vertex/pixel-shader v1.0/1.1/1.2/1.3/1.4.
While it is possible to implement vertex/pixel shader on openGL (TGE current mostly based on OGL), the shader language on OGL is currently devided along the vendor line, which means you need to code specifily for nv cards, and code specifily for ati cards)
03/04/2002 (6:34 am)
No, Geforce2 cards do *not* support vertex/pixel-shader officially.Under nvidia ref driver v10.80 there is an experimental pixel shader v0.5 for geforce2 cards. it's been removed in the later drivers.
Currently, Geforce 3/4Ti cards support vertex/pixel-shader 1.0/1.1/1.2/1.3. Gforce4MX with no shader support in hardware.
The latest ATI cards supports vertex/pixel-shader v1.0/1.1/1.2/1.3/1.4.
While it is possible to implement vertex/pixel shader on openGL (TGE current mostly based on OGL), the shader language on OGL is currently devided along the vendor line, which means you need to code specifily for nv cards, and code specifily for ati cards)
#26
Could pixel/vertex shading in hardware be used to accelerate voxels (for which there is no hardware support anywhere) ? Any idea...?
03/04/2002 (6:53 am)
Question for Phil Carlise & the other pixel-heads :-) :-).Could pixel/vertex shading in hardware be used to accelerate voxels (for which there is no hardware support anywhere) ? Any idea...?
#27
Personally I dont see a great need for voxel rendering, if an engine is designed/coded to maximize the hw cap, it should be quite capable of handling complex scene with tranditional polygon/vertex approach. A simple program with minium driver/API overhead is capable of delivering 12mil polygon/sec on my dino-aged celeron-333 w GF2MX.
03/04/2002 (7:27 am)
There is no direct hw acc voxel rendering, (not in the consumer cards anyway). While there is a possibility that someone may use shader languge to code something similar to a voxel render, personaly, i don't think its gonna happen. The current shader language was not designed to be used in such way. If volumetric rendering is so important to your application (for example, a scientific illustration app), you can always use volumetric texture.Personally I dont see a great need for voxel rendering, if an engine is designed/coded to maximize the hw cap, it should be quite capable of handling complex scene with tranditional polygon/vertex approach. A simple program with minium driver/API overhead is capable of delivering 12mil polygon/sec on my dino-aged celeron-333 w GF2MX.
#28
03/04/2002 (7:35 am)
With this debate in mind, I should point out that the article Jeff mentioned on Tom's Hardware is really quite a good article. With a follow-up, there is another article there, I forget which, that talks about pixel/vertex shaders in specific. Needless to say the ones implmented in DX8 [licensed by MS from Nvidia] and the DX8.1 implementations [licensed by MS from ATi] work slightly differently. He correctly points out, that at this time its hardware driving the shader api, whereas it should be the other way around with a solid and generic shader api set forth that all hardware manufacturers much support in their hardware.
#29
I find myself mostly agreeing with the "it's not that important, let's not focus on it just yet" attitude.
Although I was wondering -- you know, providing things like vehicle support is well and good, but I'd stop with that and start working on improving the engine tech soon after. The reason is, Torque is a great engine, but it's still not entirely general-purpose. For instance, we can't really have day-night cycles because of the rendered shadowmaps. Basically, let the community worry about adding cool things to gameplay and finding uses for the various bells and whistles, and you guys just provide the power for the community to do their thing -- and turn some heads doing it.
Heh, this is NOT a reccomendation to go out and implement full DX8 support. I'm just throwing out a hopefully intriguing line of thought.
03/04/2002 (9:47 am)
I just read this thread through from the beginning, and I've got to say that once again I'm awed by this community and the GG staff. It's just so awesome that there can be this kind of frank discussion with people that have a ton of experience in the games industry.I find myself mostly agreeing with the "it's not that important, let's not focus on it just yet" attitude.
Although I was wondering -- you know, providing things like vehicle support is well and good, but I'd stop with that and start working on improving the engine tech soon after. The reason is, Torque is a great engine, but it's still not entirely general-purpose. For instance, we can't really have day-night cycles because of the rendered shadowmaps. Basically, let the community worry about adding cool things to gameplay and finding uses for the various bells and whistles, and you guys just provide the power for the community to do their thing -- and turn some heads doing it.
Heh, this is NOT a reccomendation to go out and implement full DX8 support. I'm just throwing out a hopefully intriguing line of thought.
#30
I'm sure this would open a whole new can of worms, as well as add a layer of complexity to the license for GG, but it could be done, and be overall far more useful to us, the developers, as we'd get access to every change and addition made to the engine in realtime. If someone added DX shader support, we'd all have instant access to it.
For example, my game calls for some space combat, and it may require a large bit of engine coding to get that enviroment to work, and in addition, allow it to blend into the current terrain engine by flying down to a planet or up through the sky. I would love to be able to dump that bit of work into a CVS for TGE and help others from having to repeat my work.
06/11/2002 (6:21 pm)
Personally, I'm more in favor of paying $100 for access to a CVS containing TGE for open development by us as well as the GG people.I'm sure this would open a whole new can of worms, as well as add a layer of complexity to the license for GG, but it could be done, and be overall far more useful to us, the developers, as we'd get access to every change and addition made to the engine in realtime. If someone added DX shader support, we'd all have instant access to it.
For example, my game calls for some space combat, and it may require a large bit of engine coding to get that enviroment to work, and in addition, allow it to blend into the current terrain engine by flying down to a planet or up through the sky. I would love to be able to dump that bit of work into a CVS for TGE and help others from having to repeat my work.
#31
09/08/2002 (1:50 pm)
To bring up an old post what is the future status with shaders? I heard Jeff talk about shaders and the scene graph on one of his interviews recently. Has the Tim, Mark, or Rick started work on these features or is Torque still focused on bug fixes? Just Wondering
#32
Of course, it still doesnt help with the problem of memory requirements for voxel representations.
Most voxel things Ive seen have been heightfields, which I dont find that attractive in voxel terms. If they could be used for general voxel space calculations (hint: they can) then its nicer.
I dont think its a general approach thats going to catch on tho.
Phil.
11/30/2002 (4:44 pm)
Ken, to a certain extent, you CAN speed up voxel processing via hardware vertex shaders.Of course, it still doesnt help with the problem of memory requirements for voxel representations.
Most voxel things Ive seen have been heightfields, which I dont find that attractive in voxel terms. If they could be used for general voxel space calculations (hint: they can) then its nicer.
I dont think its a general approach thats going to catch on tho.
Phil.
#33
I can offer my ability to incorporate into torque the ability to store the shaders along with old hardware backup textures (as is the common implementation meatphor I've been seeing), but I do not think I can modify the renderer, well, not well anyway, as I've never done it. I can also create and/or modify a tool to create these. Nvidia has a nice runtime. Heck I bet they'd lend tech support.
-brad
02/18/2003 (11:05 pm)
bumping this into the present.I can offer my ability to incorporate into torque the ability to store the shaders along with old hardware backup textures (as is the common implementation meatphor I've been seeing), but I do not think I can modify the renderer, well, not well anyway, as I've never done it. I can also create and/or modify a tool to create these. Nvidia has a nice runtime. Heck I bet they'd lend tech support.
-brad
fred
Texture shader is nothing more than blending some textures together in certain way to achieve certain effects. Textures are all static, non procedural. ie, you can't program the pixel's appearence on the fly. Texture shader can run on most of today's multi-texture cap hardware.
Pixel shader is a complete different story. It replace the old texture pixel pipeline with a more programmable unit. the direct result is the developer can now decide the appreance of evey pixel on the fly through shader language.
Supporting pixel shader in a 3D engine does not necessary means the engine need to give up the old 'fixedfunction pixle pipe' market. It's all about an engine's scalability (ie, how high-end can it go, and how low-end can it support). For example, if an engine try to render a pixelshader 2.0 visual on certain card that doesn't support pixelshader2.0, it should be able to find a way on the good old fixed function pipe to approximate the result. And This is one of the most difficult parts from an engine developer's view.
Regarding the version number. There is no HUGE difference between 1.3 and 1.4. all 1.3 functions are supported in v1.4. I mean the differences are not gonna be like compare with 2.x (which should arrive before the end of this yr).