View more

View more

View more

Image of the Day Submit

IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

How is the elongated light beam/tentacle effect achieved?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

5 replies to this topic

#1OpaqueEncounter  Members

Posted 09 June 2014 - 01:56 PM

Question's simple, how (what techniques or combination of techniques) are the elongated beams of light (pointed out by red arrows) in the screenshot from DOTA 2 achieved? The fire light (green arrow) is obvious, that's just a bunch of particles, but what about those dynamic (they twist and turn) beams of lights.

#23DModelerMan  Members

Posted 09 June 2014 - 01:59 PM

I would assume they're just a tesselated textured strip of triangles animated with some sort of sin() or cos() function in the vertex shader.

#3Kaptein  Prime Members

Posted 09 June 2014 - 02:41 PM

Spoiler

Nevermind, as he said, it's probably just textured. It makes sense now that I think about it.

Edited by Kaptein, 09 June 2014 - 02:43 PM.

#4Kryzon  Prime Members

Posted 09 June 2014 - 04:58 PM

Most of the time it's much simpler than we imagine.
I think it's static geometry with an animated texture (procedural or pre-rendered as a looping sequence of frames) that is moved with the texture matrix so that it slides along the geometry.
The vertices at the end of the geometry strips have zero alpha, so the effect disappears into the air.

You should check Simon's blog on visual effects for games. It's fascinating: http://simonschreibt.de/game-art-tricks/

If you're bent on finding exactly what makes that particular effect, there are API-hook applications that can capture a single frame's worth of geometry and texture in a game, though the use of these might be less than reputable (i.e. keep it to yourself):
- http://apitrace.github.io

#5OpaqueEncounter  Members

Posted 10 June 2014 - 09:46 AM

Most of the time it's much simpler than we imagine.
I think it's static geometry with an animated texture (procedural or pre-rendered as a looping sequence of frames) that is moved with the texture matrix so that it slides along the geometry.
The vertices at the end of the geometry strips have zero alpha, so the effect disappears into the air.

So that's essentially an animated spritesheet on a quad? That seems plausible, but also potentially expensive to render. Some of those animations are pretty detailed and long.

In any case, I am going to give this a shot.

#6Kryzon  Prime Members

Posted 10 June 2014 - 03:49 PM

If you can't afford the memory cost of an animated texture, a simple trick that you can start with is having two texture units applied to that geometry strip, each texture unit being translated at a different speed and direction. The actual image used can be the same for both units, a smooth, wavy grayscale pattern.

In the fragment shader you sample both units and colour the fragment based on the mix of them, with an expression that results in that visual and colour. The result is a rich, dynamic effect.
Based on this: http://www.gamedev.net/topic/614608-specular-highlights-on-water/#entry4881841

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.