Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (109)
games submitted by our members
Games in WIP (537)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  2D Raycasting and Lighting  (Read 1136 times)
0 Members and 1 Guest are viewing this topic.
Offline bcsharp

Senior Newbie





« Posted 2014-01-07 23:19:13 »

Hello, I am wondering how I could implement 2D ray-casting in a Slick2D game, for lighting purposes. I realize that Slick2D is somewhat dead but that is irrelevant to ray-casting, as far as I know.

The "map" would consist of either rectangles or line segments.

I've read the article at http://www.redblobgames.com/articles/visibility/ but I can't seem to figure out how this is implemented in Java.

My best guess is to have a Ray class and a Line class and determine where intersections lie, and then create triangles from those points. Also, on a slightly irrelevant note, I have not learned how to create radial gradients in Slick2D, any help there would be appreciated too. I'm also wondering if efficiency would be an issue in a situation where there are a large number of lines. I hope my question makes sense.  Undecided

One other question: how would I combine the lights from multiple sources? I'm thinking additive blending or perhaps transparency would be the solution.

Any help would be appreciated!

-bcsharp
Offline Varkas
« Reply #1 - Posted 2014-01-08 00:45:40 »

Once I've implemented the following method:

Take the octant aligned to the positive x-axis and the y-axis with (y < x). Scan it left to right. Keep track of shadowed intervals. Merge overlapping shadow intervals.

Done.

Now use affine transforms to map the other 7 octants on the first one, and you can do a full field of view calculation.

if (error) throw new Brick(); // Blog (german): http://gedankenweber.wordpress.com
Offline Varkas
« Reply #2 - Posted 2014-01-08 12:29:31 »

You can find my code here:

http://sourceforge.net/p/rlgamekit/code/HEAD/tree/RoguelikeGameKit/trunk/rlgamekit/fieldofview/

Ready to use, but it assumes a grid-based map. The algorithm is fairly easy to extend for other map types, though.

if (error) throw new Brick(); // Blog (german): http://gedankenweber.wordpress.com
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

CogWheelz (17 views)
2014-08-01 22:53:16

CogWheelz (15 views)
2014-08-01 22:51:43

CopyableCougar4 (18 views)
2014-08-01 19:37:19

CogWheelz (19 views)
2014-07-30 21:08:39

Riven (27 views)
2014-07-29 18:09:19

Riven (16 views)
2014-07-29 18:08:52

Dwinin (14 views)
2014-07-29 10:59:34

E.R. Fleming (42 views)
2014-07-29 03:07:13

E.R. Fleming (13 views)
2014-07-29 03:06:25

pw (44 views)
2014-07-24 01:59:36
Resources for WIP games
by CogWheelz
2014-08-01 18:20:17

Resources for WIP games
by CogWheelz
2014-08-01 18:19:50

List of Learning Resources
by SilverTiger
2014-07-31 18:29:50

List of Learning Resources
by SilverTiger
2014-07-31 18:26:06

List of Learning Resources
by SilverTiger
2014-07-31 13:54:12

HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!