从品牌网站建设到网络营销策划,从策略到执行的一站式服务
1,
多数情况下,你会想缩放物体来和3d世界相适应,旋转物体到合适的方向,移动物体到某个地方等等。到现在我们已经实践了每一次的单一图形变换。为了实现上面一系列的变换,我们需要对顶点位置左乘第一个变换矩阵,然后得到的结果再左乘下一个变换矩阵等等,将所有变换矩阵都左乘顶点位置之后实现多个变换。
在shader中应用每一个变换矩阵实现所有的变换,但这样很低效,因为对于所有顶点这些矩阵都是一样的,只有顶点的位置发生变化,这样要不断重复对每个顶点位置进行这一系列的矩阵相乘操作。
∵ Mn * Mn-1 * ... * M0 * V = (Mn* Mn-1 * ... * M0) * V
令N = Mn * Mn-1 * ... * M0
∴ Mn * Mn-1 * ... * M0 * V = (Mn * Mn-1 * ... * M0) * V = N * V
∴我们可以一次性计算N,然后把它作为一致变量传给shader和每一个顶点位置相乘完成所有的变换,这个只需要GPU对每个顶点进行一次矩阵/向量相乘操作。
2,
当计算N的时候怎样安排每个变换矩阵的先后顺序呢?首先要记住向量最开始先是被最右边的矩阵左乘的M0 M1 M2 …
先旋转后平移:
平移后旋转:
将物体远离坐标原点后,再旋转物体会同时造成物体的平移效果(是绕原点旋转,而不是绕自身旋转了)。
这是我们希望能避免的。通过先旋转后移动可以避免这两个操作的相互依赖性,这也是尽量围绕原点对称建模的原因,那样当你缩放或者旋转物体不会产生副作用,缩放和旋转后物体依然保持和之前一样对称。
3,
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图