码迷,mamicode.com
首页 > 其他好文 > 详细

[原]unity3d 纹理旋转

时间:2014-05-22 02:48:47      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:style   c   color   a   int   rgb   

纹理旋转实现思路:纹理坐标*平移矩阵*旋转矩阵(类似顶点旋转);

矩阵一般要求中心点为(0,0) 而纹理中心点默认(0.5,0.5);所以先得平移到(0,0);可以考虑乘以平移矩阵[1,0,0,0,1,0,-0.5,-0.5,1]

也可以直接简化 (texcoord.x-0.5,texcoord.y-0.5)。

纹理坐标二维坐标 旋转矩阵为[cosA,sinA,-sinA,cosA]; 旋转结果:mul(平移后纹理坐标,旋转矩阵) //注意 u3d中mul函数,我用的不好使,我直接用后面的公式算的;旋转后的纹理坐标=(cosA(x-0.5)-sinA(y-0.5),sinA(x-0.5)+cosA(y-0.5));

因为纹理坐标范围[0,1] 所以需要把旋转好的纹理在平移回来;旋转好的纹理坐标+float2(0.5)=最终输出纹理;

如果实现纹理移动 需要TRANSFORM_TEX(最终输出纹理, _MainTex);

[原]unity3d 纹理旋转,布布扣,bubuko.com

[原]unity3d 纹理旋转

标签:style   c   color   a   int   rgb   

原文地址:http://www.cnblogs.com/U-tansuo/p/3738592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!