Search Unity

Feature Request GPU Instancing in Shader

Discussion in 'Shaders' started by shadermanger, Dec 16, 2020.

  1. shadermanger

    shadermanger

    Joined:
    Sep 21, 2020
    Posts:
    21
    I'm new to shader development. Picked this shader from LeanTouch (https://assetstore.unity.com/packages/tools/input-management/lean-touch-30111).
    Want to Add GPU Instancing in this anybody can help i would be thankful to him/her.



    Shader "Lean/Common/Object"
    {
    Properties
    {
    _MainTex("Main Tex", 2D) = "white" {}
    _Color("Color", Color) = (1.0, 1.0, 1.0, 1.0)
    _Color1("Color 1", Color) = (1.0, 0.5, 0.5, 1.0)
    _Color2("Color 2", Color) = (0.5, 0.5, 1.0, 1.0)
    _Rim("Rim", Float) = 1.0
    _Shift("Shift", Float) = 1.0
    }

    SubShader
    {
    Tags
    {
    "Queue" = "Geometry"
    "PreviewType" = "Sphere"
    "DisableBatching" = "True"
    }

    Pass
    {
    CGPROGRAM
    #pragma vertex Vert
    #pragma fragment Frag

    sampler2D _MainTex;
    float4 _Color;
    float4 _Color1;
    float4 _Color2;
    float _Rim;
    float _Shift;

    struct a2v
    {
    float4 vertex : POSITION;
    float2 texcoord0 : TEXCOORD0;
    float3 normal : NORMAL;
    float4 color : COLOR;
    };

    struct v2f
    {
    float4 vertex : SV_POSITION;
    float2 uv : TEXCOORD0;
    float3 normal : TEXCOORD1;
    float4 color : COLOR;
    };

    struct f2g
    {
    float4 color : SV_TARGET;
    };

    void Vert(a2v i, out v2f o)
    {
    o.vertex = UnityObjectToClipPos(i.vertex);
    o.uv = i.texcoord0;
    o.normal = mul((float3x3)UNITY_MATRIX_IT_MV, i.normal);
    o.color = i.color * _Color;
    }

    void Frag(v2f i, out f2g o)
    {
    float rim = _Shift - pow(saturate(1.0f - normalize(i.normal).z), _Rim);

    o.color = tex2D(_MainTex, i.uv) * lerp(_Color1, _Color2, rim) * i.color;
    }
    ENDCG
    } // Pass
    } // SubShader
    } // Shader
     
  2. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,348
  3. shadermanger

    shadermanger

    Joined:
    Sep 21, 2020
    Posts:
    21