Why in OpenGL do we need to transform all objects to render them?

1

I'm a beginner in OpengGL and I'm having some difficulty assimilating some concepts. I'm reading the book Mathematics for 3D Game Programming and Computer Graphics 3rd Ed. , in which the author explains the various coordinate systems that OpenGL uses to describe objects.

From what I understand there are 5 coordinate systems, these being:

  • Object Space : responsible for determining the coordinates of the vertices of an object relative to this same object. Each object has its own object space.
  • World Space : responsible for determining the coordinates of all vertices of all objects with respect to the coordinates of the "3d world". There is a unique World Space.
  • Camera Space : I understand OpenGL is only able to render World Space objects that have a fixed cube in the range of [-> 1, 1] in the axes x , and and z . This cube is also in World Space . Therefore, in order for our objects to be rendered, we need to transform them so that they "get" inside the cube.
  • Homogeneus Clip Space : After we transform our objects into Camera Space , we need to project them into a plane (I do not know which) and ignore objects whose projected coordinates exit the range [-1, 1]. We call this projection space Homogeneus Clip Space . Nor could I understand this homogeneus. It is at this stage that the z coordinates of the vertices go to the Z-Buffer ?
  • Window Space : After we have projected our objects to the Homogeneus Clip Space , all remaining vertices are in the range [-1, 1] and need to be mapped to the machine screen , particularly for the Viewport defined above.
  • Transformations from space to space are made through arrays . The matrix that turns Object Space into World Space is called Model Matrix . The matrix that turns World Space into Camera Space is called View Matrix . We can create a single array that takes Object Space to Camera Space by multiplying the Model Matrix with View Matrix . We call it the Model-View Matrix and the transformation it gives to Model-View Transformation .

    I wrote everything I could understand so that you can correct me in something I said wrong, or reinforce some concept.

    My main question is: why would OpenGL instead of doing all these transformations in the objects just allow us to position our object in the World Space and define a camera in that same space and only she is transformed? Is not it a loss of performance to do this much of the transformations in the objects to every frame?

    Anyway, that was my doubt. I ask you to correct me if I said something wrong.

        
    asked by anonymous 19.04.2017 / 19:18

    0 answers