ShaderJoy —— 方向向量場的繪製【GLSL】

panda1234lee發表於2020-12-08

效果圖

圓形向量場

 

♥ 形向量場

 

完整程式碼和詳細註釋:

/// @note 直線的 SDF
float distanceFromLineSegment(vec2 p, vec2 start, vec2 end)
{
    float len = length(start - end);
    float l2 = len * len;
    if (l2 == 0.0f) return length(p - start);

    float t = max(0.0f, min(1.0f, dot(p - start, end - start) / l2)); ///< p-start 在 end-start 上的投影
    vec2 projection = start + t * (end - start);
    return length(p - projection); ///< p 到 end-start 的距離
}

vec2 getPreviousFrameUVs(vec2 pos)
{
    

相關文章