Hello,
first of all, thanks for your amazing work on this library!
I am implementing a 3D game using SaturnRingLib and SaturnMathPP and was trying to implement frustum culling and found your implementation. I just noticed that the coordinates you use are not like the ones from SGL. The coordinate system from SGL is (from section 4.1 in the SGL's User Manual):
+X goes right
-Y goes up
-Z goes towards the screen
but in your implementation (from frustum.hpp):
* Coordinate system:
* - Uses a right-handed coordinate system where:
* - +X is right
* - +Y is up
* - -Z is forward (into the screen)
Is this intentional or a bug? Since it's not wired into SaturnRingLib yet I could not understand why the coordinate system is different from SGL.
Hello,
first of all, thanks for your amazing work on this library!
I am implementing a 3D game using SaturnRingLib and SaturnMathPP and was trying to implement frustum culling and found your implementation. I just noticed that the coordinates you use are not like the ones from SGL. The coordinate system from SGL is (from section 4.1 in the SGL's User Manual):
but in your implementation (from frustum.hpp):
Is this intentional or a bug? Since it's not wired into SaturnRingLib yet I could not understand why the coordinate system is different from SGL.
Hi! First of all, thank you so much for using the library!
You are right to question this. This is happening mainly due to two reasons:
Independent Development: SaturnMath++ was developed as a standalone library, independent of SRL/SGL. Since it wasn't intended to be an SGL wrapper, I didn't prioritize making the orientation conform to SGL standards at the start.
Testing Focus: Historically, only the features used within SRL were extensively tested, leaving these orientation discrepancies less explored.
This has recently become an issue in SRL as we started integrating it into newer examples. The core problem is that Matrix43 is row-major while SGL is column-major. I’ve since realized…