shades and effects will be "user defined" programmable sections of your graphics engine. you'd need to add the ability to parse shader and effects files, and you need to support whatever shaders and effects you desire in your engine.
back in the day i was forced to write one when MS bought Brender(?) and turned it into directx 1.0. I was about to license Brender and MS took it off the market. Took them a year to turn it into directx 1.0. in the meantime, i wrote my own p-correct t-mapped poly engine for SIMTrek/SIMSapce. As i recall, one of the optimizations you'll want is the sutherland-hodgeman clipping algo, which clips triangles to the frustum before rasterization.