What I meant was that the shader is a pluggable function in this implementation. If you wanted to change the shader function (say add texture or environment mapping) in this implementation, it would be a fairly minor code change that would have a relatively small incremental performance hit. If you wanted to do that for a highly optimized 90s era fixed pipeline software renderer, you&#x27;d most likely need to rewrite it from scratch, and certain operations wouldn&#x27;t be feasible at all. So, this is paying a lot of the cost for flexibility up front.