DOTA 2 has a number of interesting effects one if witch looks like smoke, dripping from a model. Watch it here (between 1:09 and 1:16):
http://www.youtube.com/watch?v=b7TsYURjEos
The smoke follows the model and leaves a trail in the air. I am wondering how they did both on the CPU and GPU side. I can imagine that they draw the 3d model first and then they draw a polygon on top of it to access the pixels that does not belong to the model. The pixel shader in the second step reads the positions of the model's pixels and draws dripping smoke via some combination of spritesheet texture lookup and coded logic. Other solution could be particles, but how do they know where to each individual stream of smoke? They might have some pre-set dots on the model though.
Am I anywhere near correct?
http://www.youtube.com/watch?v=b7TsYURjEos
The smoke follows the model and leaves a trail in the air. I am wondering how they did both on the CPU and GPU side. I can imagine that they draw the 3d model first and then they draw a polygon on top of it to access the pixels that does not belong to the model. The pixel shader in the second step reads the positions of the model's pixels and draws dripping smoke via some combination of spritesheet texture lookup and coded logic. Other solution could be particles, but how do they know where to each individual stream of smoke? They might have some pre-set dots on the model though.
Am I anywhere near correct?