Adding Raytracing/RTX support to sm64coopdx by using the RT64 Rendering API #283
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request aims to integrate RT64, a ray-tracing rendering API, into the sm64coopdx project. Unlike previous attempts, this integration has been restarted from scratch, based on the latest code from the sm64rt/master branch. (Repository link: https://github.com/DarioSamo/sm64rt)
Current State of Implementation:
The development is now progressing exclusively in the
main
branch of my sm64coopdx fork. Earlier branches from previous integration attempts are now outdated and no longer in use. An exception is thechanges
branches (changes_dynos
andchanges_normal
) within my sm64coopdx repository, which remain helpful for comparisons and debugging. (Repository link: https://github.com/iZePlayzYT/sm64coopdx)Current Problems and Issues:
Assertion Errors: During development, the game crashes due to two specific assertions in the
gfx_rt64_rapi_process_mesh
function. These assertions relate to calculations concerning the vertex structure and the number of vertices. To diagnose these errors, I added additional debug output in both my repository and the original repository (tester_rt64alpha
in Render96ex, where RT64 was successfully implemented). This allowed for a comparison of variable values before the assertions. A screenshot marking the two problematic assertions is attached.Additionally, I created a video that presents a direct comparison of the debug outputs between the
main
branch of my repo and thetester_rt64alpha
branch. This video highlights the differences and similarities in variable values before the assertions, which could help identify the causes of the crashes. This comparison provides valuable insights into the different behaviors of the two versions and aids in troubleshooting. More details and a thorough analysis of the errors can be found in the video: https://youtu.be/70Vvn9bWi_s.Rendering Issues: If the aforementioned assertions are commented out, another issue arises: While the game does not crash, the graphics are not rendered correctly. Instead, the game starts with severely flawed graphics, where most visual elements are not displayed properly. However, the ImGui F1 menu remains functional. A screenshot documenting this faulty graphic output is attached.
Old Compilation Video:
At an earlier stage of the development process, I uploaded a video showing the compilation and startup process of my initial integration attempts. Although this video is now outdated, it still provides valuable insights into the issues encountered during the early phases. The video can be viewed here: https://youtu.be/VempTQbSfQ0.
Thank you in advance for your support in resolving these issues and fully integrating RT64 into sm64coopdx. Your collaboration is greatly appreciated.