[原]unity3d 纹理旋转
纹理旋转实现思路:纹理坐标*平移矩阵*旋转矩阵(类似顶点旋转);
矩阵一般要求中心点为(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 纹理旋转的更多相关文章
- [原]Unity3D深入浅出 - 新版动画系统(Mecanim)
Mecanim概述: Mecanim是Unity提供第一个丰富而复杂的动画系统,提供了: 针对人形角色的简易的工作流和动画创建能力 Retargeting(运动重定向)功能,即把动画从一个角色模型应用 ...
- [原]Unity3D深入浅出 - 粒子系统(Particle System)
粒子系统是在三维空间渲染出来的二维图像,主要用于烟,火,水滴,落叶等效果.一个粒子系统由粒子发射器.粒子动画器和粒子渲染器三个独立的部分组成. Unity中自带了一些粒子效果,在Assets>I ...
- [原]Unity3D深入浅出 - Shader基础开发
概述 简单来讲,shader是为渲染管线中的特定处理截断提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,开发者可使用Shader对渲染过程加以控制,拥有更大的创作控件,因此Shader的 ...
- [原]Unity3D深入浅出 - 脚本开发基础(Scripts)
常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每 ...
- [原]Unity3D深入浅出 - 天空盒(Skyboxes)
Unity3D中自带了9中天空盒,在Assets - Import Package - Skyboxes 即可导入天空盒资源. 为Scene添加Skybox:在Edit菜单项里的Render Sett ...
- [原]Unity3D深入浅出 - 新版粒子系统 (Shuriken)
Shuriken粒子系统是继Unity3.5版本之后推出的新版粒子系统,它采用了模块化管理,个性化的粒子模块配合粒子曲线编辑器使用户更容易创作出各种兵分复杂的粒子效果. 创建一个粒子系统的方式有两种: ...
- Unity3D 纹理偏移(TextureOffset)浅析
首先,给出圣典的解释: Material.mainTextureOffset 主纹理偏移量 var mainTextureOffset : Vector2 Description描述 The text ...
- unity3d 纹理动画
不知道大家有没有玩过赛车游戏 赛车游戏的跑道有路标,如下图 玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动 不会发动态图,大家脑补一下吧 没有玩过赛车游戏的也不要紧,大家 ...
- [原]Unity3D深入浅出 - 常用类的成员变量和成员函数(Tranform、Time、Random、Mathf、Input)
Transform的成员变量 Transform的成员函数 Time类,获取和时间相关的信息,可用来计算帧速率,调整时间流逝的速度等. Random类,可用来生成随机数,随机点和旋转. Mathf类提 ...
随机推荐
- Ehcache 缓存监控配置
监控 ehcache缓存: 1,下载: http://terracotta.org/downloads/open-source/destination?name=ehcache-monitor-kit ...
- Android——用PagerAdapter实现View滑动效果
效果: ViewPage来源于android -support.v4 什么是viewPage?ViewPage 类似于ListView 用于显示多个View集合. 支持页面左右滑动. 如何使用view ...
- Sql Over的用法
转载自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数 Oracle从 ...
- android开发(35) fragment和actionbar组合使用。解决不触发onOptionsItemSelected的问题,获得actionbar 的默认 get icon
先说说我的使用场景: 我写了一个activity,使用了actionbar. 在这个activity中,有fragment,默认先打开一个 homeFragment,点击某个按钮会进入 detailF ...
- CodeWarrior WarningC12056
C12056:SP debug info incorrect because of optimization or inline assemble 该warning是代码最优化时(common cod ...
- druid的配置
//----------------------------pom.xml-------------------------------- <!-- druid --> <depen ...
- phpStudy启动失败提示:缺少VC9运行库
镜像是官方2008 64位中文版 按照提示安装了VC9以后 软件依旧无法运行阿帕奇,提示缺少VC9运行库 这是因为:64位系统除了要装64位的运行库也要装32位的运行库 32位的VC9运行库下载:ht ...
- sparkr跑通函数 包含排序
spark1.4.0的sparkR的思路:用Spark从大数据集中抽取小数据(sparkR的DataFrame),然后到R里分析(DataFrame). 这两个DataFrame是不同的,前者是分布式 ...
- [技术选型] CDH-Cloudera Distribution Hadoop
hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变. Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribut ...
- Python 类的初见
#定义一个Python类 class Cat: #self关键字相当于c++类中的this指针 def eat(self): print("i am eating .") def ...