Streaming Task List
- [x] Show currently fixed fisheye
- [x] Explain planar vs cylindrical projection
- [x] Explain correction of fisheye
- [x] Enable feature to toggle planar vs cylinder fisheye on / off so we can see the impact
- [x] Attempt better aspect ratio / FOV settings https://github.com/lefticus/raycasting/commit/8dbcf7871e61541f877f4cf8edb9841d26fca3f0#r99863042
- [x] Add tests
- [x] focus on conversions between things
- [x] focus on perfect right angles
- [x] find and fix issues with intersection of perpendicular values
- [x] move to segment intersection formula
- [x] remove all
Linereferences, they will no longer be needed - [x] document current compass coordinate system and consider moving to polar coordinates
- [x] discuss existing optimizations
- [x] re-add optimization for bounding boxes in segment intersection?
- [ ] split out renderer so we can target more than one way of drawing
- [x] add a minimap option
- [x] add camera in minimap option
- [ ] add proper timing loop
- [ ] stabilize texture for walls and properly draw texture with perspective and such
- [ ] add walls with windows
- [ ] add map actions
- [ ] add map objects
- [ ] add ability to load map from disk
- [ ] port to C++
I have a PR to fix the perpendicular intersection bug using a Segment intersection test rather than relying on the Line slope intersection.
See: https://github.com/lefticus/raycasting/pull/6/files
Feel free to use as much or as little on stream as you'd like.
@kolbyb you're 100% correct that I should move to segment intersection tests instead. Particularly after I spent today tracking down the existing bugs. I'm going to take a slightly different approach than you, I think.
@lefticus - I ported my Cppyy branch back to Python. I highly suspect you won't be interested in taking any of the changes however, you might be interested in how I structured the code into modules. Perhaps it could be of use if you wanted to restructure the code in any way.
You can check out the commit here: https://github.com/kolbyb/raycasting/commit/7d2efc73de46bf2620bb0bebdeb116786e83d370
@lefticus - I ported my Cppyy branch back to Python. I highly suspect you won't be interested in taking any of the changes however, you might be interested in how I structured the code into modules. Perhaps it could be of use if you wanted to restructure the code in any way.
You can check out the commit here: kolbyb@7d2efc7
I do plan to eventually port all of this to C++, and it would be interesting to keep it in such a way that it can be used as C++/Cppyy/Python/whatever