当前位置:网站首页>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 ),
边栏推荐
- Statistical learning method -- perceptron
- Bidding announcement: Fujian Rural Credit Union database audit system procurement project (re bidding)
- What is the difference between IP address and physical address
- Xcode Revoke certificate
- Eye of depth (VII) -- Elementary Transformation of matrix (attachment: explanation of some mathematical models)
- 121. 买卖股票的最佳时机
- 3000 words speak through HTTP cache
- Spark Tuning (III): persistence reduces secondary queries
- The inevitable trend of the intelligent development of ankerui power grid is that microcomputer protection devices are used in power systems
- laravel post提交数据时显示异常
猜你喜欢
95. (cesium chapter) cesium dynamic monomer-3d building (building)
SysOM 案例解析:消失的内存都去哪了 !| 龙蜥技术
The difference and working principle between compiler and interpreter
Unity3D_ Class fishing project, bullet rebound effect is achieved
模仿企业微信会议室选择
Application example of infinite list [uigridview]
无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
企业级日志分析系统ELK
Power of leetcode-231-2
记一次项目的迁移过程
随机推荐
leetcode 241. Different ways to add parentheses design priority for operational expressions (medium)
ThinkPHP URL 路由简介
Enterprise log analysis system elk
laravel中将session由文件保存改为数据库保存
通知Notification使用全解析
面试题 01.02. 判定是否互为字符重排-辅助数组算法
[vulnhub range] thales:1
Communication mode between application program and MATLAB
删除 console 语句引发的惨案
HAVE FUN | “飞船计划”活动最新进展
How to query the data of a certain day, a certain month, and a certain year in MySQL
Dotween -- ease function
Prediction - Grey Prediction
SysOM 案例解析:消失的内存都去哪了 !| 龙蜥技术
47_Opencv中的轮廓查找 cv::findContours()
PHP实现微信小程序人脸识别刷脸登录功能
【C 语言】 题集 of Ⅹ
hellogolang
一个普通人除了去工厂上班赚钱,还能干什么工作?
Rongyun won the 2022 China Xinchuang digital office portal excellence product award!