ShaderGraph节点——UV

本文介绍了ShaderGraph中用于处理UV的各种节点,如Flipbook用于创建纹理动画,Polar Coordinates转换为极坐标,Radial Shear实现径向剪切效果,Rotate进行旋转,Spherize应用球形翘曲,Tiling and Offset实现平铺和偏移,Triplanar在世界空间中生成uv并采样纹理,以及Twirl创建旋转翘曲效果。这些节点提供了丰富的UV变换功能,适用于不同的图形效果。
摘要由CSDN通过智能技术生成

UV Nodes

Flipbook——动画:根据输入的UV创建动画或纹理帧动画的UV。平铺的贴片数量由输入的宽度和高度值定义。当前块的索引是由输入Tile的值定义的。

此节点可用于创建纹理动画功能,通常用于粒子效果和精灵,方法是向输入Tile提供时间( Time )并将输出输出到纹理采样器(Texture Sampler)的UV输入槽。

UV数据通常在0到1之间,从UV空间的左下角开始。这可以从UV预览的左下角的黑色值看到。由于Flipbook通常从左上角开始,参数Invert Y在默认情况下是启用的,但是您可以通过切换Invert X和Invert Y参数来改变Flipbook的方向。

Name Direction Type Binding Description
UV Input Vector 2 UV Input UV value
Width Input Vector 1 None Amount of horizontal tiles
Height Input Vector 1 None Amount of vertical tiles
Tile Input Vector 1 None Current tile index
Out Output Vector 2 None Output UV value
Name Type Options Description
Invert X Toggle True, False If enabled tiles are iterated from right to left
Invert Y Toggle True, False If enabled tiles are iterated from top to bottom

 

float2 _Flipbook_Invert = float2(FlipX, FlipY);

void Unity_Flipbook_float(float2 UV, float Width, float Height, float Tile, float2 Invert, out float2 Out)
{
    Tile = fmod(Tile, Width * Height);
    float2 tileCount = float2(1.0, 1.0) / float2(Width, Height);
    float tileY = abs(Invert.y * Height - (floor(Tile * tileCount.x) + Invert.y * 1));
    float tileX = abs(Invert.x * Width - ((Tile - Width * floor(Tile * tileCount.x)) + Invert.x * 1));
    Out = (UV + float2(tileX, tileY)) * tileCount;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值