当前位置:网站首页>Personal notes of graphics (3)
Personal notes of graphics (3)
2022-07-07 16:30:00 【qq_ fifty-seven million two hundred and fifty-one thousand thre】
View transformation :
The main purpose of learning transformation is to turn a three-dimensional object into a two-dimensional picture
How to take photos (1. Put the model in place 2. Put the camera away 3. Taking pictures )
(MVP Transformation )
//----------------------------------------------------------------------------------------------------//
Change of perspective :
There are two ways 1. Construct a matrix from world space to observation space 2. Pan the entire viewing space , Place the camera at the origin , At this time, the coordinates of the object are the relative positions in the observation space Here we take the second approach
ps: The camera and the object it sees move relative
pps: The purpose of camera transformation is to get the relative positions of all visible objects and cameras , How to get ? A very intuitive step , We move the object with the camera ( The matrix obtained by restoring the camera to the origin is multiplied by the model ), If you can put the coordinate axis of the camera ( Assuming that u,v,w Respectively corresponding to x,y,z) Move to standard x,y,z Axis , Then the coordinates of the object at this time are not naturally relative coordinates !
Essentially, the operation is divided into two steps ,1. Move to origin ,2. Rotate the axis of the camera to xyz Axis
There are some things that need to be said :
In the observation space , The camera is at the origin , Observe the coordinate axis of space +x Point to the right ,
+y Above ,+z In the rear
First step : Establish the camera coordinate system
The second step : After successfully establishing the camera coordinate system , How to move it to the original world coordinate system ?
( Note that this is not a linear transformation before translation But first translation and then linear transformation )
( Rotating an arbitrary axis to a normalized axis is not easy to write , But the reverse is easy to write , such as X Axis (1,0,0) Rotating to a certain axis is easy to write )
Here the teacher directly wrote such an inverse matrix ( The derivation process can be seen by yourself ), Suppose you give a vector (1,0,0,0) Multiply by this matrix and you will get
It's exactly the same
( The matrix of the origin transformation camera is derived directly above , So directly invert this matrix to get the last matrix we need )
Tips : Inside the spin , The inverse matrix of rotation is equal to that of rotation matrix 【 Transposition 】
pps( Finally applied to objects )
//----------------------------------------------------------------------------------------------------//
Projection transformation :
( The second picture is perspective The first picture is orthogonal )
The size of near big far small and near far are the same
Orthographic projection :
Put the camera at the origin here , the -z Look in the direction , The upward direction of the camera is y, At this time z Throw it away and get an orthogonal image
Throw away z after All objects are x and y In the plane , It doesn't matter at this time x and y How big is the plane formed , We all map him to -1 To 1 In the cube of
( The purpose of mapping is to prepare for the next step of rasterization )
For orthogonal projection , Will turn any shape into such a standard body , The operation steps are as follows
1. First move to the origin 2. Zoom all the points ( shrinkage )
x Left and right on the axis (l r)
y Up and down on the shaft (b t)
z Far and near on the axis (f n)
for instance
The rightmost matrix represents l r Move the midpoint of to the origin
The matrix next to represents mapping to x On the shaft And the left and right add up to 2
2. Perspective projection :
Parallel lines are not parallel
The following is an example of multiplying any point by any number , The final point is the original point ( Divided by w Remember that nature ?) Taking what is not taking Let's take a z
The difference between orthographic projection and perspective projection Both far and near But the extended lines are inconsistent ( Parallel not parallel )
The perspective projection can be split in two :
1. First squeeze the perspective projection ( Compress ) Form a cube like a near plane ( The near plane remains unchanged ,z No change , The center does not change )
2. Then do orthogonal projection ( Move first And then compress it into -1 To 1 The cube )
First step , extrusion ( hold y Squeeze to y')
Similar triangle rule The distance between the near plane and the far plane == The height of the near plane is higher than that of the far plane
Empathy ,x I know
At this point, we squeeze the matrix x and y I have got it however z Still don't know
It is also known that the result of multiplying a point by a constant is still equal to this point Then let's multiply by z
So the final equation is equal to
Some point (xyz1) Dot multiplying a matrix must be equal to the above matrix So we can guess some numbers ( first line :x*n)
Now that's all Z I don't know. , But we summarized the rules :
1. No point changes in the near plane
2. Far plane z No change
So according to the law of the near plane, we can get
So according to the law of the far plane ( The center of the far plane (00f) It is the same. ) You can get
So finally :
Then do the orthogonal projection to get the perspective projection
//----------------------------------------------------------------------------------------------------//
When you know a vector , And obtain a transformation matrix ( translation , rotate , Zoom or operate together, etc ) when ,
Multiplication represents the corresponding transformation of this vector ( translation , rotate , Zoom or operate together, etc )
1. Transformation from model space to world space : According to the model Transfrom Find the transformation matrix with world space
2. Transform vertices from world space to observation space ( Camera space , Not two-dimensional space ): Similarly, according to the camera Transfrom Find the transformation matrix between camera space and world space ( We need to pay attention to The camera space uses the right-hand coordinate system , So the matrix should be right z The component is reversed )
3. From observation space to clipping space : Involves two projections ( Orthographic projection , Perspective projection Perspective has the law of near big and far small , Orthogonality is the same size far and near ),
边栏推荐
- Talk about the cloud deployment of local projects created by SAP IRPA studio
- 分步式监控平台zabbix
- SysOM 案例解析:消失的内存都去哪了 !| 龙蜥技术
- Bidding announcement: 2022 Yunnan Unicom gbase database maintenance public comparison and selection project (second) comparison and selection announcement
- Logback logging framework third-party jar package is available for free
- 通知Notification使用全解析
- 分步式監控平臺zabbix
- PHP实现微信小程序人脸识别刷脸登录功能
- Performance comparison of tidb for PostgreSQL and yugabytedb on sysbench
- What is the difference between IP address and physical address
猜你喜欢
[Android -- data storage] use SQLite to store data
Pycharm terminal enables virtual environment
记录Servlet学习时的一次乱码
预测——灰色预测
2022 the 4th China (Jinan) International Smart elderly care industry exhibition, Shandong old age Expo
Apache Doris just "graduated": why should we pay attention to this kind of SQL data warehouse?
You Yuxi, coming!
What are compiled languages and interpreted languages?
95.(cesium篇)cesium动态单体化-3D建筑物(楼栋)
【Android -- 数据存储】使用 SQLite 存储数据
随机推荐
Shader_ Animation sequence frame
Aerospace Hongtu information won the bid for the database system research and development project of a unit in Urumqi
Three singleton modes of unity (hungry man, lazy man, monobehavior)
js中复选框checkbox如何判定为被选中
安科瑞电网智能化发展的必然趋势电力系统采用微机保护装置是
2022 the 4th China (Jinan) International Smart elderly care industry exhibition, Shandong old age Expo
Iptables only allows the specified IP address to access the specified port
Plate - forme de surveillance par étapes zabbix
Prometheus API deletes all data of a specified job
ThinkPHP URL 路由简介
SPI master RX time out interrupt
JS 模块化
Laravel constructor and middleware execution order
Imitate the choice of enterprise wechat conference room
Logback日志框架第三方jar包 免费获取
01tire+ chain forward star +dfs+ greedy exercise one
How can laravel get the public path
Sysom case analysis: where is the missing memory| Dragon lizard Technology
IP地址和物理地址有什么区别
Introduction to pyGame games