The best fabric to use to paint on is white cotton with a tight weave.   The color white will allow the paint colors you use to stand out more.  However you can paint on virtually any type of fabric.  Yet if the fabric is loosely woven the paint will have the tendency to seep between the treads and be bumpy.  Thus it will be difficult to obtain a clean line to acheive more details.   It is also be best to use a pre-washed fabric in order to have a clean surface to paint on which will allow the paint to adhere more effectively.  Also, pre-washed fabrics are already preshrunk and your painting will not be distorted after its wash.   If the paint you are using does not absorb into the fabric you know that you need to pre-wash it or you should try another type of material.  In order to obtain straighter lines and details you should always make sure your fabric surface is smooth with out wrinkles.   And a good tip concerning getting your paint to set properly is to iron over it after it has dried according to the directions of the particular paint you are using or you could put the material in the drier.  If you chose to iron on your project make sure you do not put the iron directly on the paint surface but use a piece of fabric or wax paper as a barrier.