Small Notes: for standard (spherical) env-mapping you simply use U = (Vertex_Normal.X)/2 + 0.5
V = (Vertex_Normal.Y)/2 + 0.5
Now use a simple highlight as a texture with that and do an add-blend with the regular texture, and you've got a fake specular highlight. Ta Da. If you're really bored you can also write a pixel shader that does fake bump-mapping by using the bump-map data as an offset for where you sample the highlight texture.
Also, lens flare is surprisingly simple. basically you take the sun's coordinates in screen-space (or any other source of a lens flare), and draw all the flares in an imaginary line between the sun's x,y to (maxX-sunX,maxY-SunY).Here's some pseudo-code:
if (sun is visible)
end.x=max.x-sun.x
end.y=max.y-sun.y
delta.x=end.x-sun.x
delta.y=end.y-sun.y
set_blend(source_one,dest_one)
enable(alpha_blend)
draw("flare_main.pcx",sun.x,sun.y)
draw("flare1.pcx",sun.x+delta*0.2f,sun.y+delta*0.2f)
draw("flare1.pcx",sun.x+delta*0.8f,sun.y+delta*0.8f)
draw("flare2.pcx",sun.x+delta*0.1f,sun.y+delta*0.1f)
draw("flare2.pcx",sun.x+delta*0.7f,sun.y+delta*0.7f)
draw("flare3.pcx",sun.x+delta*0.5f,sun.y+delta*0.5f)
draw("flare3.pcx",sun.x+delta*0.9f,sun.y+delta*0.9f)
restore_states()
That's all there is to it. I pretty sure it's not mathematically correct, but the non-uniform spread of the flares looks nicer, and you can also use more flare types and play with the spread. It's that simple.