{ "contexts": [ { "name": "downsample_pass", "depth_write": false, "compare_mode": "always", "cull_mode": "none", "links": [ { "name": "screenSizeInv", "link": "_screenSizeInv" }, { "name": "currentMipLevel", "link": "_downsampleCurrentMip" }, { "name": "BloomThresholdData", "link": "_BloomThresholdData", "ifdef": ["_CPostprocess"] } ], "texture_params": [], "vertex_shader": "../include/pass.vert.glsl", "fragment_shader": "downsample_pass.frag.glsl" }, { "name": "upsample_pass", "blend_source": "blend_one", "blend_destination": "blend_one", "blend_operation": "add", "alpha_blend_source": "blend_zero", "alpha_blend_destination": "blend_one", "alpha_blend_operation": "add", "depth_write": false, "compare_mode": "always", "cull_mode": "none", "links": [ { "name": "screenSizeInv", "link": "_screenSizeInv" }, { "name": "currentMipLevel", "link": "_upsampleCurrentMip" }, { "name": "sampleScale", "link": "_bloomSampleScale" }, { "name": "PPComp11", "link": "_PPComp11", "ifdef": ["_CPostprocess"] } ], "texture_params": [], "vertex_shader": "../include/pass.vert.glsl", "fragment_shader": "upsample_pass.frag.glsl" } ] }