[ 1, 0, 0, [ [ "cc.EffectAsset", [ "_name", "shaders", "techniques" ], 0 ] ], [ [ 0, 0, 1, 2, 4 ] ], [ [ 0, "pipeline/post-process/tone-mapping", [ { "hash": 879047950, "name": "pipeline/post-process/tone-mapping|vs|fs-tonemap", "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [], "attributes": [ { "name": "a_position", "format": 32, "location": 0, "defines": [] }, { "name": "a_normal", "format": 32, "location": 1, "defines": [] }, { "name": "a_texCoord", "format": 21, "location": 2, "defines": [] }, { "name": "a_tangent", "format": 44, "location": 3, "defines": [] }, { "name": "a_joints", "location": 4, "defines": [ "CC_USE_SKINNING" ] }, { "name": "a_weights", "format": 44, "location": 5, "defines": [ "CC_USE_SKINNING" ] }, { "name": "a_jointAnimInfo", "format": 44, "isInstanced": true, "location": 6, "defines": [ "USE_INSTANCING", "CC_USE_BAKED_ANIMATION" ] }, { "name": "a_matWorld0", "format": 44, "isInstanced": true, "location": 7, "defines": [ "USE_INSTANCING" ] }, { "name": "a_matWorld1", "format": 44, "isInstanced": true, "location": 8, "defines": [ "USE_INSTANCING" ] }, { "name": "a_matWorld2", "format": 44, "isInstanced": true, "location": 9, "defines": [ "USE_INSTANCING" ] }, { "name": "a_lightingMapUVParam", "format": 44, "isInstanced": true, "location": 10, "defines": [ "USE_INSTANCING", "CC_USE_LIGHTMAP" ] }, { "name": "a_localShadowBiasAndProbeId", "format": 44, "isInstanced": true, "location": 11, "defines": [ "USE_INSTANCING" ] }, { "name": "a_reflectionProbeData", "format": 44, "isInstanced": true, "location": 12, "defines": [ "USE_INSTANCING", "CC_USE_REFLECTION_PROBE" ] }, { "name": "a_sh_linear_const_r", "format": 44, "isInstanced": true, "location": 13, "defines": [ "USE_INSTANCING", "CC_USE_LIGHT_PROBE" ] }, { "name": "a_sh_linear_const_g", "format": 44, "isInstanced": true, "location": 14, "defines": [ "USE_INSTANCING", "CC_USE_LIGHT_PROBE" ] }, { "name": "a_sh_linear_const_b", "format": 44, "isInstanced": true, "location": 15, "defines": [ "USE_INSTANCING", "CC_USE_LIGHT_PROBE" ] }, { "name": "a_vertexId", "format": 11, "location": 16, "defines": [ "CC_USE_MORPH" ] } ], "fragColors": [ { "name": "fragColor", "typename": "vec4", "type": 16, "count": 1, "stageFlags": 16, "location": 0, "defines": [] } ], "descriptors": [ { "rate": 0, "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] }, { "rate": 1, "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] }, { "rate": 2, "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] }, { "rate": 3, "blocks": [ { "name": "Pipeline", "stageFlags": 1, "binding": 0, "members": [ { "name": "g_platform", "type": 16, "count": 1 } ], "defines": [] } ], "samplerTextures": [ { "name": "inputTexture", "type": 28, "count": 1, "stageFlags": 16, "binding": 1, "defines": [] } ], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] } ], "glsl1": { "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n#endif\n uniform vec4 g_platform;\nvarying vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}", "frag": "\nprecision highp float;\nvec3 LinearToSRGB(vec3 linear) {\n#ifdef CC_USE_SURFACE_SHADER\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (!IS_DEBUG_VIEW_COMPOSITE_ENABLE_GAMMA_CORRECTION) {\n return linear;\n }\n #endif\n#endif\n return sqrt(linear);\n}\nvec3 ACESToneMap (vec3 color) {\n color = min(color, vec3(8.0));\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nvec3 HDRToLDR(vec3 color)\n{\n #if CC_USE_HDR\n #if CC_USE_DEBUG_VIEW == CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC && CC_SURFACES_ENABLE_DEBUG_VIEW\n if (IS_DEBUG_VIEW_COMPOSITE_ENABLE_TONE_MAPPING)\n #endif\n {\n #if CC_TONE_MAPPING_TYPE == HDR_TONE_MAPPING_ACES\n color.rgb = ACESToneMap(color.rgb);\n #endif\n }\n #endif\n return color;\n}\nvarying vec2 v_uv;\nuniform sampler2D inputTexture;\nvoid main () {\n gl_FragColor = texture2D(inputTexture, v_uv);\n #if CC_USE_FLOAT_OUTPUT\n gl_FragColor.rgb = HDRToLDR(gl_FragColor.rgb);\n gl_FragColor.rgb = LinearToSRGB(gl_FragColor.rgb);\n #endif\n}" }, "builtins": { "globals": { "blocks": [], "samplerTextures": [], "buffers": [], "images": [] }, "locals": { "blocks": [], "samplerTextures": [], "buffers": [], "images": [] }, "statistics": { "CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 1, "CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 0 } }, "defines": [ { "name": "USE_INSTANCING", "type": "boolean" }, { "name": "CC_USE_SKINNING", "type": "boolean" }, { "name": "CC_USE_BAKED_ANIMATION", "type": "boolean" }, { "name": "CC_USE_LIGHTMAP", "type": "boolean" }, { "name": "CC_USE_REFLECTION_PROBE", "type": "boolean" }, { "name": "CC_RECEIVE_SHADOW", "type": "boolean" }, { "name": "CC_USE_LIGHT_PROBE", "type": "boolean" }, { "name": "CC_USE_MORPH", "type": "boolean" }, { "name": "CC_USE_DEBUG_VIEW", "type": "number", "range": [ 0, 3 ] }, { "name": "CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC", "type": "boolean" }, { "name": "CC_SURFACES_ENABLE_DEBUG_VIEW", "type": "boolean" }, { "name": "CC_USE_HDR", "type": "boolean" }, { "name": "CC_TONE_MAPPING_TYPE", "type": "number", "range": [ 0, 3 ] }, { "name": "HDR_TONE_MAPPING_ACES", "type": "boolean" }, { "name": "CC_USE_FLOAT_OUTPUT", "type": "boolean" } ] }, { "hash": 4126709291, "name": "pipeline/post-process/tone-mapping|vs|fs-copy", "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [], "attributes": [ { "name": "a_position", "format": 32, "location": 0, "defines": [] }, { "name": "a_normal", "format": 32, "location": 1, "defines": [] }, { "name": "a_texCoord", "format": 21, "location": 2, "defines": [] }, { "name": "a_tangent", "format": 44, "location": 3, "defines": [] }, { "name": "a_joints", "location": 4, "defines": [ "CC_USE_SKINNING" ] }, { "name": "a_weights", "format": 44, "location": 5, "defines": [ "CC_USE_SKINNING" ] }, { "name": "a_jointAnimInfo", "format": 44, "isInstanced": true, "location": 6, "defines": [ "USE_INSTANCING", "CC_USE_BAKED_ANIMATION" ] }, { "name": "a_matWorld0", "format": 44, "isInstanced": true, "location": 7, "defines": [ "USE_INSTANCING" ] }, { "name": "a_matWorld1", "format": 44, "isInstanced": true, "location": 8, "defines": [ "USE_INSTANCING" ] }, { "name": "a_matWorld2", "format": 44, "isInstanced": true, "location": 9, "defines": [ "USE_INSTANCING" ] }, { "name": "a_lightingMapUVParam", "format": 44, "isInstanced": true, "location": 10, "defines": [ "USE_INSTANCING", "CC_USE_LIGHTMAP" ] }, { "name": "a_localShadowBiasAndProbeId", "format": 44, "isInstanced": true, "location": 11, "defines": [ "USE_INSTANCING" ] }, { "name": "a_reflectionProbeData", "format": 44, "isInstanced": true, "location": 12, "defines": [ "USE_INSTANCING", "CC_USE_REFLECTION_PROBE" ] }, { "name": "a_sh_linear_const_r", "format": 44, "isInstanced": true, "location": 13, "defines": [ "USE_INSTANCING", "CC_USE_LIGHT_PROBE" ] }, { "name": "a_sh_linear_const_g", "format": 44, "isInstanced": true, "location": 14, "defines": [ "USE_INSTANCING", "CC_USE_LIGHT_PROBE" ] }, { "name": "a_sh_linear_const_b", "format": 44, "isInstanced": true, "location": 15, "defines": [ "USE_INSTANCING", "CC_USE_LIGHT_PROBE" ] }, { "name": "a_vertexId", "format": 11, "location": 16, "defines": [ "CC_USE_MORPH" ] } ], "fragColors": [ { "name": "fragColor", "typename": "vec4", "type": 16, "count": 1, "stageFlags": 16, "location": 0, "defines": [] } ], "descriptors": [ { "rate": 0, "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] }, { "rate": 1, "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] }, { "rate": 2, "blocks": [], "samplerTextures": [], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] }, { "rate": 3, "blocks": [ { "name": "Pipeline", "stageFlags": 1, "binding": 0, "members": [ { "name": "g_platform", "type": 16, "count": 1 } ], "defines": [] } ], "samplerTextures": [ { "name": "inputTexture", "type": 28, "count": 1, "stageFlags": 16, "binding": 1, "defines": [] } ], "samplers": [], "textures": [], "buffers": [], "images": [], "subpassInputs": [] } ], "glsl1": { "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n#endif\n uniform vec4 g_platform;\nvarying vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}", "frag": "\nprecision highp float;\nvarying vec2 v_uv;\nuniform sampler2D inputTexture;\nvoid main () {\n gl_FragColor = texture2D(inputTexture, v_uv);\n}" }, "builtins": { "globals": { "blocks": [], "samplerTextures": [], "buffers": [], "images": [] }, "locals": { "blocks": [], "samplerTextures": [], "buffers": [], "images": [] }, "statistics": { "CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 1, "CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 0 } }, "defines": [ { "name": "USE_INSTANCING", "type": "boolean" }, { "name": "CC_USE_SKINNING", "type": "boolean" }, { "name": "CC_USE_BAKED_ANIMATION", "type": "boolean" }, { "name": "CC_USE_LIGHTMAP", "type": "boolean" }, { "name": "CC_USE_REFLECTION_PROBE", "type": "boolean" }, { "name": "CC_RECEIVE_SHADOW", "type": "boolean" }, { "name": "CC_USE_LIGHT_PROBE", "type": "boolean" }, { "name": "CC_USE_MORPH", "type": "boolean" } ] } ], [ { "passes": [ { "pass": "cc-tone-mapping", "program": "pipeline/post-process/tone-mapping|vs|fs-tonemap", "rasterizerState": { "cullMode": 0 }, "depthStencilState": { "depthTest": false, "depthWrite": false } }, { "pass": "cc-tone-mapping", "program": "pipeline/post-process/tone-mapping|vs|fs-copy", "rasterizerState": { "cullMode": 0 }, "depthStencilState": { "depthTest": false, "depthWrite": false } } ] } ] ] ], 0, 0, [], [], [] ]