ShaderJoy —— 冲击视觉的缩放效果

效果图

 

代码及说明

由于图像缩放后边界,如果直接按照原来的纹理坐标来访问图像的话,边界上会有断层不够自然,所以这里对纹理坐标进行特殊的处理,分为三个互反的 [0., 1.] 区间。

纹理坐标的 x 分量的函数关系如下图所示,横向为 x,纵向为 scale 系数。

 

ShaderJoy —— 冲击视觉的缩放效果_第1张图片 横向上大致呈 " \ / \ " 形状

 


#iChannel0 "file://../images/qiaoben.png"


/// @note 控制纹理坐标的缩放
float getTileValue(float oriValue, float scale)
{
    float fillSize = 1.0 - scale;
    float left = fillSize / 2.0;
    float right = 1.0 - left;

    /// 三个互反的区间 "\/\"
    if (oriValue < left)
    {
        retur

你可能感兴趣的:(ShaderJoy,——,Shader,实例详解,shader,glsl,opengl)