Http://wenku.baidu.com/link?url=wDkyQR9fDI_tZas1BlMRUnNNoKwiQDygltm2wWxRr_sDwcDB51_QCDfR4Gb5wYrIUZ_ Tyxpjhzcquyebgoc2ce5th-i6npzkeqthz9zfnt7
Reprinted from: http://wenku.baidu.com/view/f478d71aa8114431b90dd870.html
These parameters can also be based on the field of view (
FOV
–
Field of View
) parameters to obtain. Here are two
Visual field diagram of a plane:
which
Two
FoV
respectively, in
X-z
And
Y-z
Vision on the plane.
If only one view was given,
Also
Can be calculated by the aspect ratio of the projection plane:
Use a field of view to figure out
W
Or
H
, and then use the aspect ratio to figure out
H
Or
W
。
(
2
) Equation of the general condition
This set of equations is cumbersome but more general (and
Opengl
The derivation of the general matrix is consistent, which is also
D3dxmatrixperspectiveoffcenterlh
And
D3DXMatrixPerspectiveOffCenterRH
Two
Used by a method). We export it:
We continue to roll back the perspective projection matrix:
which
The last matrix is
D3d
The general perspective projection matrix.
All right
So far,
We have already exported the
D3d
Of two perspective projection matrices.
Next I'll take a guide to the last article
Out of
Opengl
The perspective projection matrix is written out, you can take it and just export the
D3d
The general
The perspective projection matrix makes a comparison.
If you look closely,
You can see that they are a transpose relationship on the layout of the element,
This is what it
The use of the left-hand coordinate system and the use of the difference between the determinant matrix.
And in some other elements of the
There are differences in the details,
This is due to
D3d
Of
CVV
Of
Z
caused by different ranges.
Visible in the principle phase
In the same situation,
Subtle environmental differences can cause very large changes,
And this is how the perspective projection matrix is stored
In many different versions of the reason. The perspective projection matrix of the general situation can also be defined using the visual field method,
Method is the same as the special case.
m3g
The Perspective projection matrix
m3g
is to
Opengl
In a package,
Its perspective projection transformation matrix is put into the class
Camera
In
Surface.
Because it encapsulates the
Opengl
,
Thus the environment and
Opengl
Same:
Right-hand coordinate system,
Column vector multiplication,
CVV
Range
[-1
,
1]
。 It's only and
Opengl
The difference is that it only uses the projection plane
The Center and
X-y
The center of the plane coincides
(In
X
And
Y
centered on the direction)
The situation
(That's what we
D3d
The first special case). We use
Opengl
Perspective projection Matrix final version to illustrate (again
Reminder, if the reader is confused, please refer to the first article):
Above is
Opengl
The final version of the perspective projection matrix is also a generic version, and we're going to turn it into a special
The uniqueness, the version, very simple, and above
D3d
In the special case, we
X
And
Y
To interpolate a value
The next step:
And
D3d
The first case, sell off both sides of the
1/2
Get:
Then we roll back the perspective projection matrix:
The right-most matrix is
m3g
The Perspective projection matrix.
Perspective projection can still be set through the field of view parameters.
This is the reader's own derivation, the method
D3d
The exact same