-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve non-uniform 3D ray cast selection #172
Comments
Fixed in commit da5b86f. Leaving this open until these are done:
|
The initial ray cast bug seems to still appear on the underside of raised platforms in the wilderness as of current master. Could be because the raised platforms extend outside the voxel they live in. Still need to fix raised platform Y offset and size calculation in wilderness first. |
Ray cast selection still seems incorrect, i.e. trying to select a voxel face doesn't always work, so this issue is still relevant. |
Made a few significant bug fixes for selecting voxels across chunk boundaries, but there still feel like a couple minor edge cases with the math when selecting diagonally, like sometimes it's easier to select the farther part of a voxel than the nearer part. The debug pixel coloring seems all correct now, except for the part where SDL 2.0.10 changed the coloring to be batched, so only one color shows per frame :/ |
See #164 and #169.
3D ray cast selection is implemented but it is not completely correct.
Visual debugging code is available at the highest profiler level. Rays are cast out from the camera and draw dots on the screen corresponding to the Y voxel coordinate of the hit. Red dots are Y=0, green are Y=1, etc.. Ideally the dots would perfectly match the visual geometry they are associated with.
Places in code:
OpenTESArena/OpenTESArena/src/Game/Physics.cpp
Line 999 in ac8b298
OpenTESArena/OpenTESArena/src/Interface/GameWorldPanel.cpp
Line 106 in ac8b298
Other things of note:
In the picture, the ground should be completely full of red dots, but the ray cast algorithm doesn't register hits everywhere due to bugs in the math calculations, probably
deltaDist
.The text was updated successfully, but these errors were encountered: