entium

Distinguished
May 23, 2004
961
0
18,980
The Vertex shader = Objects in a 3D scene are typically described using triangles, which in turn are defined by their vertices. A vertex shader is a graphics processing function used to add special effects to objects in a 3D environment by performing mathematical operations on the objects' vertex data. Before DX8, vertex shading effects were so computationally complex that they could only be processed offline using render farms. Now, developers use Vertex Shaders to breathe life and personality into characters and environments, such as fog that dips into a valley and curls over a hill; or true-to-life facial animation such as dimples or wrinkles that appear when a character smiles. People talk about pixel shaders alot these days, but the vertex shader gave birth to the pixel shader, just as important of a discovery as hardware transform and lighting was a few years earlier.

Pixel shaders = A Pixel Shader is a graphics function that calculates effects on a per-pixel basis. Depending on resolution, in excess of 2 million pixels may need to be rendered, lit, shaded, and colored for each frame, at 60 frames per second. That in turn creates a tremendous computational load. Modern cards process this load through Pixel Shaders. Per-pixel shading brings out a high level of surface detail-allowing you to see effects beyond the triangle level. Rather than simply choosing from a pre compiled palette of effects, developers can create their own. Pixel Shaders provide developers with the control for determining the lighting, shading, and color of each individual pixel, allowing them to create some really cool effects.
DirectX 8 brought us pixel shader 1.0, 1.1 and 1.2
DirectX 8 allowed programmers to write shader programs up to 12 instructions in length. After DX8's release, it was determined by programmers and Microsoft themselves that 12 instructions werent quite enough. So immediately after DX8's release, MS gave birth to DirectX 8.1, and introduced us to a couple of new shader...PS 1.3, and PS 1.4
PS 1.4 allowed programmers to now write shaders at nearly twice the size of DX8 shaders...up to 22 instructions in length. So now you have to remember that cards that are DX8(Ti series) support pixel shader 1.0, 1.1, 1.2, and 1.3, but not 1.4. Cards that are DX8.1(Radeon 8500 and up) support all of the same shaders as are required in DX8, but also support PS 1.4
Now that we have DirectX 8 and 8.1 covered briefly, lets talk a little about DirectX 9.
DirectX 9 brings us some new features in the way of pixel and vertex shaders version 2.0. These new shaders have a much higher instruction count in comparison to their directX 8.1 bretheren, and allow game programmers to pull off some even cooler effects then they were able to before. however, the real key feature of DirectX 9 is the introduction of RGBA values in 64 (16-bit FP per color) as well as 128-bit (32-bit FP per color) floating point precision. This large increase of color precision allows a suprisingly new amount of visual effects and picture quality. For those of you reading graphics reviews on the web, or possibly visiting tech forums to find out what the latest buzz is, DirectX 9 cards are diffinately the topic of discussion. People having cards from only one generation ago are more times then not made to feel that they are in desperate need of an upgrade. While this is an expensive pattern to fall into, it happens easily to most people considering themselves to be an enthusiast. To the writer of this thread, it can all seem absurd at times, the vast majority of games that are available to us today, barely take advantage of the DirecX 8 API, much less DirectX 9. You could probably count the number of publicly available DX9 titles on one hand....
So why all the fuss?, because thats how it's always worked. Hardware manufacturer's count on it. The online communities beat it into you. You will believe that you need the latest and greatest. After all, it sucks to never be able to watch all of those cool demos, or join in on discussions regarding one of those few DX9 games that may have just been introduced. I myself have never seen the Dawn demo run on my own, or anybody elses, computer. As silly as it sounds, I feel like a half geek instead of a full fledged geek because of it:)
-----------------------------------------------------------

Shaders where always there just not easily accessiable as before

you should call your article, "Programmable Vertex and Pixel Shaders Explained "

___________________________________________________________
true-to-life facial animation such as dimples or wrinkles that appear when a character smiles
___________________________________________________________

This is a combination of vertex and pixel shaders. you actually can do it purely in a pixel shader as well. By using procedural animated bump maps and textures

___________________________________________________________
A Pixel Shader is a graphics function that calculates effects on a per-pixel basis
___________________________________________________________

it is per vertex incongunction with a per pixel bump map extrapolated across the polygon face.

History is good but forgot to mention Ogl has had this before Dx ever did :)

___________________________________________________________
operations on the objects' vertex data. Before DX8, vertex shading effects were so computationally complex that they could only be processed offline using render farms. Now, developers use Vertex Shaders to breathe life and personality into characters and
___________________________________________________________

Not because of that, its because they weren't accesiable through an API, they were done through ASM which is alot hard then coding them c++ and they worked fine in sub dx 8 cards in real time

GW your giving out information but you aren't giving out all of it :) keep on reading cause you aern't half a geek yet, but getting there
 

entium

Distinguished
May 23, 2004
961
0
18,980
GW no response hit the books hard man you will find out what I just said is true.

Do ya want me to put some sample code of Parrallex bump mapping? What Unreal 3 uses?
 

entium

Distinguished
May 23, 2004
961
0
18,980
Do you even know what parrallex bump mapping is?

Let me see now why do you use vertecies to calculate light for a per pixel attenuated texture?

Very simple it reduces caluclation amounts by a huge number.

When they say per pixel the end result is per pixel.

Similiar to some engines using less polygon objects to calcuate shadows or on a cpu stand point physics. But rendering more polygon objects to the screen
 

entium

Distinguished
May 23, 2004
961
0
18,980
If ya guys want a more indepth look into shaders I'm writing a tutorial for a developer site. I would be happy to share that with you. I'll tone down the programming part and add in different variation of texture compiling optimizations done by NV and ATI techs
 

cleeve

Illustrious
I find it's easier to post a link to a site instead of copying and pasting it all. For instance, instead of copying and pasting the first paragraph, simply point people to the Nvidia site where you got it thusly:

<A HREF="http://www.nvidia.com/object/feature_vertexshader.html" target="_new">http://www.nvidia.com/object/feature_vertexshader.html</A>

Etc. It'll save you a bunch of cntrl-C/cntrl-V, and give people a better idea where you're getting your stuff from.

Otherwise people will think you're trying to pretend you've written all this stuff, and that would be misrepresentation.

Wouldn't it? Yeah, it would.

Smarten up.

________________
<b>Radeon <font color=red>9700 PRO</b></font color=red> <i>(o/c 333/343)</i>
<b>AthlonXP <font color=red>~2600+</b></font color=red> <i>(2400+ @ 2145 Mhz)</i>
<b>3dMark03: <font color=red>4,876</b>
 

cleeve

Illustrious
My pleasure. :wink:

________________
<b>Radeon <font color=red>9700 PRO</b></font color=red> <i>(o/c 333/343)</i>
<b>AthlonXP <font color=red>~2600+</b></font color=red> <i>(2400+ @ 2145 Mhz)</i>
<b>3dMark03: <font color=red>4,876</b>
 

coolsquirtle

Distinguished
Jan 4, 2003
2,717
0
20,780
Cleeve!! i never knew u got a 9700pro? how did that happen

and the guy who started the forum is a troll!!

RIP Block Heater....HELLO P4~~~~~
120% nVidia Fanboy+119% Money Fanboy
GeForce 6800 Ultra--> The Way we thought FX 5800Ultra is meant to be played
THGC's resident Asian and nVboy :D
 

cleeve

Illustrious
Heheh... yo CS, got it on ebay cheep. $110 for a genuine Built by Ati.

Joke was on me though, the core overclocks dismally. Still performs well though, I was very surprised at how much faster Far Cry is, even at higher settings with AA.

I'm happy, considering the price. :)

________________
<b>Radeon <font color=red>9700 PRO</b></font color=red> <i>(o/c 333/343)</i>
<b>AthlonXP <font color=red>~2600+</b></font color=red> <i>(2400+ @ 2145 Mhz)</i>
<b>3dMark03: <font color=red>4,876</b>
 

splenda20

Distinguished
Mar 2, 2003
422
0
18,780
It seems that no one bothered to check where GW got most of his info for his <A HREF="http://forumz.tomshardware.com/hardware/modules.php?name=Forums&file=viewtopic&p=374941#374941" target="_new">sticky</A>.
entium copied and pasted from GW's post, which GW apparently copied straight from the NVidia's site that you posted. I also checked and found that GW copied lots of info from <A HREF="http://www.nvidia.com/object/feature_pixelshader.html" target="_new">here</A> too.

Otherwise people will think you're trying to pretend you've written all this stuff, and that would be misrepresentation.
It's an honest mistake, but you accused entium of misrepresenting himself (which he may have in other places), but it was really Genetic Weapon that copied and pasted. and past the info off as his own, as he does here...
In reply to:
--------------------------------------------------------------------------------

Wow where did you find that info?



--------------------------------------------------------------------------------

I have been trying to learn as much as I can about graphics cards over the years but I had to apply myself and not hang out here as much as I might like:)

I help because you suck
It's quite clear that GW mislead everyone and made them think that he came up with all his info by "applying" himself and not hanging out at THG as much, when in reality all it took to "apply" himself was a quick visit to NVidia.com!

It's pretty ironic that GW criticized ATI for "cheating" and not being open about their pratices, and now it's out that he passed off information as his own, when clearly it wasn't.
 

Vimp

Distinguished
Jul 13, 2003
358
0
18,780
Sadly that kind of behavior has come to be expected from GW.

<font color=blue>_______________________________</font color=blue>
Canada
Asus A7N8X-X, Athelon XP 2500+ Barton,
Samsung 1gb DDR400, MSI GeforceFX5900 XT.
Aquamark=<b>36077</b> 3DMark03=<b>5322</b>
 

entium

Distinguished
May 23, 2004
961
0
18,980
Well the information has to come from somewhere, but he should acknowledge that. All of us who develop games or engines get thier information right from Nvidia, ATI, 3D labs, or Matrox. Without their help and thier inovations we would still be stuck with Quake!

They make the advancements we make the program that utilizes them. Without thier tech docs there would have been no way Doom 3 or Half life 2 would look as good as they do.


Of course we pay alittle less to the marketing side of things:)

One reason why I'm so exicted about the 6800 gives me alot more things to play with. The effects of "true bump mapping" with tesselation and hieghtmaps its going to be amazing.

No more flat surfaces.

Smooth curves with real protruding faces.

Using 6 million polygons per screen and not worrying about bandwidth!

Not to mention almost unlimited dynamic lights in a scene :) which is absolute something that a game going for cinimatic effects would love!

It tickles me hehe
 

entium

Distinguished
May 23, 2004
961
0
18,980
hypothetically question,

Since shaders are compiled at runtime and since Cg does have partial precompile to both ogl and hlsl, wouldn't that be a better choice for developers and game players over choosing a shader system that will be be better then one or the other graphics cards?

BTW Cg seems to work better on ATI cards aslong as there are no NV specific extentions.

I haven't looking very closely at NV shader compiler code yet. Been staying away from brand specific optimizations as much as possible.

But for the new Shader 3.0 stuff only Nvidia supports that for now.
 

GeneticWeapon

Splendid
Jan 13, 2003
5,795
0
25,780
Angry little Splenda, I'm not a programmer, or a coder. Everything in that sticky was compiled from articles and discussions from across the web. It was written in about 20 minutes for the sole purpose of being exactly what it is....a basic explanation of what vertex and pixel shader functions are on graphics card's.
Your acting as though you uncovered the Ark of the Covenant.

Did I hurt you at one point or another? :lol:

<A HREF="http://rmitz.org/AYB3.swf" target="_new">All your base are belong to us.</A>
<A HREF="http://service.futuremark.com/compare?2k3=2216718" target="_new"><b>3DMark03</b></A>
 

entium

Distinguished
May 23, 2004
961
0
18,980
Your basic explination was completely wrong!

The basis of it was so thin too.

How can you ellude to the fact shaders never exsisted before Dx8?

They have been there since the beginning, with out them you can't even draw a dot to screen.

The term shader is generic.

You can change the way a cpu draws to the screen technically this too is a shader.

Just that they weren't as easily accessible through high level languages like C++


Then you go into the fact the lighting is calculated per pixel. Thats marketing pr for you. If that was the case this graphics cards will never be albe to show more then like 1000 polygons! Back to the Quake days.

Lighting calculatios are based on the per vertex extrapolation from the calculation of the binormls from the tangent and vertex normals at each vertex. Effectivly cutting down cacluation amount by a 100 fold or more, depending on multitexturing.
 

splenda20

Distinguished
Mar 2, 2003
422
0
18,780
Not hurt at all, but thanks for caring.

Quite frankly, I have no problem with you cutting and pasting stuff for the benefits of others, I've done that too. But you totally mislead people to believe that you came up with that info, which clearly you didn't.

Straight up, my biggest beef with you is your disrepect to others, and your thug like attitude to others when they make a mistake, or disagree with you. There are others on this forum who know how to help people, without insulting them and offer helpful advice or simply correct someone with respect, when they make a mistake. GrapeApe, Crashman, Cleeve and many others do great things to help out the newbies and strangers that visit this forum for guidance and even helped me gain more knowledge of video cards and helped me make better decisions as a consumer. Whereas you, more often than not are abusive and rude to people you disagree with. You would be better off showing people why they're wrong, instead of saying short one liners about how stupid they are. Grape has helped me many times when I was wrong or didn't understand something as well as I thought, whereas you show no courtesy at all.

Simply put, I think you should stop with the insults, and focus on making this more like the community that it should be and could be.
 

PukePile

Distinguished
Jan 23, 2004
546
0
18,980
I don't remember GW claiming he wrote that all by himself nor did he claim he knew everything about the subject
The purpose of this thread is to briefly familiarize you with the vertex and pixel shader functions in modern graphics cards. Anyone reading a graphics card review these days have come across these two words numerous times, and unless you have a small understanding of what these functions are, and what they do for your video games, reading a review can be a frustrating experience. Providing an accurate description of these functions without being too technical is a rather tough experience in itself, but I am going to try to do this to the best of my limited knowledge...here we go...
The intro say it all. This hysteria is with out purpose.If you disagree with his explanation there are better ways to go about giveing criticism.But, his purpose was to explain shaders without getting bogged down in the technical details which is what you are makeing a fuss over.


40k in aquamark 3
<A HREF="http://arc.aquamark3.com/arc/arc_view.php?run=77119011
" target="_new">http://arc.aquamark3.com/arc/arc_view.php?run=77119011
</A>
P4b2.4@2.8||1024mb DDR@392mhz||9800pro@414/732||Viewsonic UltraBrite 19"||Kensington 800 dpi mouse.
 

GeneticWeapon

Splendid
Jan 13, 2003
5,795
0
25,780
you totally mislead people to believe that you came up with that info
No I didnt. Your misunderstanding the concept of it, I'm just a guy with a computer...like the rest of you all. <b>Everything</b> technical I've learned about graphics cards or API's has come from the internet, everything I know on the subject, has been written by somebody else who does this stuff for a living. That's how I learned. I've owned a bunch of card's, and have done some crazy shiit....but I'm not trying to be anything other than what I am. Who do you <b>think</b> I am?
GrapeApe, Crashman, Cleeve and many others do great things to help out the newbies and strangers
I know, if it wasnt for them, we wouldnt be any good to anybody.
you, more often than not are abusive and rude to people you disagree with
A lot of times I am. You must take this stuff more serious then me....I'll cuss someone out and not even remember them the next day. You take this forum stuff personal, I've learned not to.(shuddup Phial)
Simply put, I think you should stop with the insults, and focus on making this more like the community that it should be and could be.
It was like that before I came here. Nobody posted because it was so boring.

<A HREF="http://rmitz.org/AYB3.swf" target="_new">All your base are belong to us.</A>
<A HREF="http://service.futuremark.com/compare?2k3=2216718" target="_new"><b>3DMark03</b></A>
 

PukePile

Distinguished
Jan 23, 2004
546
0
18,980
Yes his purpose was to give someone new to the subject a rough understanding of shaders not the whole history or every minute detail.So what if he was wrong in saying that they never exsisted before dx8?Is that really important to someone that is new to subject?Its not like they would have a total wrong conception of shaders if they didn't know that.But the fact still remains Gw is not some god that is infalible he's human( or at least i think he is) and there was no need for the hostility in your post.

40k in aquamark 3
<A HREF="http://arc.aquamark3.com/arc/arc_view.php?run=77119011
" target="_new">http://arc.aquamark3.com/arc/arc_view.php?run=77119011
</A>
P4b2.4@2.8||1024mb DDR@392mhz||9800pro@414/732||Viewsonic UltraBrite 19"||Kensington 800 dpi mouse.
 

GeneticWeapon

Splendid
Jan 13, 2003
5,795
0
25,780
Pukepile, thank you for understanding and sticking up for me.

<A HREF="http://rmitz.org/AYB3.swf" target="_new">All your base are belong to us.</A>
<A HREF="http://service.futuremark.com/compare?2k3=2216718" target="_new"><b>3DMark03</b></A>
 

entium

Distinguished
May 23, 2004
961
0
18,980
Exactly just like he makes mistakes other do to, at least I acknoledged when I did! And the fact I apologized to him aswell!

<P ID="edit"><FONT SIZE=-1><EM>Edited by entium on 05/26/04 04:58 PM.</EM></FONT></P>