Sign in to follow this  
Jim1664

Shadows 2D

Recommended Posts

Hello people,

So, I just wrote some cool code, and I feel like showing it off a little.

To summarise, it's for rendering soft shadow casting lights (lots of) in a grid based 2D-world.

It is similar too the likes of: [url="http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/dynamic-2d-soft-shadows-r2032"]http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/dynamic-2d-soft-shadows-r2032[/url]
But it differ by working out contiguous non-overlapping geometry so as not have too a shadow accumulation step for each light. Also, in the second version, lighting geometry as opposed to shadow geometry is generated. Actually generating the geometry is a fair bit more complex, it still runs well in realtime, but then rendering it is much simpler. In the spirit of a typical 3d deferred renderer each light and each object are rendered once, [color=#222222][font=Arial][size=2]separately[/size][/font][/color] and then combined.

I was intentionally brief, I am quite new to 2D stuff, as far as I know this method could already be wide spread. If people care, I will elaborate at request, else I'll just fade quietly back into the woodwork and try again when I have something even more awesome.

Attached are in action screenshots, taken from Darkout, indie game I am part of. Link: [url="http://www.darkoutgame.net"]http://www.darkoutgame.net[/url]

Thats all folks.
-JimC

Share this post


Link to post
Share on other sites
They look preety neat. Is this the exact implementation of http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/dynamic-2d-soft-shadows-r2032 ?
On an unrelated note, your game looks pretty interesting. Keep up the good work.

Share this post


Link to post
Share on other sites
@clickAlot

Thank you,
And no, it is the same basic concept but implementation is quite different. The most obvious difference is; in the article trapezium's are generated from projecting the far edges of shadow casters away from the light origin, which are then used to "draw" shadows. Here we form triangles from light origin and the closest edges and use them to draw the lights directly. Additionaly any would be overlapping triangles are unionified.

-JimC

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this