以下の内容はhttps://baba-s.hatenablog.com/entry/2019/05/04/210400より取得しました。


【Unity】頂点シェーダで済む処理はフラグメントシェーダではなく頂点シェーダで記述する

概要

v2f vert(appdata_t v)
{
    v2f o;
    o.vertex = UnityObjectToClipPos(v.vertex);
    o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
    o.color = v.color;
    return o;
}

fixed4 frag(v2f i): SV_Target
{
    fixed4 col = 2.0f * i.color * _TintColor * tex2D(_MainTex, i.texcoord);
    return col;
}

例えば、上記のようにフラグメントシェーダで色の計算を行うのではなく

v2f vert(appdata_t v)
{
    v2f o;
    o.vertex = UnityObjectToClipPos(v.vertex);
    o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
    o.color = 2.0f * v.color * _TintColor;
    return o;
}

fixed4 frag(v2f i): SV_Target
{
    fixed4 col = i.color * tex2D(_MainTex, i.texcoord);
    return col;
}

事前に頂点シェーダで色の計算を済ませるほうが良いパフォーマンスになる




以上の内容はhttps://baba-s.hatenablog.com/entry/2019/05/04/210400より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14