漫画中的速度线

Posted 勥小透明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漫画中的速度线相关的知识,希望对你有一定的参考价值。

偶然间看到的这个做法,当然不止可以用来表现速度线,甚至可以拿来当 Noise 用。

效果如图

Shader "Custom/ComicSpeedLine"

    Properties
    
        _MainTex ("Texture", 2D) = "white" 

        _LineCount ("线的数量", float) = 0
    
    SubShader
    
        Cull Back 
        ZWrite On 
        ZTest Always

        Pass
        
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
                float3 normal : NORMAL;
            ;

            struct v2f
            
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
                float3 normal : NORMAL;
            ;

            v2f vert (appdata v)
            
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = v.uv;
                o.normal = v.normal;
                return o;
            

            sampler2D _MainTex;
            half _LineCount;

            float ComicSpeedLine(float2 texcoord, half count)
            
                const float PI = 3.14159265;
                float2 uv = texcoord * 2 - 1;
                float angle = (atan2(uv.x, uv.y) / PI + 1) * 0.5;

                angle *= count;
                float left = angle - floor(angle);
                float right = ceil(angle) - angle;
                return step(0.1, left * right);
            

            fixed4 frag (v2f i) : SV_Target
            
                fixed4 mainRGBA = tex2D(_MainTex, i.uv);
                
                return ComicSpeedLine(i.uv, _LineCount);
            
            ENDCG
        
    

核心就是一个方法,线的数量是可以调节的

以上是关于漫画中的速度线的主要内容,如果未能解决你的问题,请参考以下文章

另一部漫画

快看漫画下载|快看漫画app下载

太牛了,这个神奇工具让你的照片秒变宫崎骏漫画

优动漫PAINT漫画和插画方面软件特色

计算线上的弹跳速度

漫画 | “道德沦丧”的程序员 !