Hellow everybody, I'm now trying to implement Cohen-Satherlend Clippling algorithm in 3D space, which works with viewing volume. Generally I understand how this algorthithm works, but there still is small thing which I don't know how to expain: lets suppose I apply model view matrix and projection matrix to some point (a, b, c). After that I'm getting point (x, y, z). To check if this point is in viewing volume I use this simplified Cohen-Satherlend algothithm: x > -1 && x < 1 && y > -1 && y < 1 && z > -1 && z < 1 (I can use this comparison freely, because my projection matrix converts coordinates of point (a, b, c) so that they are fitted in -1..1 radius in all 3 decarts directions - except those point which are out of viewing volume). If the last expression is true - than I use Viewport transformation to find out the coodrinates of (x, y, z) at screen. Suppose final coordinates of the final point at screen are: (A * x + C, B * y + D) = Point S. Here we can exactly see that Cohen-Satherland algorthithm has nothing to do with Viewport transformation. So the question is: how I can be sure that point S will not come out of boundaries of monitor after Viewport transformation has been applied on that point? I can change any constant - A, C, B or D so that point S will surely come out of boundaries of screen - and at this step I will get error Out_Of_Boundaries - (Please do not attach OpenGl to that topic). So what is the main clue of Cohen-Satherlend Clippling algorithm, it does not take into account Viewport transformation so it does not quarante that the point will not jump out of my screen. So what is the point of that algorithm? It is obvious that I can calculate constants A, B, C, D so that the point fits into screen. But I should be free to assign them any value, and at the same time ensure that point which is in viewing volume will not jump out of screen. So how do I need to do that? Am I actually misunderstood something?