The issue is, I'm not terribly sure where to put the disc center. All I got is a light direction for the "sun", not a position. All of this ties in with something else I have yet to implement, rendering the glowy sun disc, so no idea how to do that.
If any ray parallel to the light direction hits the sun in its exact center, regardless of where it originated or its length, then you'll have to define the size of the disc as a minimum of the dot product of the ray and the light-dir. e.g.: if(-dot(ray, light) > 0.98) hitsDisc();
Two of these discs slightly apart (that is, have near perpendicular light directions), one reddish/yellow the other a blue tint, added together should give white light in in their overlapping areas.