Advertisement

shader技巧(持续更新)

阅读量:
  • 数学函数:
    abs():绝对值函数。
    acos():反余弦函数。
    asin():反正弦函数。
    atan():反正切函数。
    ceil():向上取整函数。
    cos():余弦函数。
    exp():指数函数。
    floor():向下取整函数。
    frac():小数部分函数,保证数值在0-1之间。
    log():自然对数函数。
    max():最大值函数。
    min():最小值函数。
    pow():幂函数。
    sin():正弦函数。
    sqrt():平方根函数。
    tan():正切函数。
    step(a,b):阈值函数,a>b=0,a<b=1
    smoothstep(a,b,x):平滑插值,(x-a)/(b-a)

  • 向量
    cross(vec2,vec2):向量叉积函数。
    dot(vec2,vec2):向量点积函数。
    distance(vec2,vec2):距离函数,绘制的时候线条宽度需要用到distance。
    length(vec2):向量长度函数。

  • 几何函数:
    normalize(vec3):向量归一化函数。
    reflect(vec3):向量反射函数。
    rotate(vec3):向量旋转函数。
    scale(vec3):向量缩放函数。
    translate(vec3):向量平移函数。

  • 纹理函数:
    texture2D(sample,vec2):2D 纹理采样函数,输入sample和vec2,输出某个点的vec4向量
    textureCube(sample,vec2):立方体纹理采样函数,输入sample和vec2,输出某个点vec4向量

  • 高度计算
    图像转为灰度图,灰度值表示点的高度
    参考:https://search.bilibili.com/article?vt=12550451&keyword=shader%E7%AE%97%E6%B3%95

  • 随机函数,输入uv

复制代码
    float random (vec2 st) {
       return fract(sin(dot(st,vec2(12.)))*100000);    //sin*大数据即可
    }
    void main(){
       vec2 uv = gl_FragCoord.xy/iResolution.xy;
       gl_FragColor = vec4(vec3(random(uv)),1.0);
    }
    
    
    c
    
    
在这里插入图片描述

参考:<>

全部评论 (0)

还没有任何评论哟~