{
    "Name": "Audio Debug Mesh Visualization",
    "OverrideMaterial": "engine:engineDefaults.rematerialdefinition",
    "Parameters": {
        "Constants": {
            "meshPosition"    : "[0.0, 0.0, 0.0, 1.0]",
            "meshOrientation" : "[0.0, 0.0, 0.0, 1.0]",
            "meshScale"       : "[1.0, 1.0, 1.0, 1.0]",
            "solidColor"      : "[1.0, 1.0, 1.0, 1.0, displayp3]",
            "wireColor"       : "[1.0, 1.0, 1.0, 1.0, displayp3]",
            "meshWarmth"      : "0.0"
        },
        "Buffers": {
            "position"       : "geometry.vertexPosition",
            "color"          : "geometry.vertexColor",
            "normal"         : "geometry.vertexNormal",
            "classification" : "geometry.vertexClassification",
            "material"       : "geometry.vertexARKitMaterial",
            "editor"         : "geometry.vertexEditorMaterial"
        }
    },
    "Techniques": [
    {
        "Name": "AudioMeshDebugVisConstantColor",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisConstantColor"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasNormalAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisConstantColorWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisConstantColorWireframe"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        }
    },
    {
        "Name": "AudioMeshDebugVisDistance",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsMeshDepth"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "DepthSlopeScale" : 0.1
        }
    },
    {
        "Name": "AudioMeshDebugVisDistanceWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsMeshDepth"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        }
    },
    {
        "Name": "AudioMeshDebugVisColor",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisColor"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasColorAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisColorWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisColor"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasColorAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisClassification",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisClassification"
        },
        "State" : {
            "AlphaBlend" : true,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "RgbSourceFactor" : "SourceAlpha",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasClassificationAttribute" : "true",
            "MeshHasNormalAttribute" : "false"
        }
    },
    {
        "Name": "AudioMeshDebugVisClassificationWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisClassification"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasClassificationAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisMaterial",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisMaterial"
        },
        "State" : {
            "AlphaBlend" : true,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "RgbSourceFactor" : "SourceAlpha",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasMaterialAttribute" : "true",
            "MeshHasNormalAttribute" : "false"
        }
    },
    {
        "Name": "AudioMeshDebugVisMaterialWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisMaterial"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasMaterialAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisEditor",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisEditor"
        },
        "State" : {
            "AlphaBlend" : true,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "RgbSourceFactor" : "SourceAlpha",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasEditorAttribute" : "true",
            "MeshHasNormalAttribute" : "false"
        }
    },
    {
        "Name": "AudioMeshDebugVisEditorWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisEditor"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasEditorAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisNormal",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisNormal"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasNormalAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisNormalWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisNormal"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasNormalAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisGeneration",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisWarmth"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Greater",
            "DepthSlopeScale" : 0.1
        },
        "FunctionConstants" : {
            "MeshHasNormalAttribute" : "true"
        }
    },
    {
        "Name": "AudioMeshDebugVisGenerationWireframe",
        "VertexShader": {
            "Entry": "vsAudioMeshDebugVis"
        },
        "PixelShader": {
            "Entry": "fsAudioMeshDebugVisWarmth"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "DepthSlopeScale" : 0.1
        }
    }]
}
