99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

ShaderLab學習小結(十七)草帽團的旗子-創新互聯

目標:弄個草帽團的海盜旗,通過shader讓它有飄揚的效果,因為我要成為海賊王(不是他的男人)
最終效果如下:
ShaderLab學習小結(十七)草帽團的旗子
其實效果還差的很遠,就大概有這么個意思吧,好歹讓它先動起來

站在用戶的角度思考問題,與客戶深入溝通,找到秭歸網站設計與秭歸網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站制作、成都網站設計、外貿營銷網站建設、企業官網、英文網站、手機端網站、網站推廣、主機域名雅安服務器托管、企業郵箱。業務覆蓋秭歸地區。

旗子用的是plane,不要用cube,這是基于頂點計算的,cube算來算去只有八個頂點,根本飄不起來
而且我們把plane繞x軸轉90度把它立起來
所以它本身的坐標是:
ShaderLab學習小結(十七)草帽團的旗子
x軸水平向右,z軸垂直向下,y軸垂直向里
shader代碼:

//1.
Shader "Custom/SKFlag" {
    Properties{
        _MainTex("Main",2D)=""{}
        _A("A",range(0.1,3))=1
        _F("F",range(0.1,2))=1
        _Edge("Edge",range(-10,10))=0
        _TimeScale("TimeScale",range(0,20))=2
    }
    SubShader {
        pass{
            cull off                         //2.
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "unitycg.cginc"
            #include "lighting.cginc"
            sampler2D _MainTex;
            float4 _MainTex_ST;
            float _A;
            float _F;
            float _TimeScale;
            float _Edge;
            struct v2f{
                float4 pos:POSITION;
                float2 uv:TEXCOORD0;
            };
            v2f vert(appdata_base v)
            {
                v2f o;
                o.pos=v.vertex;
                if(o.pos.x>_Edge)             //3.
                {
                    o.pos.y+=_A*0.8*sin(_F*(o.pos.x+o.pos.z)+_Time.y*_TimeScale*0.6);     //4.
                    o.pos.z+=_A*0.3*sin(_F*(o.pos.x+o.pos.y)+_Time.y*_TimeScale*0.6);     //5.
                }
                if(o.pos.x>-1)
                {
                    o.pos.y+=_A*0.3*sin(_F*(o.pos.x+o.pos.z)+_Time.y*_TimeScale*0.8);

                }
                if(o.pos.x>1)
                {
                    o.pos.y+=_A*0.8*sin(_F*(o.pos.x+o.pos.z)+_Time.y*_TimeScale*0.8);
                    o.pos.x+=_A*0.2*sin(_F*(o.pos.z+o.pos.y)+_Time.y*_TimeScale*0.3);
                }
                if(o.pos.x>3)
                {
                    o.pos.y+=_A*0.8*sin(_F*(o.pos.x+o.pos.z)+_Time.y*_TimeScale*0.2);
                }

                o.pos=mul(UNITY_MATRIX_MVP,o.pos);
                o.uv=TRANSFORM_TEX(v.texcoord,_MainTex);
                return o;
            }
            fixed4 frag(v2f IN):COLOR
            {
                fixed4 col=tex2D(_MainTex,IN.uv);
                return col;
            }
            ENDCG
        }
    }
}

先看一個函數:f(x)=Asin(ωx+φ)
A:振幅,函數大值為A,最小值為-A;ω:角頻率 ;φ:初相,即x=0時的相位ωx+φ
再看我們的代碼

1

定義的屬性中有主材質,放海盜旗的圖
_A:振幅
_F:角頻率
_TimeScale:時間函數乘上的系數
_Edge:這個是x方向坐標的邊界后面說明

2

cull off

默認是剔除背面

cull back

也就是plane只能看到一面,而看不到另一面的原因,改成cull off,不剔除背面,則兩面都是旗子

3

這里是第一個判斷處

if(o.pos.x>_Edge)             //3.

縱觀整個代碼,旗子在三個方向都會有波動,但是,如果旗子是插在旗桿上的話,那與旗桿的連接處是不應該有波動的
也就是圖中旗子在x軸方向上的最左側,即x值最小處
經過試驗,這個值應該是 -5,所以我設置的_Edge為 -4.9,那么只有在x坐標大于這個值的部分,plane才會波動

4、5

這些,還有下面的那些就是讓plane產生波動的計算了
_A是波動(飄揚)的大幅度,_Time是時間向量,好像也是四維的,xyzw

_Time.y*_TimeScale

這個可以看作是波動的頻率快慢吧
調整_TimeScale的值越大,波動的越快
而_F*(...)呢,我的理解是影響波長,_F越大,波長越小,同一時間旗子上的波峰波谷越多,反之越少
不知道理解的正不正確,反正出來的效果差不多是這樣

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

新聞名稱:ShaderLab學習小結(十七)草帽團的旗子-創新互聯
標題來源:http://www.yijiale78.com/article28/dpjjjp.html

成都網站建設公司_創新互聯,為您提供電子商務搜索引擎優化Google服務器托管用戶體驗網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設