so, what is a shader? how does it work? how do i implement it? if i want to use cell shading (for that cool comic book effect) is there anything special i will need to know before setting it up? will it take more system resources?
A shader is a program that runs on the GPU that modifies what the GPU normally does. In the case of celshading it modifies the GPU to do...celshading.
Ogre does not technically do celshading. It supports shaders, and it is the shader that does the celshading. Ogre's example programs come with a celshading shader so you can easily use that one. It's pretty easy to use shaders in Ogre. Just scan the example files, the materials, explore and you'll figure it out.
Back to the question. Shaders are compiled and sent to the GPU, which then runs it at the right time, giving it various data both GPU defined and data defined by your program. Shaders are handled quite well by Ogre. Ony our side of things you write or get a shader program, create a program definition in the material file (I believe), and then modify the material for your model to use that shader program. It's really quite easy.
I don't know for sure, but my best guess is that celshading is just a basic shader which will require nothing more than all the right materials and files, nothing needs to be done specifically in your program.
By the way, there are two kinds of shaders. Vertex programs, and fragement programs. Vertex programs do processing on a per-vertex basis, while fragment programs do things on a per-pixel basis.
Sometimes fragment shaders are applied to just certain models, and sometimes they're applied to the whole screen, completely depending on the effect.