Ray Casting
-
More than awesome - brilliant. Absolutely brilliant. I knew there had to be an answer somewhere .
I just needed to look outside the box but I was stuck in a rut. Kept trying to modify the existing code. Just needed a complete rethink. Thanks a bundle. -
@faz808 I can see the smile on your face it's the same as mine
-
Unbelivably awesome. My jaw is on the floor...
-
I thought I could finally put this to bed … (or my wife did !) - but then I found this ,,,
http://www.wolfenvault.com/resources.html
Sorry Gothon, but I'm not finished yet ...
-
Did some graphics work. Phew !!!
Wolfy ID: X66M3MND15 -
@faz808 Oh that is so cool!
-
Looking slick.
It runs pretty fast .
I'm amazed.
How far can you scale the textures ? -
-
-
@xevdev
E1M1 quietly plays in my head
Seriously though this ray tracing program is amazing, the stuff that can be done with this is so awesome! -
This post is deleted! -
I'm not sure if 128 x 128 is realistic. There would be a lot more graphic work. It took me nearly three hours to do the red brick wall at 64 x 64 !
Try clear(grey) - about line 118. Looks better I think. -
This post is deleted! -
-
Well done. Looks great at 128 x 128.
-
This all is very impressive, I like where it is going, looks great :)
-
This is some great work. The brick texture looks really good. I went on to try and do the floor casting.
Turns out that the floor is a little different from the wall.
drawImage()
anddrawQuad()
can only read axis parallel rectangles from the source image, but the floor is 2D rotated relative to the player camera. I was only able to get it to work by usingdrawImageEx()
to rotate the floor in an off-screen buffer before doing the floor casting loop. This is easiest and most efficient if the entire floor is in one giant off-screen texture.The entire floor is only 24x24 tiles, so to do this with a 32x32 texture for each floor tile, I only need a 768x768 image for the whole floor texture. The rotated floor may be sqrt(2) wider than the original, so I actually use a 1088x1088 image for the destination buffer. (Which I only now realize is 8 pixels taller than maximum :-P) For the textures themselves I found some good 16x16 assets in the media library, and I tiled 4 of them to make a 32x32.
While doing it this way means that I can't enlarge the floor textures or the map without writing more complex code to do the floor from multiple images, there are several advantages too. One thing is the floor is drawn very quickly as it is just scaling lines from the rotated image buffer. There is only 1 floor and its position is fixed so there is no loop to look through the tiles for the nearest floor. Additionally there is memory for each tile to have a unique texture. This I demonstrate by drawing some randomly positioned colored circles on the floor.
"ray casting w floor textures" is pending for approval now with ID: NYKDXMND9L
-
Well done. Can't wait to see it.
-
Fantastic job. Can this be added to the red brick/eagle version or would this be too difficult?
I've got a door of sorts - actually just red brick (looking for a door texture). "A" opens "B" closes.
wolfy-door ID: MYK73MND15 -
Textured door - "A" opens "B" closes.
wolfy-door2 ID: PL873MND15 (pending)