ShaderForge Rotator节点
一、节点介绍
旋转器
输出的是输入的uv以[piv]为锚点旋转后[ang] (单位为弧度)的uv信息。如果ang没有连线,或者ang连线到time节点上,那么[spd]会控制旋转速度。
二、Rotator节点的输入
1. Piv
Piv是旋转操作的锚点,是一个二维数据(x,y)
uv坐标是从(0,0)->(1,1)的二维坐标系,左下角坐标(0,0),右上角坐标(1,1),中心点坐标(0.5,0.5)
举例:以左下角(0,0)为锚点旋转
2. Ang
旋转的角度(以弧度为单位,2PI为一周)
将弧度换算成角度
角度值 *PI/180 = 弧度值
3. Spd
旋转的速度,默认值为1.0。
- 当Ang是一个常量的时候,Spd作为Ang的倍数,Spd*Ang是作为实际旋转的角度。
- 当Ang是时间变量的时候,Spd控制着旋转的速度。
三、Rotator节点的输出
旋转后的uv坐标
四、小实例 漩涡扭曲效果
如果ang是单个数据,那么uv会整体旋转;
如果ang输入的是一个一维数组,那么我们就可以通过数组来控制对应部位的旋转扭曲的强度。
扭出一朵小花花送给你!~
五、自实现Untiy Shader代码实现Rotator节点的功能
我们来循序渐进的使用书写unity shader代码模拟旋转器节点的功能
1. 围着图片中心匀速旋转
写法
Shader "Hidden/testRotator"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags {
"RenderType"="Opaque"
}
Pass
{
Name "FORWARD"
Tags {
"LightMode"="ForwardBase"
}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include &#