技术美术TA之纹理采样

本文是视频课程《Unity技术美术TA:Shader篇》,算是对自己学习的总结,也希望分享下所学知识~~
(原课程链接传送门

纹理有啥用?
负责物体长什么样,用极少的性能表现出好的效果
1.表面色
2.凹凸法线
3.存数值

像素:显示器屏幕上的像素
纹素:图片上的像素(针对图片本身)

纹理管线
1.根据顶点位置查找坐标的UV位置,是3d建模软件制作,(投影函数)
2.UV坐标可以在光栅化阶段计算出来,通过UV的点查找贴图上面的纹素,(映射函数)
3.获取颜色值,返回给模型,(值变换函数)

纹理采样

_Name("Display Name", 2D) = "" {}
sampler2D _Name;
text2D( _Name, uv )

片段舍弃
clip( x ),如果x<0,就舍弃
一般可以用某个颜色值的 减去 定义的限制值变量

//阈值
_Clip("Clip", Range(0,1)) = 0

fixed4 frag(v2f i) : SV_Target
{
	//uv zw 用作_DissolveTex 的采样
	fixed4 dissolveTex = tex2D(_DissolveTex, i.uv.zw);
    clip(dissolveTex.r - _Clip);
}

_DisssolveTex,为噪声图,越黑越靠近0,越先被剔除
噪声图

UV的Tiling与Offset
是两个设置
在这里插入图片描述
Tiling:重复度,越大就越小,正常是1:1
Offset:偏移

会根据图片的设置决定平铺还是重复
在这里插入图片描述

变体:
优点:多个功能与效果集成到一个 Shader内,便于使用和管理
缺点:数量过多会导致加载时间过长与内存占用增加(优化重点)

变体的类型:
1.无论如何都会被编译的变体
#pragma multi_compile _ NAME (变体名必须全大写)
2.通过材质的使用情况来决定是否编译的变体

溶解效果可以做成变体,正常状态不需要,死亡时才展示溶解


Properties
        [Toggle] _DissolveEnabled("Dissolve Enabled", int) = 0

Pass
            //定义变体
       #pragma multi_compile _ _DISSOLVEENABLED_ON

       #if _DISSOLVEENABLED_ON
           // ... Logic
       #endif

潜规则:名字和关键字要对应,大写_ON

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值