打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【风宇冲】Unity3D教程宝典之Shader篇:特别讲常见问题解答

原创文章如需转载请注明:转载自风宇冲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;

(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值就不起作用了
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
一个有趣的模拟光照的shader(类似法线贴图)
Unity3d游戏角色描边
RenderDoc[03] 还原粒子特效shader
Unity3D Shader 使指定颜色过滤成透明
【Unity Shader入门】 | 使用Shader实现一个 图片边框 制作!
【UnityShader屏幕后处理】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服