(转)TRANSFORM_TEX详解
2016-02-25 17:57
246 查看
原创文章如需转载请注明:转载自风宇冲Unity3D教程学院
特别讲:常见问题回答本讲会陆续补充一些问题的解答。
问:
(1) TRANSFORM_TEX是做什么的
(2)float4 _MainTex_ST 中的_MainTex_ST变量也没有用到,为啥非要声明一下?
答:
(1)简单来说,TRANSFORM_TEX主要作用是拿顶点的uv去和材质球的tiling和offset作运算, 确保材质球里的缩放和偏移设置是正确的。 (v.texcoord就是顶点的uv)
下面这两个函数是等价的。
o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
_MainTex_ST.xy中是tiling
_MainTex_ST.zw中是offset
(2)而_MainTex_ST的ST是应该是SamplerTexture的意思 ,就是声明_MainTex是一张采样图,也就是会进行UV运算。 如果没有这句话,是不能进行TRANSFORM_TEX的运算的。_MainTex_ST.xy为 下图中的Tiling,zw为下图中的offset.
如果Tiling 和Offset你留的是默认值,即Tiling为(1,1) Offset为(0,0)的时候,可以不用
o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
换成o.uv = v.texcoord.xy;也是能正常显示的;相当于Tiling 为(1,1)Offset为(0,0),但是如下图自己填的Tiling值和Offset值就不起作用了
相关文章推荐
- 正值表达式匹配html标签的属性值
- Jquery validate 用法以及remote
- Mysql插入数据报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8D\xE8\xBE...'
- swift 枚举
- 1046. Shortest Distance (20)
- Makefile例子
- 输入框组
- Js定时跳转
- 【云计算】Docker集中化web界面管理平台shipyard
- Cocos2.2.3文件夹的创建与递归删除
- Lua_热更新
- 一些JS常用的方法
- 虚函数和纯虚函数的区别
- android AsyncHttp的简单使用与封装
- 【转载】C/C++字符串操作函数
- typedef和#define的用法与区别
- Android中的Application类
- 4.4中文件读取死锁问题
- Nginx的负载均衡的那点事
- 使用caffe自动测试模型top5的结果