当前位置:网站首页>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 ),
边栏推荐
- Spark Tuning (III): persistence reduces secondary queries
- Rongyun won the 2022 China Xinchuang digital office portal excellence product award!
- Asyncio concept and usage
- PHP has its own filtering and escape functions
- torch. Numel action
- Logback日志框架第三方jar包 免费获取
- Mysql database basic operation DQL basic query
- 融云斩获 2022 中国信创数字化办公门户卓越产品奖!
- PHP实现执行定时任务的几种思路详解
- 【知识小结】PHP使用svn笔记总结
猜你喜欢

The unity vector rotates at a point

Unity3d click events added to 3D objects in the scene

Dotween -- ease function

Xingruige database was shortlisted as the "typical solution for information technology application and innovation in Fujian Province in 2021"

HAVE FUN | “飞船计划”活动最新进展

Record the migration process of a project

分步式監控平臺zabbix

Vs tool word highlight with margin

Description of vs common shortcut keys

Prediction - Grey Prediction
随机推荐
Xcode Revoke certificate
laravel中将session由文件保存改为数据库保存
Particle effect for ugui
无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
Performance measure of classification model
laravel post提交数据时显示异常
laravel怎么获取到public路径
SPI master RX time out interrupt
Shader basic UV operations, translation, rotation, scaling
Bidding announcement: Fujian Rural Credit Union database audit system procurement project (re bidding)
Unity3d click events added to 3D objects in the scene
torch. Numel action
模仿企业微信会议室选择
Talk about the cloud deployment of local projects created by SAP IRPA studio
How does laravel run composer dump autoload without emptying the classmap mapping relationship?
What are compiled languages and interpreted languages?
Find tags in prefab in unity editing mode
Strengthen real-time data management, and the British software helps the security construction of the medical insurance platform
通知Notification使用全解析
spark调优(三):持久化减少二次查询