当前位置:网站首页>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 ),
边栏推荐
- 23. 合并K个升序链表-c语言
- Introduction to ThinkPHP URL routing
- iptables只允许指定ip地址访问指定端口
- 【知识小结】PHP使用svn笔记总结
- Imitate the choice of enterprise wechat conference room
- Mysql database basic operation DQL basic query
- logback.xml配置不同级别日志,设置彩色输出
- Asyncio concept and usage
- 企业级日志分析系统ELK
- How to query the data of a certain day, a certain month, and a certain year in MySQL
猜你喜欢
预测——灰色预测
Plate - forme de surveillance par étapes zabbix
TiDB For PostgreSQL和YugabyteDB在Sysbench上的性能对比
[C language] question set of X
95. (cesium chapter) cesium dynamic monomer-3d building (building)
Step by step monitoring platform ZABBIX
Unity3D_ Class fishing project, control the distance between collision walls to adapt to different models
Good news! Kelan sundb database and Hongshu technology privacy data protection management software complete compatibility adaptation
Application example of infinite list [uigridview]
[vulnhub range] thales:1
随机推荐
You Yuxi, coming!
Spark Tuning (III): persistence reduces secondary queries
Logback logging framework third-party jar package is available for free
模仿企业微信会议室选择
Find tags in prefab in unity editing mode
leetcode 241. Different ways to add parentheses design priority for operational expressions (medium)
Unity3D_ Class fishing project, bullet rebound effect is achieved
记录Servlet学习时的一次乱码
1亿单身男女“在线相亲”,撑起130亿IPO
laravel构造函数和中间件执行顺序问题
Mysql database basic operation DQL basic query
[vulnhub range] thales:1
What about the pointer in neural network C language
Shader basic UV operations, translation, rotation, scaling
01tire+链式前向星+dfs+贪心练习题.1
平衡二叉树(AVL)
[flower carving experience] 15 try to build the Arduino development environment of beetle esp32 C3
预测——灰色预测
Rongyun won the 2022 China Xinchuang digital office portal excellence product award!
[hcsd celebrity live broadcast] teach the interview tips of big companies in person - brief notes