Original Post
Hello, In the work on my latest project I've now come to the point of having to implement the rendering system. I've read the "Material and Shaders Implementation" thread, and many of its descendents and was just hoping that people more experienced than myself could clarify something for me. What, specifically, are the advantages of a plugabble DLL based system over the functionality that is provided by DirectX's Effect file system? I had originally started on making a modified version of the pluggable DLL system in the hope that a pre-pass over items within the renderqueue would spawn the additional passes and renders to other targets required for the scene (for say, dynamic cubemapping, or post-processing frame buffer effects). Some magic algorithm (as yet unwritten) would then sort out the order in which everything had to be done on the current hardware. I'm not sure this would be realistically practicable in realtime. At this point, the attraction of the dll system was that shader dlls could query the engine for the information they needed, requesting, for example, the rendering of the 6 frusta full of additional renderables probably outside of the current view volume in the case of dynamic cube mapping. It's becoming apparent though that exposing this sort of functionality to a DLL isn't a million miles away from supplying the data to an FX file based solution having parsed the need for it in some sort of custom template. It therefore seems like less work to use the FX solution. Some part of my brain though is still set on the idea that the DLL based version is the one to go for, although I can't at the minute suggest why. I've learned to my cost, however, that these little instincts (I know there's a less pretentious word, but can't think of it right now) can sometimes be correct, so I just wanted to throw the problem open to the input of people who might be more experienced with either solution. Thank you very much for any help you can give, John