public static void GetBlendMode(ShaderGraph.SurfaceType surfaceType, AlphaMode alphaMode, ref Pass pass)
        {
            if (surfaceType == ShaderGraph.SurfaceType.Opaque)
            {
                pass.BlendOverride = "Blend One Zero, One Zero";
            }
            else
            {
                switch (alphaMode)
                {
                case AlphaMode.Alpha:
                    pass.BlendOverride = "Blend One OneMinusSrcAlpha, One OneMinusSrcAlpha";
                    break;

                case AlphaMode.Additive:
                    pass.BlendOverride = "Blend One One, One One";
                    break;

                case AlphaMode.Premultiply:
                    pass.BlendOverride = "Blend One OneMinusSrcAlpha, One OneMinusSrcAlpha";
                    break;

                // This isn't supported in HDRP.
                case AlphaMode.Multiply:
                default:
                    pass.BlendOverride = "Blend One OneMinusSrcAlpha, One OneMinusSrcAlpha";
                    break;
                }
            }
        }
 public static void GetZWrite(ShaderGraph.SurfaceType surfaceType, ref Pass pass)
 {
     if (surfaceType == ShaderGraph.SurfaceType.Opaque)
     {
         pass.ZWriteOverride = "ZWrite On";
     }
     else
     {
         pass.ZWriteOverride = "ZWrite Off";
     }
 }
示例#3
0
        void AddTags(ShaderGenerator generator, string pipeline, HDRenderTypeTags renderType, ShaderGraph.SurfaceType surfaceType)
        {
            string queue = surfaceType == ShaderGraph.SurfaceType.Opaque ? "Geometry" : "Transparent";
            ShaderStringBuilder builder = new ShaderStringBuilder();

            builder.AppendLine("Tags");
            using (builder.BlockScope())
            {
                builder.AppendLine("\"RenderPipeline\"=\"{0}\"", pipeline);
                builder.AppendLine("\"RenderType\"=\"{0}\"", renderType);
                builder.AppendLine("\"Queue\"=\"{0}\"", queue);
            }

            generator.AddShaderChunk(builder.ToString());
        }