GamesData/GameUploadDocuments/3.GoalRush/Build/SDK_COCOS/GoalRushPro/library/47/472c676f-9f77-4c8d-b550-17825aa0176b.json

5192 lines
815 KiB
JSON
Raw Normal View History

2025-07-03 12:53:49 +04:00
{
"__type__": "cc.EffectAsset",
"_name": "advanced/simple-skin",
"_objFlags": 0,
"_native": "",
"techniques": [
{
"name": "opaque",
"passes": [
{
"rasterizerState": {
"cullMode": 0
},
"program": "advanced/simple-skin|standard-vs|standard-fs",
"depthStencilState": {
"depthFunc": 3,
"depthTest": true,
"depthWrite": true
},
"properties": {
"tilingOffset": {
"value": [
1,
1,
0,
0
],
"type": 16
},
"mainColor": {
"value": [
1,
1,
1,
1
],
"linear": true,
"editor": {
"displayName": "Albedo",
"type": "color"
},
"type": 16,
"handleInfo": [
"albedo",
0,
16
]
},
"albedoScale": {
"value": [
1,
1,
1
],
"type": 15,
"handleInfo": [
"albedoScaleAndCutoff",
0,
15
]
},
"alphaThreshold": {
"value": [
0.5
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"albedoScaleAndCutoff",
3,
13
]
},
"occlusion": {
"value": [
0
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
0,
13
]
},
"roughness": {
"value": [
0.5
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
1,
13
]
},
"metallic": {
"value": [
0
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
2,
13
]
},
"specularIntensity": {
"value": [
0.5
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
3,
13
]
},
"emissive": {
"value": [
0,
0,
0,
1
],
"linear": true,
"editor": {
"type": "color"
},
"type": 16
},
"emissiveScale": {
"value": [
1,
1,
1
],
"type": 15,
"handleInfo": [
"emissiveScaleParam",
0,
15
]
},
"normalStrength": {
"value": [
1
],
"editor": {
"parent": "USE_NORMAL_MAP",
"slide": true,
"range": [
0,
5
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"emissiveScaleParam",
3,
13
]
},
"mainTexture": {
"value": "grey",
"editor": {
"displayName": "AlbedoMap"
},
"type": 28,
"handleInfo": [
"albedoMap",
0,
28
]
},
"normalMap": {
"value": "normal",
"type": 28
},
"pbrMap": {
"value": "grey",
"editor": {
"displayName": "PbrOrRoughnessMap"
},
"type": 28
},
"occlusionMap": {
"value": "white",
"type": 28
},
"emissiveMap": {
"value": "grey",
"type": 28
},
"sssIntensity": {
"value": [
1
],
"editor": {
"parent": "USE_NORMAL_MAP",
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"scatterParams",
2,
13
]
},
"preIntegratedSkinMap": {
"value": "grey",
"editor": {
"parent": "USE_PREINTEGRATED_SKIN"
},
"type": 28
},
"sssCurvatureMap": {
"value": "white",
"editor": {
"parent": "USE_PREINTEGRATED_SKIN"
},
"type": 28
},
"sssCurvature": {
"value": [
0.1
],
"editor": {
"parent": "USE_PREINTEGRATED_SKIN",
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"scatterParams",
3,
13
]
},
"sssColoration": {
"value": [
1
],
"editor": {
"parent": "USE_PREINTEGRATED_SKIN",
"slide": true,
"range": [
0,
10
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"dualLobeParams",
2,
13
]
},
"cavityMap": {
"value": "white",
"editor": {
"tooltip": "cavity map or specular map"
},
"type": 28
},
"maskMap": {
"value": "black",
"editor": {
"parent": "USE_BACK_LIT"
},
"type": 28
},
"thickness": {
"value": [
0
],
"editor": {
"parent": "USE_BACK_LIT",
"displayName": "Object Thickness",
"range": [
0,
1000
],
"tooltip": "Object thickness (world space unit), setting a too small value will cause the scattered light to disappear"
},
"type": 13,
"handleInfo": [
"scatterParams",
0,
13
]
},
"extinction": {
"value": [
0
],
"editor": {
"parent": "USE_BACK_LIT",
"displayName": "Transmit Scatter Extinction",
"slide": true,
"range": [
0,
10
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"scatterParams",
1,
13
]
},
"transmitColor": {
"value": [
1,
0.2,
0.1,
1
],
"linear": true,
"editor": {
"parent": "USE_BACK_LIT",
"displayName": "Transmit Scatter Color",
"type": "color",
"tooltip": "The color of scattered lighting"
},
"type": 16
},
"dualLobeRoughness": {
"value": [
0.5
],
"editor": {
"parent": "USE_DUAL_LOBE_SPECULAR",
"range": [
0,
1
]
},
"type": 13,
"handleInfo": [
"dualLobeParams",
0,
13
]
},
"dualLobeIntensity": {
"value": [
0.02
],
"editor": {
"parent": "USE_DUAL_LOBE_SPECULAR",
"slide": true,
"range": [
0,
0.1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"dualLobeParams",
3,
13
]
},
"albedo": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
1
]
},
"albedoScaleAndCutoff": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
0.5
]
},
"pbrParams": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
0,
0.5,
0,
0.5
]
},
"emissiveScaleParam": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
1
]
},
"albedoMap": {
"type": 28,
"editor": {
"visible": false,
"deprecated": true
},
"value": "grey"
},
"scatterParams": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
0,
0,
1,
0.1
]
},
"dualLobeParams": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
0.5,
0,
1,
0.02
]
}
}
},
{
"phase": "forward-add",
"propertyIndex": 0,
"embeddedMacros": {
"CC_FORWARD_ADD": true
},
"blendState": {
"targets": [
{
"blend": true,
"blendSrc": 1,
"blendDst": 1,
"blendSrcAlpha": 0,
"blendDstAlpha": 1
}
]
},
"program": "advanced/simple-skin|standard-vs|standard-fs",
"depthStencilState": {
"depthFunc": 2,
"depthTest": true,
"depthWrite": false
}
},
{
"phase": "shadow-caster",
"propertyIndex": 0,
"rasterizerState": {
"cullMode": 0
},
"program": "advanced/simple-skin|shadow-caster-vs|shadow-caster-fs",
"properties": {
"tilingOffset": {
"value": [
1,
1,
0,
0
],
"type": 16
},
"mainColor": {
"value": [
1,
1,
1,
1
],
"editor": {
"displayName": "Albedo",
"type": "color"
},
"type": 16,
"handleInfo": [
"albedo",
0,
16
]
},
"albedoScale": {
"value": [
1,
1,
1
],
"type": 15,
"handleInfo": [
"albedoScaleAndCutoff",
0,
15
]
},
"alphaThreshold": {
"value": [
0.5
],
"editor": {
"parent": "USE_ALPHA_TEST"
},
"type": 13,
"handleInfo": [
"albedoScaleAndCutoff",
3,
13
]
},
"mainTexture": {
"value": "grey",
"editor": {
"displayName": "AlbedoMap"
},
"type": 28,
"handleInfo": [
"albedoMap",
0,
28
]
},
"albedo": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
1
]
},
"albedoScaleAndCutoff": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
0.5
]
},
"albedoMap": {
"type": 28,
"editor": {
"visible": false,
"deprecated": true
},
"value": "grey"
}
}
}
]
},
{
"name": "transparent",
"passes": [
{
"embeddedMacros": {
"CC_FORCE_FORWARD_SHADING": true
},
"blendState": {
"targets": [
{
"blend": true,
"blendSrc": 2,
"blendDst": 4,
"blendDstAlpha": 4
}
]
},
"program": "advanced/simple-skin|standard-vs|standard-fs",
"depthStencilState": {
"depthTest": true,
"depthWrite": false
},
"properties": {
"tilingOffset": {
"value": [
1,
1,
0,
0
],
"type": 16
},
"mainColor": {
"value": [
1,
1,
1,
1
],
"linear": true,
"editor": {
"displayName": "Albedo",
"type": "color"
},
"type": 16,
"handleInfo": [
"albedo",
0,
16
]
},
"albedoScale": {
"value": [
1,
1,
1
],
"type": 15,
"handleInfo": [
"albedoScaleAndCutoff",
0,
15
]
},
"alphaThreshold": {
"value": [
0.5
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"albedoScaleAndCutoff",
3,
13
]
},
"occlusion": {
"value": [
0
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
0,
13
]
},
"roughness": {
"value": [
0.5
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
1,
13
]
},
"metallic": {
"value": [
0
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
2,
13
]
},
"specularIntensity": {
"value": [
0.5
],
"editor": {
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"pbrParams",
3,
13
]
},
"emissive": {
"value": [
0,
0,
0,
1
],
"linear": true,
"editor": {
"type": "color"
},
"type": 16
},
"emissiveScale": {
"value": [
1,
1,
1
],
"type": 15,
"handleInfo": [
"emissiveScaleParam",
0,
15
]
},
"normalStrength": {
"value": [
1
],
"editor": {
"parent": "USE_NORMAL_MAP",
"slide": true,
"range": [
0,
5
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"emissiveScaleParam",
3,
13
]
},
"mainTexture": {
"value": "grey",
"editor": {
"displayName": "AlbedoMap"
},
"type": 28,
"handleInfo": [
"albedoMap",
0,
28
]
},
"normalMap": {
"value": "normal",
"type": 28
},
"pbrMap": {
"value": "grey",
"editor": {
"displayName": "PbrOrRoughnessMap"
},
"type": 28
},
"occlusionMap": {
"value": "white",
"type": 28
},
"emissiveMap": {
"value": "grey",
"type": 28
},
"sssIntensity": {
"value": [
1
],
"editor": {
"parent": "USE_NORMAL_MAP",
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"scatterParams",
2,
13
]
},
"preIntegratedSkinMap": {
"value": "grey",
"editor": {
"parent": "USE_PREINTEGRATED_SKIN"
},
"type": 28
},
"sssCurvatureMap": {
"value": "white",
"editor": {
"parent": "USE_PREINTEGRATED_SKIN"
},
"type": 28
},
"sssCurvature": {
"value": [
0.1
],
"editor": {
"parent": "USE_PREINTEGRATED_SKIN",
"slide": true,
"range": [
0,
1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"scatterParams",
3,
13
]
},
"sssColoration": {
"value": [
1
],
"editor": {
"parent": "USE_PREINTEGRATED_SKIN",
"slide": true,
"range": [
0,
10
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"dualLobeParams",
2,
13
]
},
"cavityMap": {
"value": "white",
"editor": {
"tooltip": "cavity map or specular map"
},
"type": 28
},
"maskMap": {
"value": "black",
"editor": {
"parent": "USE_BACK_LIT"
},
"type": 28
},
"thickness": {
"value": [
0
],
"editor": {
"parent": "USE_BACK_LIT",
"displayName": "Object Thickness",
"range": [
0,
1000
],
"tooltip": "Object thickness (world space unit), setting a too small value will cause the scattered light to disappear"
},
"type": 13,
"handleInfo": [
"scatterParams",
0,
13
]
},
"extinction": {
"value": [
0
],
"editor": {
"parent": "USE_BACK_LIT",
"displayName": "Transmit Scatter Extinction",
"slide": true,
"range": [
0,
10
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"scatterParams",
1,
13
]
},
"transmitColor": {
"value": [
1,
0.2,
0.1,
1
],
"linear": true,
"editor": {
"parent": "USE_BACK_LIT",
"displayName": "Transmit Scatter Color",
"type": "color",
"tooltip": "The color of scattered lighting"
},
"type": 16
},
"dualLobeRoughness": {
"value": [
0.5
],
"editor": {
"parent": "USE_DUAL_LOBE_SPECULAR",
"range": [
0,
1
]
},
"type": 13,
"handleInfo": [
"dualLobeParams",
0,
13
]
},
"dualLobeIntensity": {
"value": [
0.02
],
"editor": {
"parent": "USE_DUAL_LOBE_SPECULAR",
"slide": true,
"range": [
0,
0.1
],
"step": 0.001
},
"type": 13,
"handleInfo": [
"dualLobeParams",
3,
13
]
},
"albedo": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
1
]
},
"albedoScaleAndCutoff": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
0.5
]
},
"pbrParams": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
0,
0.5,
0,
0.5
]
},
"emissiveScaleParam": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
1
]
},
"albedoMap": {
"type": 28,
"editor": {
"visible": false,
"deprecated": true
},
"value": "grey"
},
"scatterParams": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
0,
0,
1,
0.1
]
},
"dualLobeParams": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
0.5,
0,
1,
0.02
]
}
}
},
{
"phase": "forward-add",
"propertyIndex": 0,
"embeddedMacros": {
"CC_FORWARD_ADD": true
},
"blendState": {
"targets": [
{
"blend": true,
"blendSrc": 1,
"blendDst": 1,
"blendSrcAlpha": 0,
"blendDstAlpha": 1
}
]
},
"program": "advanced/simple-skin|standard-vs|standard-fs",
"depthStencilState": {
"depthFunc": 2,
"depthTest": true,
"depthWrite": false
}
},
{
"phase": "shadow-caster",
"propertyIndex": 0,
"rasterizerState": {
"cullMode": 0
},
"program": "advanced/simple-skin|shadow-caster-vs|shadow-caster-fs",
"properties": {
"tilingOffset": {
"value": [
1,
1,
0,
0
],
"type": 16
},
"mainColor": {
"value": [
1,
1,
1,
1
],
"editor": {
"displayName": "Albedo",
"type": "color"
},
"type": 16,
"handleInfo": [
"albedo",
0,
16
]
},
"albedoScale": {
"value": [
1,
1,
1
],
"type": 15,
"handleInfo": [
"albedoScaleAndCutoff",
0,
15
]
},
"alphaThreshold": {
"value": [
0.5
],
"editor": {
"parent": "USE_ALPHA_TEST"
},
"type": 13,
"handleInfo": [
"albedoScaleAndCutoff",
3,
13
]
},
"mainTexture": {
"value": "grey",
"editor": {
"displayName": "AlbedoMap"
},
"type": 28,
"handleInfo": [
"albedoMap",
0,
28
]
},
"albedo": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
1
]
},
"albedoScaleAndCutoff": {
"type": 16,
"editor": {
"visible": false,
"deprecated": true
},
"value": [
1,
1,
1,
0.5
]
},
"albedoMap": {
"type": 28,
"editor": {
"visible": false,
"deprecated": true
},
"value": "grey"
}
}
}
]
}
],
"shaders": [
{
"blocks": [
{
"name": "Constants",
"members": [
{
"name": "tilingOffset",
"type": 16,
"count": 1
},
{
"name": "albedo",
"type": 16,
"count": 1
},
{
"name": "albedoScaleAndCutoff",
"type": 16,
"count": 1
},
{
"name": "pbrParams",
"type": 16,
"count": 1
},
{
"name": "emissive",
"type": 16,
"count": 1
},
{
"name": "emissiveScaleParam",
"type": 16,
"count": 1
},
{
"name": "transmitColor",
"type": 16,
"count": 1
},
{
"name": "scatterParams",
"type": 16,
"count": 1
},
{
"name": "dualLobeParams",
"type": 16,
"count": 1
}
],
"defines": [],
"stageFlags": 17,
"binding": 0
}
],
"samplerTextures": [
{
"name": "albedoMap",
"type": 28,
"count": 1,
"defines": [
"USE_ALBEDO_MAP"
],
"stageFlags": 16,
"binding": 1
},
{
"name": "normalMap",
"type": 28,
"count": 1,
"defines": [
"USE_NORMAL_MAP"
],
"stageFlags": 16,
"binding": 2
},
{
"name": "pbrMap",
"type": 28,
"count": 1,
"defines": [
"USE_PBR_MAP"
],
"stageFlags": 16,
"binding": 3
},
{
"name": "occlusionMap",
"type": 28,
"count": 1,
"defines": [
"USE_OCCLUSION_MAP"
],
"stageFlags": 16,
"binding": 4
},
{
"name": "emissiveMap",
"type": 28,
"count": 1,
"defines": [
"USE_EMISSIVE_MAP"
],
"stageFlags": 16,
"binding": 5
},
{
"name": "maskMap",
"type": 28,
"count": 1,
"defines": [
"USE_BACK_LIT"
],
"stageFlags": 16,
"binding": 6
},
{
"name": "sssCurvatureMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 7
},
{
"name": "cavityMap",
"type": 28,
"count": 1,
"defines": [],
"stageFlags": 16,
"binding": 8
},
{
"name": "preIntegratedSkinMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 9
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": [],
"attributes": [
{
"name": "a_position",
"defines": [],
"format": 32,
"location": 0
},
{
"name": "a_normal",
"defines": [],
"format": 32,
"location": 1
},
{
"name": "a_texCoord",
"defines": [],
"format": 21,
"location": 2
},
{
"name": "a_tangent",
"defines": [],
"format": 44,
"location": 3
},
{
"name": "a_color",
"defines": [
"USE_VERTEX_COLOR"
],
"format": 44,
"location": 6
},
{
"name": "a_texCoord1",
"defines": [],
"format": 21,
"location": 7
},
{
"name": "a_joints",
"defines": [
"CC_USE_SKINNING"
],
"location": 4
},
{
"name": "a_weights",
"defines": [
"CC_USE_SKINNING"
],
"format": 44,
"location": 5
},
{
"name": "a_jointAnimInfo",
"defines": [
"USE_INSTANCING",
"CC_USE_BAKED_ANIMATION"
],
"format": 44,
"isInstanced": true,
"location": 8
},
{
"name": "a_matWorld0",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 9
},
{
"name": "a_matWorld1",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 10
},
{
"name": "a_matWorld2",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 11
},
{
"name": "a_lightingMapUVParam",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHTMAP"
],
"format": 44,
"isInstanced": true,
"location": 12
},
{
"name": "a_localShadowBiasAndProbeId",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 13
},
{
"name": "a_sh_linear_const_r",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHT_PROBE"
],
"format": 44,
"isInstanced": true,
"location": 14
},
{
"name": "a_sh_linear_const_g",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHT_PROBE"
],
"format": 44,
"isInstanced": true,
"location": 15
},
{
"name": "a_sh_linear_const_b",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHT_PROBE"
],
"format": 44,
"isInstanced": true,
"location": 16
},
{
"name": "a_vertexId",
"defines": [
"CC_USE_MORPH"
],
"format": 11,
"location": 17
}
],
"varyings": [
{
"name": "v_worldPos",
"type": 15,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 0
},
{
"name": "v_normal",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 1
},
{
"name": "v_uv",
"type": 14,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 2
},
{
"name": "v_color",
"type": 16,
"count": 1,
"defines": [
"CC_SURFACES_USE_VERTEX_COLOR"
],
"stageFlags": 17,
"location": 3
},
{
"name": "v_tangent",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 4
},
{
"name": "v_uv1",
"type": 14,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 5
},
{
"name": "v_luv",
"type": 15,
"count": 1,
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
],
"stageFlags": 17,
"location": 6
},
{
"name": "v_shadowBiasAndProbeId",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 7
},
{
"name": "v_fogFactor",
"type": 13,
"count": 1,
"defines": [
"CC_USE_FOG",
"!CC_USE_ACCURATE_FOG"
],
"stageFlags": 17,
"location": 8
},
{
"name": "v_localPos",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 9
},
{
"name": "v_clipPos",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 10
},
{
"name": "v_sh_linear_const_r",
"type": 16,
"count": 1,
"defines": [
"CC_USE_LIGHT_PROBE",
"USE_INSTANCING"
],
"stageFlags": 17,
"location": 11
},
{
"name": "v_sh_linear_const_g",
"type": 16,
"count": 1,
"defines": [
"CC_USE_LIGHT_PROBE",
"USE_INSTANCING"
],
"stageFlags": 17,
"location": 12
},
{
"name": "v_sh_linear_const_b",
"type": 16,
"count": 1,
"defines": [
"CC_USE_LIGHT_PROBE",
"USE_INSTANCING"
],
"stageFlags": 17,
"location": 13
}
],
"fragColors": [
{
"tags": [],
"name": "fragColorX",
"typename": "vec4",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 16,
"location": 0
},
{
"tags": [
"CC_PIPELINE_TYPE"
],
"name": "fragColor0",
"typename": "vec4",
"type": 16,
"count": 1,
"defines": [
"CC_PIPELINE_TYPE"
],
"stageFlags": 16,
"location": 1
},
{
"name": "fragColor1",
"typename": "vec4",
"type": 16,
"count": 1,
"defines": [
"CC_PIPELINE_TYPE"
],
"stageFlags": 16,
"location": 2
},
{
"name": "fragColor2",
"typename": "vec4",
"type": 16,
"count": 1,
"defines": [
"CC_PIPELINE_TYPE"
],
"stageFlags": 16,
"location": 3
}
],
"descriptors": [
{
"rate": 0,
"blocks": [
{
"tags": {
"builtin": "local"
},
"name": "CCLocal",
"members": [
{
"name": "cc_matWorld",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matWorldIT",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_lightingMapUVParam",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_localShadowBias",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_reflectionProbeData1",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_reflectionProbeData2",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"!USE_INSTANCING"
],
"stageFlags": 17
},
{
"tags": {
"builtin": "local"
},
"name": "CCMorph",
"members": [
{
"name": "cc_displacementWeights",
"typename": "vec4",
"type": 16,
"count": 15,
"isArray": true
},
{
"name": "cc_displacementTextureInfo",
"typename": "vec4",
"type": 16,
"count": 1
}
],
"defines": [
"CC_USE_MORPH"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCSkinningTexture",
"members": [
{
"name": "cc_jointTextureInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCSkinningAnimation",
"members": [
{
"name": "cc_jointAnimInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCSkinning",
"members": [
{
"name": "cc_joints",
"typename": "vec4",
"type": 16,
"count": 0,
"precision": "highp ",
"isArray": true
}
],
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"!CC_USE_REAL_TIME_JOINT_TEXTURE"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCForwardLight",
"members": [
{
"name": "cc_lightPos",
"typename": "vec4",
"type": 16,
"count": 0,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_lightColor",
"typename": "vec4",
"type": 16,
"count": 0,
"isArray": true
},
{
"name": "cc_lightSizeRangeAngle",
"typename": "vec4",
"type": 16,
"count": 0,
"isArray": true
},
{
"name": "cc_lightDir",
"typename": "vec4",
"type": 16,
"count": 0,
"isArray": true
}
],
"defines": [
"CC_FORWARD_ADD",
"CC_ENABLE_CLUSTERED_LIGHT_CULLING"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "CCSH",
"members": [
{
"name": "cc_sh_linear_const_r",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_linear_const_g",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_linear_const_b",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_r",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_g",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_b",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_a",
"typename": "vec4",
"type": 16,
"count": 1
}
],
"defines": [
"CC_USE_LIGHT_PROBE",
"!USE_INSTANCING"
],
"stageFlags": 16
}
],
"samplerTextures": [
{
"tags": {
"builtin": "local"
},
"name": "cc_PositionDisplacements",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_POSITION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_NormalDisplacements",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_NORMAL"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_TangentDisplacements",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_TANGENT"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_jointTexture",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_realtimeJoint",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"CC_USE_REAL_TIME_JOINT_TEXTURE"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_reflectionProbeCubemap",
"typename": "samplerCube",
"type": 31,
"count": 1,
"defines": [
"CC_USE_REFLECTION_PROBE"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "cc_reflectionProbePlanarMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_REFLECTION_PROBE"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "cc_reflectionProbeDataMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_REFLECTION_PROBE"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "cc_lightingMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
],
"stageFlags": 16
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
},
{
"rate": 1,
"blocks": [
{
"name": "Constants",
"members": [
{
"name": "tilingOffset",
"type": 16,
"count": 1
},
{
"name": "albedo",
"type": 16,
"count": 1
},
{
"name": "albedoScaleAndCutoff",
"type": 16,
"count": 1
},
{
"name": "pbrParams",
"type": 16,
"count": 1
},
{
"name": "emissive",
"type": 16,
"count": 1
},
{
"name": "emissiveScaleParam",
"type": 16,
"count": 1
},
{
"name": "transmitColor",
"type": 16,
"count": 1
},
{
"name": "scatterParams",
"type": 16,
"count": 1
},
{
"name": "dualLobeParams",
"type": 16,
"count": 1
}
],
"defines": [],
"stageFlags": 17,
"binding": 0
}
],
"samplerTextures": [
{
"name": "albedoMap",
"type": 28,
"count": 1,
"defines": [
"USE_ALBEDO_MAP"
],
"stageFlags": 16,
"binding": 1
},
{
"name": "normalMap",
"type": 28,
"count": 1,
"defines": [
"USE_NORMAL_MAP"
],
"stageFlags": 16,
"binding": 2
},
{
"name": "pbrMap",
"type": 28,
"count": 1,
"defines": [
"USE_PBR_MAP"
],
"stageFlags": 16,
"binding": 3
},
{
"name": "occlusionMap",
"type": 28,
"count": 1,
"defines": [
"USE_OCCLUSION_MAP"
],
"stageFlags": 16,
"binding": 4
},
{
"name": "emissiveMap",
"type": 28,
"count": 1,
"defines": [
"USE_EMISSIVE_MAP"
],
"stageFlags": 16,
"binding": 5
},
{
"name": "maskMap",
"type": 28,
"count": 1,
"defines": [
"USE_BACK_LIT"
],
"stageFlags": 16,
"binding": 6
},
{
"name": "sssCurvatureMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 7
},
{
"name": "cavityMap",
"type": 28,
"count": 1,
"defines": [],
"stageFlags": 16,
"binding": 8
},
{
"name": "preIntegratedSkinMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 9
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
},
{
"rate": 2,
"blocks": [],
"samplerTextures": [],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
},
{
"rate": 3,
"blocks": [
{
"tags": {
"builtin": "global"
},
"name": "CCGlobal",
"members": [
{
"name": "cc_time",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_screenSize",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_nativeSize",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_probeInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_debug_view_mode",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
}
],
"defines": [],
"stageFlags": 17
},
{
"tags": {
"builtin": "global"
},
"name": "CCCamera",
"members": [
{
"name": "cc_matView",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matViewInv",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matProj",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matProjInv",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matViewProj",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matViewProjInv",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_cameraPos",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_surfaceTransform",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_screenScale",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_exposure",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_mainLitDir",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_mainLitColor",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_ambientSky",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_ambientGround",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_fogColor",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_fogBase",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_fogAdd",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_nearFar",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_viewPort",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
}
],
"defines": [],
"stageFlags": 17
},
{
"tags": {
"builtin": "global"
},
"name": "CCShadow",
"members": [
{
"name": "cc_matLightView",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matLightViewProj",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowInvProjDepthInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowProjDepthInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowProjInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowNFLSInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_shadowWHPBInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_shadowLPNNInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_shadowColor",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "lowp "
},
{
"name": "cc_planarNDInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
}
],
"defines": [],
"stageFlags": 17
},
{
"tags": {
"builtin": "global"
},
"name": "CCCSM",
"members": [
{
"name": "cc_csmViewDir0",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmViewDir1",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmViewDir2",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmAtlas",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_matCSMViewProj",
"typename": "mat4",
"type": 25,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmProjDepthInfo",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmProjInfo",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmSplitsInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"CC_SUPPORT_CASCADED_SHADOW_MAP"
],
"stageFlags": 16
}
],
"samplerTextures": [
{
"tags": {
"builtin": "global"
},
"name": "cc_environment",
"typename": "samplerCube",
"type": 31,
"count": 1,
"defines": [],
"stageFlags": 16
},
{
"tags": {
"builtin": "global"
},
"name": "cc_diffuseMap",
"typename": "samplerCube",
"type": 31,
"count": 1,
"defines": [
"CC_USE_IBL",
"CC_USE_DIFFUSEMAP"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "global"
},
"name": "cc_shadowMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_RECEIVE_SHADOW"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "global"
},
"name": "cc_spotShadowMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_RECEIVE_SHADOW"
],
"stageFlags": 16
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
}
],
"hash": 1749158082,
"glsl4": {
"vert": "#extension GL_EXT_shader_explicit_arithmetic_types_int32: require\nprecision highp float;\n #define CC_SURFACES_USE_SECOND_UV HAS_SECOND_UV\n #define CC_SURFACES_USE_TWO_SIDED USE_TWOSIDE\n #define CC_SURFACES_USE_VERTEX_COLOR USE_VERTEX_COLOR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR USE_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_SSS 1\n#if USE_NORMAL_MAP\n #define CC_SURFACES_USE_TANGENT_SPACE 1\n#endif\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nlayout(location = 0) in vec3 a_position;\nlayout(location = 1) in vec3 a_normal;\nlayout(location = 2) in vec2 a_texCoord;\n#if CC_SURFACES_USE_TANGENT_SPACE\n layout(location = 3) in vec4 a_tangent;\n#endif\n#if CC_SURFACES_USE_VERTEX_COLOR\n layout(location = 6) in vec4 a_color;\n#endif\n#if CC_SURFACES_USE_SECOND_UV || CC_USE_LIGHTMAP\n layout(location = 7) in vec2 a_texCoord1;\n#endif\n#if CC_USE_SKINNING\n layout(location = 4) in u32vec4 a_joints;\n layout(location = 5) in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n layout(location = 8) in highp vec4 a_jointAnimInfo;\n #endif\n layout(location = 9) in vec4 a_matWorld0;\n layout(location = 10) in vec4 a_matWorld1;\n layout(location = 11) in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n layout(location = 12) in vec4 a_lightingMapUVParam;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n layout(location = 13) in vec4 a_localSh
"frag": "\nprecision highp float;\n #define CC_SURFACES_USE_SECOND_UV HAS_SECOND_UV\n #define CC_SURFACES_USE_TWO_SIDED USE_TWOSIDE\n #define CC_SURFACES_USE_VERTEX_COLOR USE_VERTEX_COLOR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR USE_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_SSS 1\n#if USE_NORMAL_MAP\n #define CC_SURFACES_USE_TANGENT_SPACE 1\n#endif\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nlayout(location = 0) in highp vec3 v_worldPos;\nlayout(location = 1) in mediump vec4 v_normal;\nlayout(location = 2) in vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n layout(location = 3) in lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n layout(location = 4) in mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n layout(location = 5) in mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n layout(location = 6) in mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n layout(location = 7) in mediump vec4 v_shadowBiasAndProbeId;\n#endif\n#if CC_USE_FOG != 4 && !CC_USE_ACCURATE_FOG\n layout(location = 8) in mediump float v_fogFactor;\n#endif\n#if CC_SURFACES_TRANSFER_LOCAL_POS\n layout(location = 9) in highp vec4 v_localPos;\n#endif\n#if CC_SURFACES_TRANSFER_CLIP_POS\n layout(location = 10) in highp vec4 v_clipPos;\n#endif\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n layout(location = 11) in mediump vec4 v_sh_linear_const_r;
},
"glsl3": {
"vert": "\nprecision highp float;\n #define CC_SURFACES_USE_SECOND_UV HAS_SECOND_UV\n #define CC_SURFACES_USE_TWO_SIDED USE_TWOSIDE\n #define CC_SURFACES_USE_VERTEX_COLOR USE_VERTEX_COLOR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR USE_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_SSS 1\n#if USE_NORMAL_MAP\n #define CC_SURFACES_USE_TANGENT_SPACE 1\n#endif\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\n#if CC_SURFACES_USE_TANGENT_SPACE\n in vec4 a_tangent;\n#endif\n#if CC_SURFACES_USE_VERTEX_COLOR\n in vec4 a_color;\n#endif\n#if CC_SURFACES_USE_SECOND_UV || CC_USE_LIGHTMAP\n in vec2 a_texCoord1;\n#endif\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n#endif\nout highp vec3 v_worldPos;\nout mediump vec4 v_normal;\nout vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n out lowp vec4 v_color;\n#endi
"frag": "\nprecision highp float;\n #define CC_SURFACES_USE_SECOND_UV HAS_SECOND_UV\n #define CC_SURFACES_USE_TWO_SIDED USE_TWOSIDE\n #define CC_SURFACES_USE_VERTEX_COLOR USE_VERTEX_COLOR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR USE_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_SSS 1\n#if USE_NORMAL_MAP\n #define CC_SURFACES_USE_TANGENT_SPACE 1\n#endif\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nin highp vec3 v_worldPos;\nin mediump vec4 v_normal;\nin vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n in mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n in mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n in mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n in mediump vec4 v_shadowBiasAndProbeId;\n#endif\n#if CC_USE_FOG != 4 && !CC_USE_ACCURATE_FOG\n in mediump float v_fogFactor;\n#endif\n#if CC_SURFACES_TRANSFER_LOCAL_POS\n in highp vec4 v_localPos;\n#endif\n#if CC_SURFACES_TRANSFER_CLIP_POS\n in highp vec4 v_clipPos;\n#endif\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n in mediump vec4 v_sh_linear_const_r;\n in mediump vec4 v_sh_linear_const_g;\n in mediump vec4 v_sh_linear_const_b;\n #endif\n#endif\n#define FSInput_worldPos v_worldPos\n#define FSInput_worldNormal v_normal.xyz\n#define FSInput_faceSideSign v_normal.w\n#define FSInput_texcoord v_uv\
},
"glsl1": {
"vert": "\nprecision highp float;\n #define CC_SURFACES_USE_SECOND_UV HAS_SECOND_UV\n #define CC_SURFACES_USE_TWO_SIDED USE_TWOSIDE\n #define CC_SURFACES_USE_VERTEX_COLOR USE_VERTEX_COLOR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR USE_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_SSS 1\n#if USE_NORMAL_MAP\n #define CC_SURFACES_USE_TANGENT_SPACE 1\n#endif\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\n#if CC_SURFACES_USE_TANGENT_SPACE\n attribute vec4 a_tangent;\n#endif\n#if CC_SURFACES_USE_VERTEX_COLOR\n attribute vec4 a_color;\n#endif\n#if CC_SURFACES_USE_SECOND_UV || CC_USE_LIGHTMAP\n attribute vec2 a_texCoord1;\n#endif\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_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n attribute vec4 a_localShadowBiasAndProbeId;\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\nvarying hig
"frag": "\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers: enable\n#endif\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives: enable\n#endif\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod: enable\n#endif\nprecision highp float;\n #define CC_SURFACES_USE_SECOND_UV HAS_SECOND_UV\n #define CC_SURFACES_USE_TWO_SIDED USE_TWOSIDE\n #define CC_SURFACES_USE_VERTEX_COLOR USE_VERTEX_COLOR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR USE_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT USE_BACK_LIT\n #define CC_SURFACES_LIGHTING_SSS 1\n#if USE_NORMAL_MAP\n #define CC_SURFACES_USE_TANGENT_SPACE 1\n#endif\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nvarying highp vec3 v_worldPos;\nvarying mediump vec4 v_normal;\nvarying vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n varying mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n varying mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n varying mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n varying mediump vec4 v_shadowBiasAndProbeId;\n#endif\n#if CC_USE_FOG != 4 && !CC_USE_ACCURATE_FOG\n varying mediump float v_fogFactor;\n#endif\n#if CC_SURFACES_TRANSFER_LOCAL_POS\n varying highp vec4 v_localPos;\n#endif\n#if CC_SURFACES_TRANSFER_CLIP_POS\n varying highp vec4 v_clipPos;\n#endif\n#if CC_USE_LIGHT_PROBE\n #if
},
"builtins": {
"globals": {
"blocks": [
{
"name": "CCGlobal",
"defines": []
},
{
"name": "CCCamera",
"defines": []
},
{
"name": "CCShadow",
"defines": []
},
{
"name": "CCCSM",
"defines": [
"CC_SUPPORT_CASCADED_SHADOW_MAP"
]
}
],
"samplerTextures": [
{
"name": "cc_environment",
"defines": []
},
{
"name": "cc_diffuseMap",
"defines": [
"CC_USE_IBL",
"CC_USE_DIFFUSEMAP"
]
},
{
"name": "cc_shadowMap",
"defines": [
"CC_RECEIVE_SHADOW"
]
},
{
"name": "cc_spotShadowMap",
"defines": [
"CC_RECEIVE_SHADOW"
]
}
],
"buffers": [],
"images": []
},
"locals": {
"blocks": [
{
"name": "CCLocal",
"defines": [
"!USE_INSTANCING"
]
},
{
"name": "CCMorph",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CCSkinningTexture",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
]
},
{
"name": "CCSkinningAnimation",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
]
},
{
"name": "CCSkinning",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"!CC_USE_REAL_TIME_JOINT_TEXTURE"
]
},
{
"name": "CCForwardLight",
"defines": [
"CC_FORWARD_ADD",
"CC_ENABLE_CLUSTERED_LIGHT_CULLING"
]
},
{
"name": "CCSH",
"defines": [
"CC_USE_LIGHT_PROBE",
"!USE_INSTANCING"
]
}
],
"samplerTextures": [
{
"name": "cc_PositionDisplacements",
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_POSITION"
]
},
{
"name": "cc_NormalDisplacements",
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_NORMAL"
]
},
{
"name": "cc_TangentDisplacements",
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_TANGENT"
]
},
{
"name": "cc_jointTexture",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
]
},
{
"name": "cc_realtimeJoint",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"CC_USE_REAL_TIME_JOINT_TEXTURE"
]
},
{
"name": "cc_reflectionProbeCubemap",
"defines": [
"CC_USE_REFLECTION_PROBE"
]
},
{
"name": "cc_reflectionProbePlanarMap",
"defines": [
"CC_USE_REFLECTION_PROBE"
]
},
{
"name": "cc_reflectionProbeDataMap",
"defines": [
"CC_USE_REFLECTION_PROBE"
]
},
{
"name": "cc_lightingMap",
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
]
}
],
"buffers": [],
"images": []
},
"statistics": {
"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 97,
"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 127
}
},
"defines": [
{
"name": "HAS_SECOND_UV",
"type": "boolean",
"defines": []
},
{
"name": "USE_TWOSIDE",
"type": "boolean",
"defines": []
},
{
"name": "USE_VERTEX_COLOR",
"type": "boolean",
"defines": []
},
{
"name": "USE_BACK_LIT",
"type": "boolean",
"defines": []
},
{
"name": "USE_PREINTEGRATED_SKIN",
"type": "boolean",
"defines": []
},
{
"name": "USE_DUAL_LOBE_SPECULAR",
"type": "boolean",
"defines": []
},
{
"name": "USE_NORMAL_MAP",
"type": "boolean",
"defines": []
},
{
"name": "USE_INSTANCING",
"type": "boolean",
"defines": [],
"editor": {
"elevated": true
}
},
{
"name": "CC_USE_LIGHTMAP",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_SKINNING",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_BAKED_ANIMATION",
"type": "boolean",
"defines": [
"USE_INSTANCING"
]
},
{
"name": "CC_RECEIVE_SHADOW",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_REFLECTION_PROBE",
"type": "number",
"defines": [],
"range": [
0,
3
]
},
{
"name": "CC_USE_LIGHT_PROBE",
"type": "boolean",
"defines": [],
"default": 0
},
{
"name": "CC_USE_MORPH",
"type": "boolean",
"defines": []
},
{
"name": "CC_FORWARD_ADD",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_FOG",
"type": "number",
"defines": [],
"range": [
0,
4
]
},
{
"name": "CC_USE_ACCURATE_FOG",
"type": "boolean",
"defines": [
"CC_USE_FOG"
]
},
{
"name": "CC_MORPH_TARGET_COUNT",
"type": "number",
"defines": [
"CC_USE_MORPH"
],
"range": [
2,
8
]
},
{
"name": "CC_MORPH_TARGET_HAS_POSITION",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_MORPH_TARGET_HAS_NORMAL",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_MORPH_TARGET_HAS_TANGENT",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_MORPH_PRECOMPUTED",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_USE_REAL_TIME_JOINT_TEXTURE",
"type": "boolean",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION"
]
},
{
"name": "CC_DISABLE_STRUCTURE_IN_FRAGMENT_SHADER",
"type": "number",
"defines": [],
"range": [
0,
1
]
},
{
"name": "CC_PIPELINE_TYPE",
"type": "number",
"defines": [],
"range": [
0,
1
]
},
{
"name": "CC_FORCE_FORWARD_SHADING",
"type": "boolean",
"defines": [
"CC_PIPELINE_TYPE"
]
},
{
"name": "CC_SUPPORT_CASCADED_SHADOW_MAP",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_IBL",
"type": "number",
"defines": [],
"range": [
0,
2
]
},
{
"name": "CC_USE_DIFFUSEMAP",
"type": "number",
"defines": [
"CC_USE_IBL"
],
"range": [
0,
2
]
},
{
"name": "CC_USE_HDR",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_DEBUG_VIEW",
"type": "number",
"defines": [],
"range": [
0,
3
]
},
{
"name": "CC_TONE_MAPPING_TYPE",
"type": "number",
"defines": [
"CC_USE_HDR"
],
"range": [
0,
3
]
},
{
"name": "HDR_TONE_MAPPING_ACES",
"type": "boolean",
"defines": [
"CC_TONE_MAPPING_TYPE",
"CC_USE_HDR"
]
},
{
"name": "CC_IBL_CONVOLUTED",
"type": "boolean",
"defines": [
"!CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING"
]
},
{
"name": "CC_SHADOWMAP_FORMAT",
"type": "number",
"defines": [
"CC_RECEIVE_SHADOW"
],
"range": [
0,
3
]
},
{
"name": "CC_SHADOWMAP_USE_LINEAR_DEPTH",
"type": "boolean",
"defines": [
"CC_RECEIVE_SHADOW"
]
},
{
"name": "CC_DIR_SHADOW_PCF_TYPE",
"type": "number",
"defines": [
"CC_RECEIVE_SHADOW"
],
"range": [
0,
3
]
},
{
"name": "CC_CASCADED_LAYERS_TRANSITION",
"type": "boolean",
"defines": [
"CC_RECEIVE_SHADOW",
"CC_SUPPORT_CASCADED_SHADOW_MAP"
]
},
{
"name": "CC_LIGHT_MAP_VERSION",
"type": "number",
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
],
"range": [
0,
3
]
},
{
"name": "USE_ALBEDO_MAP",
"type": "boolean",
"defines": []
},
{
"name": "ALBEDO_UV",
"type": "string",
"defines": [
"USE_ALBEDO_MAP"
],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "NORMAL_UV",
"type": "string",
"defines": [
"USE_NORMAL_MAP"
],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "DEFAULT_UV",
"type": "string",
"defines": [],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "USE_PBR_MAP",
"type": "boolean",
"defines": []
},
{
"name": "USE_OCCLUSION_MAP",
"type": "boolean",
"defines": []
},
{
"name": "USE_EMISSIVE_MAP",
"type": "boolean",
"defines": []
},
{
"name": "EMISSIVE_UV",
"type": "string",
"defines": [
"USE_EMISSIVE_MAP"
],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "USE_ALPHA_TEST",
"type": "boolean",
"defines": []
},
{
"name": "ALPHA_TEST_CHANNEL",
"type": "string",
"defines": [
"USE_ALPHA_TEST"
],
"options": [
"a",
"r"
]
},
{
"name": "CC_SURFACES_LIGHTING_DISABLE_DIFFUSE",
"type": "boolean",
"defines": []
},
{
"name": "CC_SURFACES_LIGHTING_DISABLE_SPECULAR",
"type": "boolean",
"defines": []
},
{
"name": "CC_SHADOW_TYPE",
"type": "number",
"defines": [
"CC_RECEIVE_SHADOW"
],
"range": [
0,
3
]
},
{
"name": "CC_DIR_LIGHT_SHADOW_TYPE",
"type": "number",
"defines": [
"CC_RECEIVE_SHADOW",
"CC_SHADOW_TYPE"
],
"range": [
0,
3
]
},
{
"name": "CC_DISABLE_DIRECTIONAL_LIGHT",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_FLOAT_OUTPUT",
"type": "boolean",
"defines": [
"!CC_USE_RGBE_OUTPUT"
]
},
{
"name": "CC_USE_RGBE_OUTPUT",
"type": "boolean",
"defines": []
}
],
"name": "advanced/simple-skin|standard-vs|standard-fs"
},
{
"blocks": [
{
"name": "Constants",
"members": [
{
"name": "tilingOffset",
"type": 16,
"count": 1
},
{
"name": "albedo",
"type": 16,
"count": 1
},
{
"name": "albedoScaleAndCutoff",
"type": 16,
"count": 1
},
{
"name": "pbrParams",
"type": 16,
"count": 1
},
{
"name": "emissive",
"type": 16,
"count": 1
},
{
"name": "emissiveScaleParam",
"type": 16,
"count": 1
},
{
"name": "transmitColor",
"type": 16,
"count": 1
},
{
"name": "scatterParams",
"type": 16,
"count": 1
},
{
"name": "dualLobeParams",
"type": 16,
"count": 1
}
],
"defines": [],
"stageFlags": 17,
"binding": 0
}
],
"samplerTextures": [
{
"name": "albedoMap",
"type": 28,
"count": 1,
"defines": [
"USE_ALBEDO_MAP"
],
"stageFlags": 16,
"binding": 1
},
{
"name": "normalMap",
"type": 28,
"count": 1,
"defines": [
"USE_NORMAL_MAP"
],
"stageFlags": 16,
"binding": 2
},
{
"name": "pbrMap",
"type": 28,
"count": 1,
"defines": [
"USE_PBR_MAP"
],
"stageFlags": 16,
"binding": 3
},
{
"name": "occlusionMap",
"type": 28,
"count": 1,
"defines": [
"USE_OCCLUSION_MAP"
],
"stageFlags": 16,
"binding": 4
},
{
"name": "emissiveMap",
"type": 28,
"count": 1,
"defines": [
"USE_EMISSIVE_MAP"
],
"stageFlags": 16,
"binding": 5
},
{
"name": "maskMap",
"type": 28,
"count": 1,
"defines": [
"USE_BACK_LIT"
],
"stageFlags": 16,
"binding": 6
},
{
"name": "sssCurvatureMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 7
},
{
"name": "cavityMap",
"type": 28,
"count": 1,
"defines": [],
"stageFlags": 16,
"binding": 8
},
{
"name": "preIntegratedSkinMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 9
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": [],
"attributes": [
{
"name": "a_position",
"defines": [],
"format": 32,
"location": 0
},
{
"name": "a_normal",
"defines": [],
"format": 32,
"location": 1
},
{
"name": "a_texCoord",
"defines": [],
"format": 21,
"location": 2
},
{
"name": "a_tangent",
"defines": [],
"format": 44,
"location": 3
},
{
"name": "a_color",
"defines": [
"CC_SURFACES_USE_VERTEX_COLOR"
],
"format": 44,
"location": 6
},
{
"name": "a_texCoord1",
"defines": [],
"format": 21,
"location": 7
},
{
"name": "a_joints",
"defines": [
"CC_USE_SKINNING"
],
"location": 4
},
{
"name": "a_weights",
"defines": [
"CC_USE_SKINNING"
],
"format": 44,
"location": 5
},
{
"name": "a_jointAnimInfo",
"defines": [
"USE_INSTANCING",
"CC_USE_BAKED_ANIMATION"
],
"format": 44,
"isInstanced": true,
"location": 8
},
{
"name": "a_matWorld0",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 9
},
{
"name": "a_matWorld1",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 10
},
{
"name": "a_matWorld2",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 11
},
{
"name": "a_lightingMapUVParam",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHTMAP"
],
"format": 44,
"isInstanced": true,
"location": 12
},
{
"name": "a_localShadowBiasAndProbeId",
"defines": [
"USE_INSTANCING"
],
"format": 44,
"isInstanced": true,
"location": 13
},
{
"name": "a_sh_linear_const_r",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHT_PROBE"
],
"format": 44,
"isInstanced": true,
"location": 14
},
{
"name": "a_sh_linear_const_g",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHT_PROBE"
],
"format": 44,
"isInstanced": true,
"location": 15
},
{
"name": "a_sh_linear_const_b",
"defines": [
"USE_INSTANCING",
"CC_USE_LIGHT_PROBE"
],
"format": 44,
"isInstanced": true,
"location": 16
},
{
"name": "a_vertexId",
"defines": [
"CC_USE_MORPH"
],
"format": 11,
"location": 17
}
],
"varyings": [
{
"name": "v_worldPos",
"type": 15,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 0
},
{
"name": "v_normal",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 1
},
{
"name": "v_uv",
"type": 14,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 2
},
{
"name": "v_color",
"type": 16,
"count": 1,
"defines": [
"CC_SURFACES_USE_VERTEX_COLOR"
],
"stageFlags": 17,
"location": 3
},
{
"name": "v_tangent",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 4
},
{
"name": "v_uv1",
"type": 14,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 5
},
{
"name": "v_luv",
"type": 15,
"count": 1,
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
],
"stageFlags": 17,
"location": 6
},
{
"name": "v_shadowBiasAndProbeId",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 7
},
{
"name": "v_fogFactor",
"type": 13,
"count": 1,
"defines": [
"CC_USE_FOG",
"!CC_USE_ACCURATE_FOG"
],
"stageFlags": 17,
"location": 8
},
{
"name": "v_localPos",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 9
},
{
"name": "v_clipPos",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 10
},
{
"name": "v_sh_linear_const_r",
"type": 16,
"count": 1,
"defines": [
"CC_USE_LIGHT_PROBE",
"USE_INSTANCING"
],
"stageFlags": 17,
"location": 11
},
{
"name": "v_sh_linear_const_g",
"type": 16,
"count": 1,
"defines": [
"CC_USE_LIGHT_PROBE",
"USE_INSTANCING"
],
"stageFlags": 17,
"location": 12
},
{
"name": "v_sh_linear_const_b",
"type": 16,
"count": 1,
"defines": [
"CC_USE_LIGHT_PROBE",
"USE_INSTANCING"
],
"stageFlags": 17,
"location": 13
},
{
"name": "v_clip_depth",
"type": 14,
"count": 1,
"defines": [],
"stageFlags": 17,
"location": 14
}
],
"fragColors": [
{
"name": "fragColorX",
"typename": "vec4",
"type": 16,
"count": 1,
"defines": [],
"stageFlags": 16,
"location": 0
}
],
"descriptors": [
{
"rate": 0,
"blocks": [
{
"tags": {
"builtin": "local"
},
"name": "CCLocal",
"members": [
{
"name": "cc_matWorld",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matWorldIT",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_lightingMapUVParam",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_localShadowBias",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_reflectionProbeData1",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_reflectionProbeData2",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"!USE_INSTANCING"
],
"stageFlags": 17
},
{
"tags": {
"builtin": "local"
},
"name": "CCMorph",
"members": [
{
"name": "cc_displacementWeights",
"typename": "vec4",
"type": 16,
"count": 15,
"isArray": true
},
{
"name": "cc_displacementTextureInfo",
"typename": "vec4",
"type": 16,
"count": 1
}
],
"defines": [
"CC_USE_MORPH"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCSkinningTexture",
"members": [
{
"name": "cc_jointTextureInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCSkinningAnimation",
"members": [
{
"name": "cc_jointAnimInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCSkinning",
"members": [
{
"name": "cc_joints",
"typename": "vec4",
"type": 16,
"count": 0,
"precision": "highp ",
"isArray": true
}
],
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"!CC_USE_REAL_TIME_JOINT_TEXTURE"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "CCForwardLight",
"members": [
{
"name": "cc_lightPos",
"typename": "vec4",
"type": 16,
"count": 0,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_lightColor",
"typename": "vec4",
"type": 16,
"count": 0,
"isArray": true
},
{
"name": "cc_lightSizeRangeAngle",
"typename": "vec4",
"type": 16,
"count": 0,
"isArray": true
},
{
"name": "cc_lightDir",
"typename": "vec4",
"type": 16,
"count": 0,
"isArray": true
}
],
"defines": [
"CC_FORWARD_ADD",
"CC_ENABLE_CLUSTERED_LIGHT_CULLING"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "CCSH",
"members": [
{
"name": "cc_sh_linear_const_r",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_linear_const_g",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_linear_const_b",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_r",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_g",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_b",
"typename": "vec4",
"type": 16,
"count": 1
},
{
"name": "cc_sh_quadratic_a",
"typename": "vec4",
"type": 16,
"count": 1
}
],
"defines": [
"CC_USE_LIGHT_PROBE",
"!USE_INSTANCING"
],
"stageFlags": 16
}
],
"samplerTextures": [
{
"tags": {
"builtin": "local"
},
"name": "cc_PositionDisplacements",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_POSITION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_NormalDisplacements",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_NORMAL"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_TangentDisplacements",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_TANGENT"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_jointTexture",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_realtimeJoint",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"CC_USE_REAL_TIME_JOINT_TEXTURE"
],
"stageFlags": 1
},
{
"tags": {
"builtin": "local"
},
"name": "cc_reflectionProbeCubemap",
"typename": "samplerCube",
"type": 31,
"count": 1,
"defines": [
"CC_USE_REFLECTION_PROBE"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "cc_reflectionProbePlanarMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_REFLECTION_PROBE"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "cc_reflectionProbeDataMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_REFLECTION_PROBE"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "local"
},
"name": "cc_lightingMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
],
"stageFlags": 16
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
},
{
"rate": 1,
"blocks": [
{
"name": "Constants",
"members": [
{
"name": "tilingOffset",
"type": 16,
"count": 1
},
{
"name": "albedo",
"type": 16,
"count": 1
},
{
"name": "albedoScaleAndCutoff",
"type": 16,
"count": 1
},
{
"name": "pbrParams",
"type": 16,
"count": 1
},
{
"name": "emissive",
"type": 16,
"count": 1
},
{
"name": "emissiveScaleParam",
"type": 16,
"count": 1
},
{
"name": "transmitColor",
"type": 16,
"count": 1
},
{
"name": "scatterParams",
"type": 16,
"count": 1
},
{
"name": "dualLobeParams",
"type": 16,
"count": 1
}
],
"defines": [],
"stageFlags": 17,
"binding": 0
}
],
"samplerTextures": [
{
"name": "albedoMap",
"type": 28,
"count": 1,
"defines": [
"USE_ALBEDO_MAP"
],
"stageFlags": 16,
"binding": 1
},
{
"name": "normalMap",
"type": 28,
"count": 1,
"defines": [
"USE_NORMAL_MAP"
],
"stageFlags": 16,
"binding": 2
},
{
"name": "pbrMap",
"type": 28,
"count": 1,
"defines": [
"USE_PBR_MAP"
],
"stageFlags": 16,
"binding": 3
},
{
"name": "occlusionMap",
"type": 28,
"count": 1,
"defines": [
"USE_OCCLUSION_MAP"
],
"stageFlags": 16,
"binding": 4
},
{
"name": "emissiveMap",
"type": 28,
"count": 1,
"defines": [
"USE_EMISSIVE_MAP"
],
"stageFlags": 16,
"binding": 5
},
{
"name": "maskMap",
"type": 28,
"count": 1,
"defines": [
"USE_BACK_LIT"
],
"stageFlags": 16,
"binding": 6
},
{
"name": "sssCurvatureMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 7
},
{
"name": "cavityMap",
"type": 28,
"count": 1,
"defines": [],
"stageFlags": 16,
"binding": 8
},
{
"name": "preIntegratedSkinMap",
"type": 28,
"count": 1,
"defines": [
"USE_PREINTEGRATED_SKIN"
],
"stageFlags": 16,
"binding": 9
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
},
{
"rate": 2,
"blocks": [],
"samplerTextures": [],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
},
{
"rate": 3,
"blocks": [
{
"tags": {
"builtin": "global"
},
"name": "CCGlobal",
"members": [
{
"name": "cc_time",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_screenSize",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_nativeSize",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_probeInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_debug_view_mode",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
}
],
"defines": [],
"stageFlags": 17
},
{
"tags": {
"builtin": "global"
},
"name": "CCCamera",
"members": [
{
"name": "cc_matView",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matViewInv",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matProj",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matProjInv",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matViewProj",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matViewProjInv",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_cameraPos",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_surfaceTransform",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_screenScale",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_exposure",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_mainLitDir",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_mainLitColor",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_ambientSky",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_ambientGround",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_fogColor",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_fogBase",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_fogAdd",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_nearFar",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_viewPort",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
}
],
"defines": [],
"stageFlags": 17
},
{
"tags": {
"builtin": "global"
},
"name": "CCShadow",
"members": [
{
"name": "cc_matLightView",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_matLightViewProj",
"typename": "mat4",
"type": 25,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowInvProjDepthInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowProjDepthInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowProjInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
},
{
"name": "cc_shadowNFLSInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_shadowWHPBInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_shadowLPNNInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
},
{
"name": "cc_shadowColor",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "lowp "
},
{
"name": "cc_planarNDInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "mediump "
}
],
"defines": [],
"stageFlags": 17
},
{
"tags": {
"builtin": "global"
},
"name": "CCCSM",
"members": [
{
"name": "cc_csmViewDir0",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmViewDir1",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmViewDir2",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmAtlas",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_matCSMViewProj",
"typename": "mat4",
"type": 25,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmProjDepthInfo",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmProjInfo",
"typename": "vec4",
"type": 16,
"count": 4,
"precision": "highp ",
"isArray": true
},
{
"name": "cc_csmSplitsInfo",
"typename": "vec4",
"type": 16,
"count": 1,
"precision": "highp "
}
],
"defines": [
"CC_SUPPORT_CASCADED_SHADOW_MAP"
],
"stageFlags": 16
}
],
"samplerTextures": [
{
"tags": {
"builtin": "global"
},
"name": "cc_environment",
"typename": "samplerCube",
"type": 31,
"count": 1,
"defines": [],
"stageFlags": 16
},
{
"tags": {
"builtin": "global"
},
"name": "cc_diffuseMap",
"typename": "samplerCube",
"type": 31,
"count": 1,
"defines": [
"CC_USE_IBL",
"CC_USE_DIFFUSEMAP"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "global"
},
"name": "cc_shadowMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_RECEIVE_SHADOW"
],
"stageFlags": 16
},
{
"tags": {
"builtin": "global"
},
"name": "cc_spotShadowMap",
"typename": "sampler2D",
"type": 28,
"count": 1,
"precision": "highp ",
"defines": [
"CC_RECEIVE_SHADOW"
],
"stageFlags": 16
}
],
"samplers": [],
"textures": [],
"buffers": [],
"images": [],
"subpassInputs": []
}
],
"hash": 4140200500,
"glsl4": {
"vert": "#extension GL_EXT_shader_explicit_arithmetic_types_int32: require\nprecision highp float;\n#define CC_SURFACES_USE_TANGENT_SPACE 0\n#define CC_SURFACES_USE_VERTEX_COLOR 0\n#define CC_SURFACES_USE_SECOND_UV 0\n#define CC_SURFACES_USE_LIGHT_MAP 0\n#define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nlayout(location = 0) in vec3 a_position;\nlayout(location = 1) in vec3 a_normal;\nlayout(location = 2) in vec2 a_texCoord;\n#if CC_SURFACES_USE_TANGENT_SPACE\n layout(location = 3) in vec4 a_tangent;\n#endif\n#if CC_SURFACES_USE_VERTEX_COLOR\n layout(location = 6) in vec4 a_color;\n#endif\n#if CC_SURFACES_USE_SECOND_UV || CC_USE_LIGHTMAP\n layout(location = 7) in vec2 a_texCoord1;\n#endif\n#if CC_USE_SKINNING\n layout(location = 4) in u32vec4 a_joints;\n layout(location = 5) in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n layout(location = 8) in highp vec4 a_jointAnimInfo;\n #endif\n layout(location = 9) in vec4 a_matWorld0;\n layout(location = 10) in vec4 a_matWorld1;\n layout(location = 11) in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n layout(location = 12) in vec4 a_lightingMapUVParam;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n layout(location = 13) in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_LIGHT_PROBE\n layout(location = 14) in vec4 a_sh_linear_const_r;\n layout(location = 15) in vec4 a_sh_linear_const_g;\n layout(location = 16) in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n#endif\nlayo
"frag": "\nprecision highp float;\n#define CC_SURFACES_USE_TANGENT_SPACE 0\n#define CC_SURFACES_USE_VERTEX_COLOR 0\n#define CC_SURFACES_USE_SECOND_UV 0\n#define CC_SURFACES_USE_LIGHT_MAP 0\n#define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nlayout(location = 0) in highp vec3 v_worldPos;\nlayout(location = 1) in mediump vec4 v_normal;\nlayout(location = 2) in vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n layout(location = 3) in lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n layout(location = 4) in mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n layout(location = 5) in mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n layout(location = 6) in mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n layout(location = 7) in mediump vec4 v_shadowBiasAndProbeId;\n#endif\n#if CC_USE_FOG != 4 && !CC_USE_ACCURATE_FOG\n layout(location = 8) in mediump float v_fogFactor;\n#endif\n#if CC_SURFACES_TRANSFER_LOCAL_POS\n layout(location = 9) in highp vec4 v_localPos;\n#endif\n#if CC_SURFACES_TRANSFER_CLIP_POS\n layout(location = 10) in highp vec4 v_clipPos;\n#endif\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n layout(location = 11) in mediump vec4 v_sh_linear_const_r;\n layout(location = 12) in mediump vec4 v_sh_linear_const_g;\n layout(location = 13) in mediump vec4 v_sh_linear_const_b;\n #endif\n#endif\n#define FSInput_worldPos v_worldPos\n#define FSInput_worldNormal v_normal.xyz\n#define FSInput_faceSideSign v_normal.w\n#defi
},
"glsl3": {
"vert": "\nprecision highp float;\n#define CC_SURFACES_USE_TANGENT_SPACE 0\n#define CC_SURFACES_USE_VERTEX_COLOR 0\n#define CC_SURFACES_USE_SECOND_UV 0\n#define CC_SURFACES_USE_LIGHT_MAP 0\n#define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\n#if CC_SURFACES_USE_TANGENT_SPACE\n in vec4 a_tangent;\n#endif\n#if CC_SURFACES_USE_VERTEX_COLOR\n in vec4 a_color;\n#endif\n#if CC_SURFACES_USE_SECOND_UV || CC_USE_LIGHTMAP\n in vec2 a_texCoord1;\n#endif\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n#endif\nout highp vec3 v_worldPos;\nout mediump vec4 v_normal;\nout vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n out lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n out mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n out mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n out mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n out
"frag": "\nprecision highp float;\n#define CC_SURFACES_USE_TANGENT_SPACE 0\n#define CC_SURFACES_USE_VERTEX_COLOR 0\n#define CC_SURFACES_USE_SECOND_UV 0\n#define CC_SURFACES_USE_LIGHT_MAP 0\n#define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nin highp vec3 v_worldPos;\nin mediump vec4 v_normal;\nin vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n in mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n in mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n in mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n in mediump vec4 v_shadowBiasAndProbeId;\n#endif\n#if CC_USE_FOG != 4 && !CC_USE_ACCURATE_FOG\n in mediump float v_fogFactor;\n#endif\n#if CC_SURFACES_TRANSFER_LOCAL_POS\n in highp vec4 v_localPos;\n#endif\n#if CC_SURFACES_TRANSFER_CLIP_POS\n in highp vec4 v_clipPos;\n#endif\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n in mediump vec4 v_sh_linear_const_r;\n in mediump vec4 v_sh_linear_const_g;\n in mediump vec4 v_sh_linear_const_b;\n #endif\n#endif\n#define FSInput_worldPos v_worldPos\n#define FSInput_worldNormal v_normal.xyz\n#define FSInput_faceSideSign v_normal.w\n#define FSInput_texcoord v_uv\n#if CC_SURFACES_USE_VERTEX_COLOR\n #define FSInput_vertexColor v_color\n#else\n #define FSInput_vertexColor vec4(1.0)\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n #define FSInput_worldTangent v_tangent.xyz\n #define FSInput_mirrorNormal v_tangent.w\n#else\n #define F
},
"glsl1": {
"vert": "\nprecision highp float;\n#define CC_SURFACES_USE_TANGENT_SPACE 0\n#define CC_SURFACES_USE_VERTEX_COLOR 0\n#define CC_SURFACES_USE_SECOND_UV 0\n#define CC_SURFACES_USE_LIGHT_MAP 0\n#define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\n#if CC_SURFACES_USE_TANGENT_SPACE\n attribute vec4 a_tangent;\n#endif\n#if CC_SURFACES_USE_VERTEX_COLOR\n attribute vec4 a_color;\n#endif\n#if CC_SURFACES_USE_SECOND_UV || CC_USE_LIGHTMAP\n attribute vec2 a_texCoord1;\n#endif\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_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n attribute vec4 a_localShadowBiasAndProbeId;\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\nvarying highp vec3 v_worldPos;\nvarying mediump vec4 v_normal;\nvarying vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n varying mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n varying mediump v
"frag": "\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives: enable\n#endif\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod: enable\n#endif\nprecision highp float;\n#define CC_SURFACES_USE_TANGENT_SPACE 0\n#define CC_SURFACES_USE_VERTEX_COLOR 0\n#define CC_SURFACES_USE_SECOND_UV 0\n#define CC_SURFACES_USE_LIGHT_MAP 0\n#define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#ifndef CC_SURFACES_USE_SECOND_UV\n #define CC_SURFACES_USE_SECOND_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TANGENT_SPACE\n #define CC_SURFACES_USE_TANGENT_SPACE 0\n#endif\n#ifndef CC_SURFACES_USE_VERTEX_COLOR\n #define CC_SURFACES_USE_VERTEX_COLOR 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_LOCAL_POS\n #define CC_SURFACES_TRANSFER_LOCAL_POS 0\n#endif\n#ifndef CC_SURFACES_TRANSFER_CLIP_POS\n #define CC_SURFACES_TRANSFER_CLIP_POS 0\n#endif\n#ifndef CC_SURFACES_USE_LIGHT_MAP\n #ifdef CC_USE_LIGHTMAP\n #define CC_SURFACES_USE_LIGHT_MAP CC_USE_LIGHTMAP\n #else\n #define CC_SURFACES_USE_LIGHT_MAP 0\n #endif\n#endif\n#ifndef CC_SURFACES_FLIP_UV\n #define CC_SURFACES_FLIP_UV 0\n#endif\n#ifndef CC_SURFACES_USE_TWO_SIDED\n #define CC_SURFACES_USE_TWO_SIDED 0\n#endif\n#ifndef CC_SURFACES_USE_REFLECTION_DENOISE\n #define CC_SURFACES_USE_REFLECTION_DENOISE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC\n #define CC_SURFACES_LIGHTING_ANISOTROPIC 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT\n #define CC_SURFACES_LIGHTING_ANISOTROPIC_ENVCONVOLUTION_COUNT 0\n#endif\n#ifndef CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING\n #define CC_SURFACES_USE_LEGACY_COMPATIBLE_LIGHTING 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_FRESNEL\n #define CC_SURFACES_LIGHTING_USE_FRESNEL 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR\n #define CC_SURFACES_LIGHTING_TRANSMIT_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE\n #define CC_SURFACES_LIGHTING_TRANSMIT_DIFFUSE 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT\n #define CC_SURFACES_LIGHTING_USE_SHADOWMAP_TRANSMIT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TRT\n #define CC_SURFACES_LIGHTING_TRT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR\n #define CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_CLEAR_COAT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_TT\n #define CC_SURFACES_LIGHTING_TT 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_SSS\n #define CC_SURFACES_LIGHTING_SSS 0\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #if CC_SURFACES_LIGHTING_TRT || CC_SURFACES_LIGHTING_DUAL_LOBE_SPECULAR || CC_SURFACES_LIGHTING_CLEAR_COAT\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 1\n #endif\n#endif\n#ifndef CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR\n #define CC_SURFACES_LIGHTING_2ND_LAYER_SPECULAR 0\n#endif\n#ifndef CC_SURFACES_ENABLE_DEBUG_VIEW\n #define CC_SURFACES_ENABLE_DEBUG_VIEW 1\n#endif\n#define CC_USE_SURFACE_SHADER 1\nvarying highp vec3 v_worldPos;\nvarying mediump vec4 v_normal;\nvarying vec2 v_uv;\n#if CC_SURFACES_USE_VERTEX_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_SURFACES_USE_TANGENT_SPACE\n varying mediump vec4 v_tangent;\n#endif\n#if CC_SURFACES_USE_SECOND_UV\n varying mediump vec2 v_uv1;\n#endif\n#if CC_USE_LIGHTMAP && !CC_FORWARD_ADD\n varying mediump vec3 v_luv;\n#endif\n#if CC_RECEIVE_SHADOW || CC_USE_REFLECTION_PROBE\n varying mediump vec4 v_shadowBiasAndProbeId;\n#endif\n#if CC_USE_FOG != 4 && !CC_USE_ACCURATE_FOG\n varying mediump float v_fogFactor;\n#endif\n#if CC_SURFACES_TRANSFER_LOCAL_POS\n varying highp vec4 v_localPos;\n#endif\n#if CC_SURFACES_TRANSFER_CLIP_POS\n varying highp vec4 v_clipPos;\n#endif\n#if CC_USE_LIGHT_PROBE\n #if USE_INSTANCING\n varying mediump vec4 v_sh_linear_const_r;\n varying mediump vec4 v_sh_linear_const_g;\n varying mediump vec4 v_sh_linear_const_b;\n #endif\n#endif\n#define FSInput_worldPos v_worldPos\n#define FSInput_worldNormal v_normal.xyz\n#define FSInput_faceSideSign v_normal.w\n#define FSInput_texcoord v_uv\n#if CC_SURFACES_USE_VE
},
"builtins": {
"globals": {
"blocks": [
{
"name": "CCGlobal",
"defines": []
},
{
"name": "CCCamera",
"defines": []
},
{
"name": "CCShadow",
"defines": []
},
{
"name": "CCCSM",
"defines": [
"CC_SUPPORT_CASCADED_SHADOW_MAP"
]
}
],
"samplerTextures": [
{
"name": "cc_environment",
"defines": []
},
{
"name": "cc_diffuseMap",
"defines": [
"CC_USE_IBL",
"CC_USE_DIFFUSEMAP"
]
},
{
"name": "cc_shadowMap",
"defines": [
"CC_RECEIVE_SHADOW"
]
},
{
"name": "cc_spotShadowMap",
"defines": [
"CC_RECEIVE_SHADOW"
]
}
],
"buffers": [],
"images": []
},
"locals": {
"blocks": [
{
"name": "CCLocal",
"defines": [
"!USE_INSTANCING"
]
},
{
"name": "CCMorph",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CCSkinningTexture",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
]
},
{
"name": "CCSkinningAnimation",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
]
},
{
"name": "CCSkinning",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"!CC_USE_REAL_TIME_JOINT_TEXTURE"
]
},
{
"name": "CCForwardLight",
"defines": [
"CC_FORWARD_ADD",
"CC_ENABLE_CLUSTERED_LIGHT_CULLING"
]
},
{
"name": "CCSH",
"defines": [
"CC_USE_LIGHT_PROBE",
"!USE_INSTANCING"
]
}
],
"samplerTextures": [
{
"name": "cc_PositionDisplacements",
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_POSITION"
]
},
{
"name": "cc_NormalDisplacements",
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_NORMAL"
]
},
{
"name": "cc_TangentDisplacements",
"defines": [
"CC_USE_MORPH",
"CC_MORPH_TARGET_HAS_TANGENT"
]
},
{
"name": "cc_jointTexture",
"defines": [
"CC_USE_SKINNING",
"CC_USE_BAKED_ANIMATION"
]
},
{
"name": "cc_realtimeJoint",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION",
"CC_USE_REAL_TIME_JOINT_TEXTURE"
]
},
{
"name": "cc_reflectionProbeCubemap",
"defines": [
"CC_USE_REFLECTION_PROBE"
]
},
{
"name": "cc_reflectionProbePlanarMap",
"defines": [
"CC_USE_REFLECTION_PROBE"
]
},
{
"name": "cc_reflectionProbeDataMap",
"defines": [
"CC_USE_REFLECTION_PROBE"
]
},
{
"name": "cc_lightingMap",
"defines": [
"CC_USE_LIGHTMAP",
"!CC_FORWARD_ADD"
]
}
],
"buffers": [],
"images": []
},
"statistics": {
"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 97,
"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 127
}
},
"defines": [
{
"name": "USE_INSTANCING",
"type": "boolean",
"defines": [],
"editor": {
"elevated": true
}
},
{
"name": "CC_USE_LIGHTMAP",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_SKINNING",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_BAKED_ANIMATION",
"type": "boolean",
"defines": [
"USE_INSTANCING"
]
},
{
"name": "CC_RECEIVE_SHADOW",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_REFLECTION_PROBE",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_LIGHT_PROBE",
"type": "boolean",
"defines": [],
"default": 0
},
{
"name": "CC_USE_MORPH",
"type": "boolean",
"defines": []
},
{
"name": "CC_FORWARD_ADD",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_FOG",
"type": "number",
"defines": [],
"range": [
0,
4
]
},
{
"name": "CC_USE_ACCURATE_FOG",
"type": "boolean",
"defines": [
"CC_USE_FOG"
]
},
{
"name": "CC_MORPH_TARGET_COUNT",
"type": "number",
"defines": [
"CC_USE_MORPH"
],
"range": [
2,
8
]
},
{
"name": "CC_MORPH_TARGET_HAS_POSITION",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_MORPH_TARGET_HAS_NORMAL",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_MORPH_TARGET_HAS_TANGENT",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_MORPH_PRECOMPUTED",
"type": "boolean",
"defines": [
"CC_USE_MORPH"
]
},
{
"name": "CC_USE_REAL_TIME_JOINT_TEXTURE",
"type": "boolean",
"defines": [
"CC_USE_SKINNING",
"!CC_USE_BAKED_ANIMATION"
]
},
{
"name": "CC_DISABLE_STRUCTURE_IN_FRAGMENT_SHADER",
"type": "number",
"defines": [],
"range": [
0,
1
]
},
{
"name": "CC_PIPELINE_TYPE",
"type": "number",
"defines": [],
"range": [
0,
1
]
},
{
"name": "CC_FORCE_FORWARD_SHADING",
"type": "boolean",
"defines": [
"CC_PIPELINE_TYPE"
]
},
{
"name": "CC_SUPPORT_CASCADED_SHADOW_MAP",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_IBL",
"type": "number",
"defines": [],
"range": [
0,
2
]
},
{
"name": "CC_USE_DIFFUSEMAP",
"type": "number",
"defines": [
"CC_USE_IBL"
],
"range": [
0,
2
]
},
{
"name": "USE_ALBEDO_MAP",
"type": "boolean",
"defines": []
},
{
"name": "ALBEDO_UV",
"type": "string",
"defines": [
"USE_ALBEDO_MAP"
],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "USE_NORMAL_MAP",
"type": "boolean",
"defines": []
},
{
"name": "NORMAL_UV",
"type": "string",
"defines": [
"USE_NORMAL_MAP"
],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "DEFAULT_UV",
"type": "string",
"defines": [],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "USE_PBR_MAP",
"type": "boolean",
"defines": []
},
{
"name": "USE_OCCLUSION_MAP",
"type": "boolean",
"defines": []
},
{
"name": "USE_EMISSIVE_MAP",
"type": "boolean",
"defines": []
},
{
"name": "EMISSIVE_UV",
"type": "string",
"defines": [
"USE_EMISSIVE_MAP"
],
"options": [
"v_uv",
"v_uv1"
]
},
{
"name": "USE_ALPHA_TEST",
"type": "boolean",
"defines": []
},
{
"name": "ALPHA_TEST_CHANNEL",
"type": "string",
"defines": [
"USE_ALPHA_TEST"
],
"options": [
"a",
"r"
]
},
{
"name": "USE_BACK_LIT",
"type": "boolean",
"defines": []
},
{
"name": "USE_PREINTEGRATED_SKIN",
"type": "boolean",
"defines": []
},
{
"name": "USE_VERTEX_COLOR",
"type": "boolean",
"defines": [
"USE_ALPHA_TEST"
]
},
{
"name": "CC_SHADOWMAP_USE_LINEAR_DEPTH",
"type": "boolean",
"defines": []
},
{
"name": "CC_SHADOWMAP_FORMAT",
"type": "number",
"defines": [],
"range": [
0,
3
]
}
],
"name": "advanced/simple-skin|shadow-caster-vs|shadow-caster-fs"
}
],
"combinations": [],
"hideInEditor": false
}