I have a simple orthographic projection that is rotated at an arbitrary angle on any combination of the three axes. I am trying to use these matrices to calculate the viewable area of the screen for clipping purposes.
All of the examples I can find are old, use one game engine or another, mostly deal with perspective projection (and seem more complex than they need to be for orthographic projection), just plain don't work, or I am not understanding the calculations enough to plug in my own values and get the answer I am looking for.
I aim not only to get a functional (and relatively fast) way to achieve my goal, but hopefully understand the why and how in the process.
Does anyone here know how to calculate these values given the projection/view/model matrices?
I work with OpenGL, in C++, using glm for matrix calculations.
I realize my original post might not be clear enough so I will try and clarify a bit.
Imagine I had an ortho projection like:
glm::ortho(0.0f, 2.0f, 0.0f , 1.0f, -10.0f, 10.0f);
Given no rotation or other translation of any kind, then the information I am looking for would coincide exactly with the values I put into the ortho. Taking the X axis as an example, I want to know that the first visible X coordinate is 0.0 and the last visible X coordinate is 2.0. If I were to translate this by 0.5 on the X axis, then the values would be 0.5 and 2.5 respectively.
Now if I rotated the view by 90 degrees, then the first visible X would be 0.0 and the last visible X would be 1.0 (obviously depending on the rotation origin), because it can now only display what it can fit on the vertical screen area.
Given any arbitrary rotation, scaling or translation (on any axis) how would I get that information (and the same for Y and Z)?