It's not *needed*, however I put it there for readability.
Quote: A global variable marked extern is an external input to the shader. To set an extern variable, use any of the set methods ("SetVertexShaderConstantX") or any of the ID3DXConstantTable interface methods.
A global variable that is not declared to be either static or extern is assumed to be extern. You cannot declare a global variable with both extern and static.
Quote: you say it supports a point light.. how do you calculate attenuation? as far as i can see it doesnt have any at all. It seems you need another pass with an attenuation factor.
Good point, I have not added attenuation to the shader- this is a direct port of the one linked to in the first post. If I find a few minutes sometime this week I will throw in attenuation. I have another ps1.1 normalmapping shader I coded a while back from scratch that uses attenuation and specular, I will probably just copy some source from that over.
This would be perfect for me if the bumps were dynamic. How hard would it be for me to do that? Also if it could work on shaded blocks... What would I have to do? BTW how can I make it more bumpy? it barely shows up on most textures...