有没有身体美白的办法办法在qq空间变换自己所在的位置

&2003-, All Rights Reserved.  本站发布的所有内容,未经许可,不得转载,详见。【UnityShader_Ojors的脚印】 在Shader之前_矩阵变换&坐标空间 - 简书
【UnityShader_Ojors的脚印】 在Shader之前_矩阵变换&坐标空间
在学习了矩阵的简单知识点,但是单凭那点知识是不够的,在本篇中我们将继续深化学习矩阵的知识,基本概念上篇已经说过,大家可以翻看学习。在后面会学习坐标空间的相关知识,方便大家对之后学习的理解。
首先需要清楚的是,变换实际上并没有对物体进行真的变换,只是把物体放在了另外一个坐标系中来描述。在变换中,包括旋转、缩放、错切、镜像、正交投影,仿射(在前面的变换中加入平移变换)等。
先交代一个概念:线性变换
线性变换指可以保留矢量加和标量乘的变换。
例如:f(x) = 2x,表示矢量x的模放大2倍
而平移不是线性变换例如:平移变换函数为:
根据线性变换关系f(x)+f(y)=f(x+y),我们设:
而由于是平移变换,f(x1+x2)应为:
所以平移不是线性变换。
物体绕着某个点或轴旋转。我们先考虑2D的情况,坐标基向量绕原点旋转一定角度,得到新的基向量p',q'。旋转矩阵如下:
2D旋转(图截自《3D数学基础:图形与游戏开发》)
在3D坐标系中:对比2D,3D需要区分左手系与右手系,判定方法依然为左手法则和右手法则。
绕X轴旋转时:旋转矩阵如下:
绕X轴旋转(图截自《3D数学基础:图形与游戏开发》)
绕Y轴旋转时:旋转矩阵如下:
绕Y轴旋转(图截自《3D数学基础:图形与游戏开发》)
绕Z轴旋转时:旋转矩阵如下:
绕Z轴旋转(图截自《3D数学基础:图形与游戏开发》)
复合旋转:对于复合旋转,我们可以通过简单的旋转相乘得到。我们定义一组角度
那么对应的选择矩阵即为:
缩放比较简单,对基向量进行标量线性变换即可:假设X,Y,Z缩放比例如下:
则缩放矩阵为:
对于平移矩阵,因为不是线性变换,所以无法通过3x3的矩阵来表示,所以提出了齐次坐标的概念
齐次坐标齐次坐标在3X3的基础上多出了第四维w,变成一个4x4的矩阵(Ps:对于点,从三维坐标转换成齐次坐标是把其w分量设为1,而对于方向向量则把其w分量设为0。想象一下,平移对点是有影响的,所以w分量不能为0,而方向向量没有位置的概念,所以可以把w分量置为0。)
有了齐次坐标,我们就可以表示平移变换了。设一次变换中的平移量为
则其对应的变换矩阵为:
(Ps:从上面的矩阵可以看出,平移变换矩阵不是正交矩阵)
复合变换其实就是上述的各种变换矩阵的乘积结果,即:
在计算机图形学中,为了方便定位每个物体的位置,定义了一系列的坐标空间,在渲染的过程中,计算机根据顺序一步一步地将物体从模型自身的坐标空间转换到显示器的窗口空间中。
转换顺序如下:模型空间-&世界空间-&摄像机空间-&裁剪空间-&屏幕空间
下面对这些坐标空间进行一一讲解。
模型空间是一个物体最基本的坐标空间,每个模型都有自己独立的坐标空间,当物体进行选择或者移动时,该模型坐标空间会随着物体一起移动。
当我们在Unity的Scene中进行物体的旋转时,选中Local所进行的就是基于模型空间的操作,而Global则是进行基于世界空间的操作。
Global模式
世界空间构建了我们整个游戏场景的空间坐标。在这个坐标系下,我们可以知道具体物体的位置,还可以知道一个物体相对与另外一个物体的位置。在Unity中,一个物体的Transfrom属性的position对应的就是该物体在世界空间中的坐标位置(针对没有父物体的对象)。
在坐标变换中,第一步就是将顶点坐标从模型空间转换到世界空间。那Unity中具体是怎么做的呢?例如我们要对一个物体进行转换,先看物体的Transform信息:
物体的Transform信息
我们从上图中可以获得一些列转换信息:
进行(2,2,2)的缩放:放大2倍
进行(0,30,0)的旋转:绕Y轴旋转30°
进行(3,0,10)的平移:水平平移3个单位,往里平移10个单位
由此我们可以得到其变换矩阵(从右往左计算):
我们有了变换矩阵,就可以对目标进行变换了。例如我们对点(2,3,4)进行从模型空间到世界空间的变换
摄像机空间
摄像机空间又叫观察空间。在摄像机空间中,摄像机位于原点,需要注意的是,在Unity中摄像机空间选择的是右手坐标系,即摄像机的正方向指向的是-Z轴。下面我们对上述的点进行摄像机空间的转换:首先我们看看当前摄像机的Transform信息
摄像机的Transform信息
从上图可以得知,该摄像机在世界空间中的变换是先按(30,0,0)进行旋转,再按(0,3,-8)进行平移。一般的思路是,我们要求世界坐标系在摄像机坐标系中的表示,求法是先构建摄像机空间变换到世界坐标系的变换矩阵,再对该矩阵求逆。根据上图的数据中,我们可以类似模型空间到世界空间的变化一样,得到摄像机在世界空间上的变换矩阵;而其逆矩阵,其实就是对各组数据求反所构建出来的变换矩阵。我们可以这样想,把摄像机进行逆变换,还原到与世界坐标重合的位置,先进行(0,-3,8)平移,再进行(-30,0,0)旋转,即平移整个摄像机空间。由此可以得到变换矩阵为:
由于摄像机坐标是右手坐标系,所以要进行Z分量的取反操作:
所以最终的顶点变换为:
用于裁剪空间变换的矩阵成为裁剪矩阵,也成为投影矩阵。裁剪空间由一个称为视锥体的空间决定,主要是为了确定哪些图元将会被渲染,完全位于视锥体内的图元会被保留,完全在视锥体外的图元将被剔除,而部分位于视锥体内的图元将会被被裁剪。
而视锥体有两种类型,决定两种投影方式:透视投影、正交投影。
透视投影:这种投影的视锥体是一个台体。靠近摄像机的平面较小,称为近裁剪平面,远离摄像机的平面较大,称为远裁剪平面,可以达到一种人眼观看的效果,即近大远小。平行投影:平行投影的视锥体是一个长方体,一般在2D游戏或者小地图时会选择平行投影。
在Unity中,裁剪平面由Camera和Game视图的横纵比决定
透视投影Camera中的属性
在透视投影中,我们可以看到3个参数:Field of View(FOV)、Near、Far
FOV决定视锥体的直径,也就是视锥体是“胖”的还是“瘦”的;Near和Far决定视锥体近平面和远平面距离摄像机的远近
Camera属性对视锥体的影响(图截自《Unity Shader入门精要》)
由此我们可以确定近平面与远平面的高度
而横纵比(Aspect)决定着显示的宽高比
Game视图中的Aspect
Aspect的计算方式为:
有了Near、Far、FOV、Aspect,我们就可以确定透视投影的变换矩阵(这里只给出求解结果,具体求解过程请参考Twinsen前辈的):
通过上述变换矩阵,我们就可以对顶点进行透视投影的摄像机空间变换
由上述结果可以看出,投影矩阵的本质是对x、y、z分量进行不同程度的缩放,z分量还额外进行了一定的平移,而w分量由1变成了-z,而这个w量将决定哪些点该保留,哪些点该裁剪,哪些点该剔除。在视锥体内的点必须满足(针对OpenGL):
而该变换还达到了一个目的,把摄像机空间的右手系变回了左手系。
平行投影Camera中的属性
正交投影比透视投影简单,Size为改变视锥体高度的一半,Near和Far跟透视投影一样决定近平面与远平面。
如果我们知道Aspect与平面高度,平面宽度我们就可以算出
至此,我们就可以确定正交投影的裁剪矩阵(这里只给出求解结果,跟透视投影大同小异)以及顶点变换结果:
最终的裁剪规则跟透视投影一致
屏幕空间要做的就是把裁剪空间中视锥体的内容投影到二维的显示器上,也就是得到目标的像素位置。上面裁剪空间中得到的齐次变换结果包含一个w分量,在屏幕空间的转换中,我们需要对该结果进行透视除法(用w分量除以x、y、z分量,把w分量归一化),经过透视除法后,视锥体内的点将转换到一个正方体中,这个正方体的x、y、z分量范围都是[-1,1](OpenGL中)。
透视除法(图截自《Unity Shader入门精要》)
经透视除法后就可以根据变换后的x、y坐标来算出对应屏幕像素的位置,屏幕左下角的坐标为(0,0),屏幕右上角的坐标为(pixelWidth,pixelHeight)。根据数学关系可得:
其中clip为裁剪结果的x、y、w分量而z分量在这里无需进行投影运算,通常作为深度缓冲进行另外的处理。
至此,我们就可以把一个点从模型空间一步一步转换到屏幕空间中了!
另外,法线的变换会比较特殊,如果我们使用顶点变换的变换矩阵来进行法线的变换,会发现结果很有可能跟平面不再垂直。
法线变换(图截自《Unity Shader入门精要》)
为解决这个问题,我们需要使用切线。而切线在变换后总与平面相切,与法线垂直,这样我们可以通过切线来求取变换后的法线。因为我们无法用原变换矩阵来变换法线,所以我们设定法线变换矩阵为G,于是有:
因为T·N=0,所以:
如果M是正交矩阵,那就有:
所以我们得出变换法线的结论:
当变换只包含旋转,也就是变换矩阵为正交矩阵,我们就可以用原来的矩阵进行变换。
当变换包含选择与统一缩放,我们只需要原来的矩阵上乘以1/k。
当变换不是线性变换,那我们就要乖乖地求取转置和逆矩阵了。
当然,坐标空间不止这么几个,例如:切线空间,这个在以后用到的时候再做讲述。
最后给出Unity中内置的变换矩阵:
UNITY_MATRIX_MVP
将顶点/方向向量从模型空间变换到裁剪空间
UNITY_MATRIX_MV
将顶点/方向向量从模型空间变换到摄像机(观察)空间
UNITY_MATRIX_V
将顶点/方向向量从世界空间变换到摄像机(观察)空间
UNITY_MATRIX_P
将顶点/方向向量从摄像机(观察)空间变换到裁剪空间
UNITY_MATRIX_VP
将顶点/方向向量从世界空间变换到裁剪空间
UNITY_MATRIX_T_MV
UNITY_MATRIX_MV的转置矩阵
UNITY_MATRIX_IT_MV
UNITY_MATRIX_MV的转置逆矩阵,用于将法线从模型空间转换到摄像机(观察)空间
【Ps:UNITY_MATRIX_T_MV这个矩阵是个神奇的矩阵,如果我们的变换是线性变换,就可以直接把这个矩阵当成逆矩阵来使用!对于法线变换这种可以不考虑平移的情况,我们可以直接截取该矩阵的3*3阵列进行运算!而对于UNITY_MATRIX_IT_MV,我们可以通过该矩阵来求解法线从模型空间到观察空间的变换;我们也可以通过求转置的方法得到UNITY_MATRIX_MV的逆矩阵,例如,我们要把一个点从观察空间转换到模型空间:mul(transpose(UNITY_MATRIX_IT_MV), viewPos);或mul(viewPos, UNITY_MATRIX_IT_MV);(在矩阵与向量的乘法中,右乘矩阵=左乘矩阵的转置)】
终于写完了。。本篇信息量有点大,需要我们去慢慢理解。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
考虑相关性的Rackwitz-Fiessler随机空间变换方法.pdf10页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
31 卷 10 期
Vol.31 No.10 工
20 14 年 10
Oct. 2014 ENGINEERING
MECHANICS 47
文章编号: 14 10-0047-09 考虑相关性的Rackwitz-Fiessler 随机空间变换方法 周生通,李鸿光 上海交通大学机械与动力工程学院,机械系统与振动国家重点实验室,上海 200240 摘 要:从新的角度对传统 Rackwitz-Fiessler 随机空间变换方法 R-F
法 进行了多方位的阐释。首先,给出传统 R-F 法的描述并从几何角度分析R-F 法与等概率变换的关系;然后,证明R-F 法的正变换过程符合等概率变换而 逆变换过程却不符合,但却可看作等概率变换的一次近似;其次,提出一种等价的R-F 条件,为清晰的阐释R-F 法中变量相关性的变化情况提供新思路;之后,指出R-F 法的变量相关性变化情况同Nataf-Pearson 方法 N-P 法 一致;最后,比较考虑相关性变化的R-F 法和N-P 法的计算量,指出两者在单个迭代步中计算量基本一致且可通 过算法优化实现;另外对R-F 法与线性N-P 法的也作了比较。算例表明:正确考虑相关性变化的R-F 法可以得到 同N-P 法一致的结果。 关键词:随机空间变换;Rackwitz-Fiessler 方法;Nataf-Pearson 方法;等概率变换;线性相关系数 中图分类号:TU318; TB 114.3 文献标志码:A doi: 10.6052/j.issn. 13.04.0353 THE RACKWITZ-FIESSLER RANDOM SPACE TRANSFORMATION METHOD WITH VARIABLE DEPENDENCE ZHOU Sheng-tong , LI Hong-guang State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University, Shanghai 200240, China Abstract:
New insights into the classic Rackwitz-Fiessler random space transformation method
R-F method are
description
geometrical
relationships
between the R-F method and the isoprobabilistc transformation are disc
正在加载中,请稍后...1.时间很短,天涯很远。往后的一山一水,一朝一夕,自己安静地走完。倘若不慎走失迷途,跌入水中,也应记得,有一条河流,叫重生。这世上,任何地方,都可以生长;任何去处,都是归宿。那么,别来找我,我亦不去寻你。守着剩下的流年,看一段岁月静好,现世安稳。2.好脾气都是磨出来的,坏毛病都是惯出来的,治的了你脾气的是你爱的人,受的了你脾气的是爱你的人。请记住:脾气永远不要大于本事。3.人生总要有梦想,岁月总要有追求;珍惜一份情,怀揣一份梦,就是最大的收获。4.那是一种很奇特的味道,酸?甜?苦?辣?分不清楚,尝了才知道,那是回忆的味道吧,怪不得那么熟悉!5.要相信任何值得去的地方,都没有捷径可选。6.镜子里的你说想要温暖,现实的人却独爱疏离感。7.做人做事最好的状态就是:不刻意。不刻意自我表现,也不刻意淡泊名利;不刻意迎合,也不刻意狂狷;不刻意追逐流行,也不刻意卓尔不群。如是,则不心累,不纠结,不失望。8.年轻的时候以为不读书不足以了解人生,直到后来才发现如果不了解人生,是读不懂书的。读书的意义大概就是用生活所感去读书,用读书所得去生活吧。9.我希望有人看见我的不好依旧不会丢下我。10.感觉一旦消失,承诺就只是一张白纸。11.一个人行走、看了一场孤独的电影、走着一段安静熟悉的小路。存入脑海的剧情与台词还不时回放或是默念。波澜仍未平静,心烦也接踵而至文章出自,转载请保留此链接!。12.总是有一个人,一直住在心底,却消失在生活里。13.每一颗心,都有一份无法替代的情愫和某一道风景永远关联着。人生,就是一个修炼的过程,何必用这一颗不平的心看待人和事,作践了自己,辜负了岁月。14.时间是一把刀,它刻下好多伤痕,但最终也把我雕成了一朵花。如约绽放。15.时间很短,天涯很远。往后的一山一水,一朝一夕,自己安静地走完。倘若不慎走失迷途,跌入水中,也应记得,有一条河流,叫重生。这世上,任何地方,都可以生长;任何去处,都是归宿。那么,别来找我,我亦不去寻你。守着剩下的流年,看一段岁月静好,现世安稳。16.三样东西有助于缓解生命的辛劳:希望,睡眠和微笑。---康德17.聪明人变成了痴愚,是一条最容易上钩的游鱼;因为他凭恃才高学广,看不见自己的狂妄18.后来我们都变得沉默了,也许是长大了吧。19.这次你是真的失去了我,失去了所有的所有。20.感觉累的时候,也许你正处于人生的上坡路。坚持走下去,你就会发现到达了人生的另一个高度。你给世界一个什么姿态,世界将还你一个什么样的人生。免责声明:本文仅代表作者个人观点,与本网无关。看完本文,记得打分哦:很好下载Doc格式文档马上分享给朋友:?知道苹果代表什么吗实用文章,深受网友追捧比较有用,值得网友借鉴没有价值,写作仍需努力相关心情说说:
48小时热门您现在的位置:
qq空间说说颜色变换
频道标签: 发布时间: 来源:
怎么改qq空间说说颜色,改变说说颜色,改变一下心情吧... 怎么改qq空间说说颜色1 怎么改qq空间说说颜色2 怎么改qq空间说说颜色3 怎么改qq空间说说颜色4 怎么改qq空间...-
怎样把qq空间说说颜色改变您好,很高兴为您解答。复制我后面发的那些东西,把【QQ号码】处换成自己的扣扣,后面的【测试】换成自己要说的话,手机QQ空间发表说说即可...-
怎样让QQ空间里面发表的说说字体颜色改变? 回答: QQ空间里面发表的说说字体是没办法改变颜色的,只有QQ空间日志和留言才可以设置字体颜色。QQ空间写日志更改字体颜色的...-
QQ空间说说怎么写带颜色的字说说哪里是不可以写带有颜色的字的,日记那里发表的话就可以,不管你怎么复制过去都是变化成默认的颜色的,采纳吧,没有其他的方法了。-
教你们把qq空间说说字体颜色变成蓝色 只看楼主 收藏 回复jjj
初入兵...我教你怎么在空间发蓝色说说其实很简单 就是一个代码 {uin:,nick:说说...-
手把手教你怎么改qq空间说说字体颜色 只看楼主 收藏 回复FENGJIENAN
初入兵服 11
20:57 举报 | 来自Android客户端 FENGJIE...-
心情好的qq空间说说心情短语 心情是什么颜色?心情是彩色的 时间: 11:05:27 当心中填满了幸福,不由自主在脸上漾开了笑意,身边的一切都会被这感染。...-
本站热门推荐
个性排行榜

我要回帖

更多关于 有没有去眼袋的好办法 的文章

 

随机推荐