Difference between revisions of "Shadow casting"
Jump to navigation
Jump to search
m (I don't think category + subcategory are both needed at the same time.) |
|||
Line 20: | Line 20: | ||
* [[FOV using recursive shadowcasting - improved]] | * [[FOV using recursive shadowcasting - improved]] | ||
* [[Spiral Path FOV]] | * [[Spiral Path FOV]] | ||
* [[Precise Shadowcasting in JavaScript]] | |||
==What games use it?== | ==What games use it?== | ||
Line 30: | Line 31: | ||
* [[Roguelike Library For Java]] provides an implementation of shadow casting in Java. | * [[Roguelike Library For Java]] provides an implementation of shadow casting in Java. | ||
* [[libtcod]] | * [[libtcod]] | ||
* [[rot.js]] implements Precise Shadowcasting | |||
[[Category:FOV]] | [[Category:FOV]] |
Revision as of 15:14, 3 January 2013
What is Shadow Casting?
Shadow casting is a way to implement Field of Vision. In shadow casting, a destination square is visible from a source square if there exists an unobstructed line from the center of the source square to any point in the destination square. There are several efficient algorithms to accomplish this, including two which only visits squares that are visible (Spiral Path FOV and FOV using recursive shadowcasting).
Advantages
- Moderately easy to implement
- Efficient
- Existing library
Disadvantages
- Some artifacts (corners of rooms, for example).
- Non-symmetric, making it awkward for some implementations of ranged combat.
How do I implement it?
- Computing LOS for Large Areas
- FOV using recursive shadowcasting
- FOV using recursive shadowcasting - improved
- Spiral Path FOV
- Precise Shadowcasting in JavaScript
What games use it?
Most modern games use shadow casting.
What libraries implement it?
- libfov is a C++ library which implements recursive shadow casting.
- Roguelike Library For Java provides an implementation of shadow casting in Java.
- libtcod
- rot.js implements Precise Shadowcasting