【风宇冲】Unity3D教程宝典之Shader篇:特别讲 常见问题解答
2013-04-18 15:28
423 查看
特别讲:常见问题回答
本讲会陆续补充一些问题的解答。
问:
(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;
(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值就不起作用了
本讲会陆续补充一些问题的解答。
问:
(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;
(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值就不起作用了
相关文章推荐
- 【风宇冲】Unity3D教程宝典之Shader篇:特别讲 常见问题解答
- 【风宇冲】Unity3D教程宝典之Shader篇:特别讲 CG函数
- 【风宇冲】Unity3D教程宝典之Shader篇:特别讲 CG函数
- 【风宇冲】Unity3D教程宝典之Shader篇:特别讲 CG函数
- 【风宇冲】Unity3D教程宝典之Shader篇:基础讲学习方法技巧
- 【风宇冲】Unity3D教程宝典之Shader篇:基础讲 基础知识
- 【风宇冲】Unity3D教程宝典之Shader篇:第十四讲Surface Shader
- 【风宇冲】Unity3D教程宝典之Shader篇:第一讲Shader总篇
- 【风宇冲】Unity3D教程宝典之Shader篇:目录
- 【风宇冲】Unity3D教程宝典之Shader篇:目录
- 【风宇冲】Unity3D教程宝典之Shader篇:基础讲学习方法技巧
- 【风宇冲】Unity3D教程宝典之Shader篇:基础讲 基础知识
- 【风宇冲】Unity3D教程宝典之Shader篇:第四讲制作一个美丽的地球 + 云层颜色的一点见解
- 【风宇冲】Unity3D教程宝典之Shader篇:第八讲 Why CG?
- 【风宇冲】Unity3D教程宝典之Web服务器篇:(第二讲)从服务器下载图片
- 【风宇冲】Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载
- 【风宇冲】Unity3D教程宝典之地形
- 【风宇冲】Unity3D教程宝典之FingerGestures
- 【风宇冲】Unity3D教程宝典之Shader篇:第九讲Render Path
- 【风宇冲】Unity3D教程宝典之Web服务器篇:(第三讲)PHP的Hello World