so, time for part 2(ish) of doing things with designer that designer wasn't intended for...
Step one: infinite texture mapped planes with perspective projection, horizontal camera rotation and depth cueing to hide the fact there's no mip-mapping
Doom isn't strictly a pure raycasting renderer but it does raycast walls. I intend to apply the same approach used there (and in wolfenstein etc.) which is to cast rays in a 2d space and then basically extrude walls up/down when the ray hits them
This means I have to come up with a way to raycast in a system with no looping or memory.
The attached (awful quality) video is an effort at 2d raycasting, I'm able to detect when a ray lands in a wall which is a good start. I've also sort of identified the first ray step that hits a wall so I'm calling this progress
1: I have a headache and one less favour in the bank with a friend who's better at maths than me 2: I know where my ray intersects with my walls (provided it enters the wall from the left or top and the ray isn't axis aligned but those are minor details)
to explain the picture : The big blue blob is my player position The little blue blob is the end of the ray I'm casting The green blob is where it the ray hits a wall. The yellow box is the ray's relative end position
given this information I will be able to determine how far from the player a wall is - which will be fairly vital when it comes to drawing them in '3D'
I'm fully expecting to see artefacts where two wall cells meet but it is at least behaving predictably. I think I need to get this drawing from the player's perspective to see how borked it's going to get now...
Replies
edit : nope! adverts on that hosting site aren't appropriate
futher edit : youtube link
https://www.youtube.com/watch?v=REJEvf7X84E
perhaps ill leave improving the movement controls til later..
walls are more important
Doom isn't strictly a pure raycasting renderer but it does raycast walls.
I intend to apply the same approach used there (and in wolfenstein etc.) which is to cast rays in a 2d space and then basically extrude walls up/down when the ray hits them
This means I have to come up with a way to raycast in a system with no looping or memory.
The attached (awful quality) video is an effort at 2d raycasting, I'm able to detect when a ray lands in a wall which is a good start. I've also sort of identified the first ray step that hits a wall so I'm calling this progress
https://www.youtube.com/watch?v=aN6OfCtZRdI
(anyone know a good thing to capture your screen with that doesn't involve installing video editing software?)
so, now ..
1: I have a headache and one less favour in the bank with a friend who's better at maths than me
2: I know where my ray intersects with my walls (provided it enters the wall from the left or top and the ray isn't axis aligned but those are minor details)
to explain the picture :
The big blue blob is my player position
The little blue blob is the end of the ray I'm casting
The green blob is where it the ray hits a wall.
The yellow box is the ray's relative end position
given this information I will be able to determine how far from the player a wall is - which will be fairly vital when it comes to drawing them in '3D'
I'm fully expecting to see artefacts where two wall cells meet but it is at least behaving predictably. I think I need to get this drawing from the player's perspective to see how borked it's going to get now...