Here are the ways i used to make smoke textures:
-
Fluid simulations
Basically - a physically correct voxel-based smoke simulation in some 3D package (see Houdini, PyroFX, integrated fluidSims in Blender3D, 3DMax, Maya e.t.c.). These are usually rendered in a texture atlas frame by frame, and then animated on every particle.
Here is the first tutorial i found on the topic: https://www.youtube.com/watch?v=3yfS3BuNbQU
(BTW: have a look at Embergen. Looks very promising to me: EmberGen (BETA RELEASED): Real-time fluid sims for instant flipbook generation! - #15 by JangaFX) -
Photomanipulation
You either google up some smoke photos, or just use the defaul clouds noise in photoshop and work (paint) your way up from there. It usually takes quite a bit of back-and-forward routine between your engine and photoshop to come up with a texture that would look good on a stream of particles. You may also add some uvDistortion/Flowmaps to make it a bit less static-looking.
Couldn’t find a tutorial, but what you end up with looks something like this:
You can clerly see the clouds noise pattern here. -
HandPainting
Pretty self explanatory: if what you need is a stylized look - that would be your best option. I’ve seen a lot of advice on that from LoL VFX team.
Here is the thread: Shannon McSheehan - LoL FX + Knowledge Share - #276 by ShannonBerke -
Shader trickery
If you have the knowlege/resources, it may yield some pretty decent results, with a big plus of all your textures being somewhat random and have some movement in them.
Have a look at what VFX guys from Diablo have come up with as an example: https://youtu.be/YPy2hytwDLM?t=1487 (it’s at 24:30)