Well, pixel, geometry and vertex shaders are purely marketing terms invented by microsoft and shouldn't be taken as official definitions of what a shader is.
A shader i is something that shades, i.e. something that alters the colour.
Not any more. A shader is now quite a generic term for a small, compartmentalised piece of code that works on a structured piece of data. Or some similar ill-defined definition! Thus a shader can work on pixel data, vertex data, geometry, and even no-graphics related stuff. You write a shader to do GPGPU work. This is a common enough deviation from the origins of the term that you can no longer expect to talk about shading purely on a pixel-colour basis.
I also disagree that the terms are purely MS marketing. They work on different aspects of 3D models and rendering, and are inevitable in programmable hardware even if they went by another name.
Alpha blending is not shading and where are they viewing angel dependent?
If you're applying a visual shading effect to a model, then it would count as shading. As a comparison, in offline rendering where materials are called shaders, you'll apply a transparency shader to you object to make it transparent. Applying a red colour is a shader, just as is applying a straight texture, or a camera mapped texture. Basically anything adjusting the visible properties of an object would count as a shader. And that's using the old and outdated definition! The contemporary definition would say anything adjusting any property of an object, whether it's visible colours as rendered on screen or its shape, would count as a shader!
In the Cell forum, Mike Acton has talked about
using 'shaders' as a coding model for Cell. I pointed out IMO the term 'shader' wasn't the best choice of words as it's associated with graphics. His response was :
[QUOTE = Mike Acton]
Yes, we're overloading the word shader. But as pointed out above, the GPGPU community already has been using shaders for non-shading tasks for quite a while so I don't think we're introducing anything here.
Also, I'm inclined to disagree that it isn't applicable "in any sense" -- I believe it is, in all the most important ones: Small fragment of code, optimizable framework, decision making and additional memory management is left up to the fragment, part of a larger pipeline, etc.
And anyway -- The main value is that it evokes a certain idea and expectation of simplicity in the mind of the user and that makes it compelling.[/QUOTE]
This demonstrates how you can't rely on shader to mean any specific graphical function. The language has evolved past that and you can end up talking cross purposes with people by using a different definition to them.
As for the real discussion here, as has been pointed out, lots of shaders have been run on PS2. Texturing is accomplished by a shader in DX, and texturing can be done on PS2, ergo it can hand;e a texturing shader
PS2 can also demonstrate great flexibility. Screen warps are shaders PS2 is very good at. Clearly though there's specific cases where it's not so hot, as is the case with normal mapping. The hardware is technically capable of it, but for performance reasons it cost too much. I don't know why though.