Yeah, the same method should work on plains at least, it might need some tweaks to suit the lack of normals, like taking all the normals from the normal map and ignoring the plains normals. I'll see what it does with some flat sprite plains.
I tested the 3 light shader with a standard plain and it works fine, normals seem to calculate fine, but I haven't allowed for alpha transparency in the shader yet. I think it would work really well for the right game, something spooky maybe. I'll see what I can come up with, maybe use standard sprites for collision and movement etc, then mimic them with shaded plains, that could be interesting. Although adding lights can be a pain, it is doable - they are all handled through passed variables like this:
if l=0 then SetShaderConstantByName( Shader_Point, "PLightPos", lx#,ly#,lz#, 1.0 )
if l=1 then SetShaderConstantByName( Shader_Point, "PLightPos2", lx#,ly#,lz#, 1.0 )
if l=2 then SetShaderConstantByName( Shader_Point, "PLightPos3", lx#,ly#,lz#, 1.0 )
Obviously some optimasations could be made with the AppGameKit code, but the shader would probably need different versions for different light counts.
When I get round to getting v2, hopefully I'll be able to make a sprite shader with the same techniques.
I am the one who knocks...