Back in 2015, I had an idea in my head for making a self-contained model that has smoke and ember effects without needing to use external using sprites, particles or texture-based animation. This is what I came up with: The smoke is a flanged uncapped cylinder that uses a gradient texture in additive mode and is distorted and controlled with animated bones (bones are seen in the third image as blue dots and yellow lines representing parent hierarchy). The embers is a piece of geometry that is basically a distorted cylinder cap that shares the same texture in additive mode using the left portion. The cylinder is rotated by an animation bone to simulate the slow burn as the irregular shape clips in and out of the cigarette geometry. Lastly, the ash piece that is surrounded by blue is a masked transparency portion* of the texture so I can use it in several places as a piece of plane geometry (2 triangles to make a square). I have used the plane in 6 copies: 4 around the end of the cigarette for hanging ash and 2 in the ashtray dish, you can also observe I have distorted and scaled each one to give some shape variety. Model is 450 polygons, and uses a 256X256 8-bit BMP, and a 128X128 8-bit BMP as textures. * GoldSrc engine uses the last color of the 8bit texture palette (index 255) and uses typically pure blue as that color [ RGB: 0 0 255] for alphatest transparency.
I saw your tutorial and tried to replicate the effect some time ago, but didn´t liked how it turned out.
holy sh$@ that level of detail!