4477 行
346 KiB
JSON
4477 行
346 KiB
JSON
|
|
{
|
||
|
|
"__type__": "cc.EffectAsset",
|
||
|
|
"_name": "particles/builtin-particle-gpu",
|
||
|
|
"_objFlags": 0,
|
||
|
|
"__editorExtras__": {},
|
||
|
|
"_native": "",
|
||
|
|
"techniques": [
|
||
|
|
{
|
||
|
|
"name": "add",
|
||
|
|
"passes": [
|
||
|
|
{
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 1,
|
||
|
|
"blendSrcAlpha": 2,
|
||
|
|
"blendDstAlpha": 1
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"mainTexture": {
|
||
|
|
"value": "grey",
|
||
|
|
"type": 28
|
||
|
|
},
|
||
|
|
"mainTiling_Offset": {
|
||
|
|
"value": [
|
||
|
|
1,
|
||
|
|
1,
|
||
|
|
0,
|
||
|
|
0
|
||
|
|
],
|
||
|
|
"type": 16
|
||
|
|
},
|
||
|
|
"tintColor": {
|
||
|
|
"value": [
|
||
|
|
0.5,
|
||
|
|
0.5,
|
||
|
|
0.5,
|
||
|
|
0.5
|
||
|
|
],
|
||
|
|
"editor": {
|
||
|
|
"type": "color"
|
||
|
|
},
|
||
|
|
"type": 16
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"phase": "deferred-forward",
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 1,
|
||
|
|
"blendSrcAlpha": 2,
|
||
|
|
"blendDstAlpha": 1
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyIndex": 0,
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "alpha-blend",
|
||
|
|
"passes": [
|
||
|
|
{
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 4,
|
||
|
|
"blendSrcAlpha": 0,
|
||
|
|
"blendDstAlpha": 1,
|
||
|
|
"blendAlphaEq": 4
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"mainTexture": {
|
||
|
|
"value": "grey",
|
||
|
|
"type": 28
|
||
|
|
},
|
||
|
|
"mainTiling_Offset": {
|
||
|
|
"value": [
|
||
|
|
1,
|
||
|
|
1,
|
||
|
|
0,
|
||
|
|
0
|
||
|
|
],
|
||
|
|
"type": 16
|
||
|
|
},
|
||
|
|
"tintColor": {
|
||
|
|
"value": [
|
||
|
|
0.5,
|
||
|
|
0.5,
|
||
|
|
0.5,
|
||
|
|
0.5
|
||
|
|
],
|
||
|
|
"editor": {
|
||
|
|
"type": "color"
|
||
|
|
},
|
||
|
|
"type": 16
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"phase": "deferred-forward",
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 4,
|
||
|
|
"blendSrcAlpha": 0,
|
||
|
|
"blendDstAlpha": 1,
|
||
|
|
"blendAlphaEq": 4
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyIndex": 0,
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "add-multiply",
|
||
|
|
"passes": [
|
||
|
|
{
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 7,
|
||
|
|
"blendDst": 1,
|
||
|
|
"blendSrcAlpha": 0,
|
||
|
|
"blendDstAlpha": 3
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:multiply",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"mainTexture": {
|
||
|
|
"value": "grey",
|
||
|
|
"type": 28
|
||
|
|
},
|
||
|
|
"mainTiling_Offset": {
|
||
|
|
"value": [
|
||
|
|
1,
|
||
|
|
1,
|
||
|
|
0,
|
||
|
|
0
|
||
|
|
],
|
||
|
|
"type": 16
|
||
|
|
},
|
||
|
|
"tintColor": {
|
||
|
|
"value": [
|
||
|
|
0.5,
|
||
|
|
0.5,
|
||
|
|
0.5,
|
||
|
|
0.5
|
||
|
|
],
|
||
|
|
"editor": {
|
||
|
|
"type": "color"
|
||
|
|
},
|
||
|
|
"type": 16
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"phase": "deferred-forward",
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 7,
|
||
|
|
"blendDst": 1,
|
||
|
|
"blendSrcAlpha": 0,
|
||
|
|
"blendDstAlpha": 3
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyIndex": 0,
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:multiply",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "add-smooth",
|
||
|
|
"passes": [
|
||
|
|
{
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 1,
|
||
|
|
"blendSrcAlpha": 2,
|
||
|
|
"blendDstAlpha": 1
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:addSmooth",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"mainTexture": {
|
||
|
|
"value": "grey",
|
||
|
|
"type": 28
|
||
|
|
},
|
||
|
|
"mainTiling_Offset": {
|
||
|
|
"value": [
|
||
|
|
1,
|
||
|
|
1,
|
||
|
|
0,
|
||
|
|
0
|
||
|
|
],
|
||
|
|
"type": 16
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"phase": "deferred-forward",
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 1,
|
||
|
|
"blendSrcAlpha": 2,
|
||
|
|
"blendDstAlpha": 1
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyIndex": 0,
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:addSmooth",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "premultiply-blend",
|
||
|
|
"passes": [
|
||
|
|
{
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 4,
|
||
|
|
"blendSrcAlpha": 0,
|
||
|
|
"blendDstAlpha": 1,
|
||
|
|
"blendAlphaEq": 4
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:premultiplied",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
},
|
||
|
|
"properties": {
|
||
|
|
"mainTexture": {
|
||
|
|
"value": "grey",
|
||
|
|
"type": 28
|
||
|
|
},
|
||
|
|
"mainTiling_Offset": {
|
||
|
|
"value": [
|
||
|
|
1,
|
||
|
|
1,
|
||
|
|
0,
|
||
|
|
0
|
||
|
|
],
|
||
|
|
"type": 16
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"phase": "deferred-forward",
|
||
|
|
"rasterizerState": {
|
||
|
|
"cullMode": 0
|
||
|
|
},
|
||
|
|
"blendState": {
|
||
|
|
"targets": [
|
||
|
|
{
|
||
|
|
"blend": true,
|
||
|
|
"blendSrc": 2,
|
||
|
|
"blendDst": 4,
|
||
|
|
"blendSrcAlpha": 0,
|
||
|
|
"blendDstAlpha": 1,
|
||
|
|
"blendAlphaEq": 4
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"propertyIndex": 0,
|
||
|
|
"program": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:premultiplied",
|
||
|
|
"depthStencilState": {
|
||
|
|
"depthTest": true,
|
||
|
|
"depthWrite": false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"shaders": [
|
||
|
|
{
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FragConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "tintColor",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"binding": 9
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 16
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": [],
|
||
|
|
"attributes": [
|
||
|
|
{
|
||
|
|
"name": "a_position_starttime",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_dir_life",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rndSeed",
|
||
|
|
"defines": [],
|
||
|
|
"format": 11,
|
||
|
|
"location": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_fid",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_uv",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord3",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_normal",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color1",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 12
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"varyings": [
|
||
|
|
{
|
||
|
|
"name": "uv",
|
||
|
|
"type": 14,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "color",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"fragColors": [
|
||
|
|
{
|
||
|
|
"name": "cc_FragColor",
|
||
|
|
"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 "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData1",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData2",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"rate": 1,
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FragConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "tintColor",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"binding": 9
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 16
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"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
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"hash": 1710419800,
|
||
|
|
"glsl4": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(set = 0, binding = 0) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(set = 0, binding = 1) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nlayout(location = 0) in vec2 uv;\nlayout(location = 1) in vec4 color;\nlayout(set = 1, binding = 16) uniform sampler2D mainTexture;\nlayout(set = 1, binding = 9) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * CCSampleWithAlphaSeparated(mainTexture, uv);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"
|
||
|
|
},
|
||
|
|
"glsl3": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * CCSampleWithAlphaSeparated(mainTexture, uv);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"
|
||
|
|
},
|
||
|
|
"glsl1": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture2D(tex, uv).rgb, texture2D(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture2D(tex, uv);\n#endif\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * CCSampleWithAlphaSeparated(mainTexture, uv);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"
|
||
|
|
},
|
||
|
|
"builtins": {
|
||
|
|
"globals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCGlobal",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CCCamera",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"locals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCLocal",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"statistics": {
|
||
|
|
"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 71,
|
||
|
|
"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 43
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"defines": [
|
||
|
|
{
|
||
|
|
"name": "CC_RENDER_MODE",
|
||
|
|
"type": "number",
|
||
|
|
"defines": [],
|
||
|
|
"range": [
|
||
|
|
0,
|
||
|
|
4
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_INSTANCE_PARTICLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "USE_VK_SHADER",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "COLOR_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ROTATION_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SIZE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FORCE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VELOCITY_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TEXTURE_ANIMATION_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_WORLD_SPACE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_EMBEDDED_ALPHA",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:add"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FragConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "tintColor",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"binding": 9
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 16
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": [],
|
||
|
|
"attributes": [
|
||
|
|
{
|
||
|
|
"name": "a_position_starttime",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_dir_life",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rndSeed",
|
||
|
|
"defines": [],
|
||
|
|
"format": 11,
|
||
|
|
"location": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_fid",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_uv",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord3",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_normal",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color1",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 12
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"varyings": [
|
||
|
|
{
|
||
|
|
"name": "uv",
|
||
|
|
"type": 14,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "color",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"fragColors": [
|
||
|
|
{
|
||
|
|
"name": "cc_FragColor",
|
||
|
|
"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 "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData1",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData2",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"rate": 1,
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FragConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "tintColor",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"binding": 9
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 16
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"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
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"hash": 3791785268,
|
||
|
|
"glsl4": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(set = 0, binding = 0) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(set = 0, binding = 1) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nlayout(location = 0) in vec2 uv;\nlayout(location = 1) in vec4 color;\nlayout(set = 1, binding = 16) uniform sampler2D mainTexture;\nlayout(set = 1, binding = 9) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 multiply () {\n vec4 col;\n vec4 texColor = CCSampleWithAlphaSeparated(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"
|
||
|
|
},
|
||
|
|
"glsl3": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nlayout(std140) uniform FragConstants {\n vec4 tintColor;\n};\nvec4 multiply () {\n vec4 col;\n vec4 texColor = CCSampleWithAlphaSeparated(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"
|
||
|
|
},
|
||
|
|
"glsl1": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture2D(tex, uv).rgb, texture2D(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture2D(tex, uv);\n#endif\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\n uniform vec4 tintColor;\nvec4 multiply () {\n vec4 col;\n vec4 texColor = CCSampleWithAlphaSeparated(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"
|
||
|
|
},
|
||
|
|
"builtins": {
|
||
|
|
"globals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCGlobal",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CCCamera",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"locals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCLocal",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"statistics": {
|
||
|
|
"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 71,
|
||
|
|
"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 43
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"defines": [
|
||
|
|
{
|
||
|
|
"name": "CC_RENDER_MODE",
|
||
|
|
"type": "number",
|
||
|
|
"defines": [],
|
||
|
|
"range": [
|
||
|
|
0,
|
||
|
|
4
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_INSTANCE_PARTICLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "USE_VK_SHADER",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "COLOR_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ROTATION_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SIZE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FORCE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VELOCITY_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TEXTURE_ANIMATION_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_WORLD_SPACE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_EMBEDDED_ALPHA",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|tinted-fs:multiply"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": [],
|
||
|
|
"attributes": [
|
||
|
|
{
|
||
|
|
"name": "a_position_starttime",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_dir_life",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rndSeed",
|
||
|
|
"defines": [],
|
||
|
|
"format": 11,
|
||
|
|
"location": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_fid",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_uv",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord3",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_normal",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color1",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 12
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"varyings": [
|
||
|
|
{
|
||
|
|
"name": "uv",
|
||
|
|
"type": 14,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "color",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"fragColors": [
|
||
|
|
{
|
||
|
|
"name": "cc_FragColor",
|
||
|
|
"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 "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData1",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData2",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"rate": 1,
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"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
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"hash": 3957882398,
|
||
|
|
"glsl4": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(set = 0, binding = 0) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(set = 0, binding = 1) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nlayout(location = 0) in vec2 uv;\nlayout(location = 1) in vec4 color;\nlayout(set = 1, binding = 15) uniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * CCSampleWithAlphaSeparated(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"
|
||
|
|
},
|
||
|
|
"glsl3": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * CCSampleWithAlphaSeparated(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"
|
||
|
|
},
|
||
|
|
"glsl1": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture2D(tex, uv).rgb, texture2D(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture2D(tex, uv);\n#endif\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * CCSampleWithAlphaSeparated(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = addSmooth(); }"
|
||
|
|
},
|
||
|
|
"builtins": {
|
||
|
|
"globals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCGlobal",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CCCamera",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"locals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCLocal",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"statistics": {
|
||
|
|
"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 71,
|
||
|
|
"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 42
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"defines": [
|
||
|
|
{
|
||
|
|
"name": "CC_RENDER_MODE",
|
||
|
|
"type": "number",
|
||
|
|
"defines": [],
|
||
|
|
"range": [
|
||
|
|
0,
|
||
|
|
4
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_INSTANCE_PARTICLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "USE_VK_SHADER",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "COLOR_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ROTATION_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SIZE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FORCE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VELOCITY_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TEXTURE_ANIMATION_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_WORLD_SPACE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_EMBEDDED_ALPHA",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:addSmooth"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": [],
|
||
|
|
"attributes": [
|
||
|
|
{
|
||
|
|
"name": "a_position_starttime",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_dir_life",
|
||
|
|
"defines": [],
|
||
|
|
"format": 44,
|
||
|
|
"location": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rndSeed",
|
||
|
|
"defines": [],
|
||
|
|
"format": 11,
|
||
|
|
"location": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation_uv",
|
||
|
|
"defines": [
|
||
|
|
"!CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_size_fid",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_rotation",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_uv",
|
||
|
|
"defines": [
|
||
|
|
"CC_INSTANCE_PARTICLE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 8
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_texCoord3",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_normal",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 32,
|
||
|
|
"location": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "a_color1",
|
||
|
|
"defines": [
|
||
|
|
"CC_RENDER_MODE"
|
||
|
|
],
|
||
|
|
"format": 44,
|
||
|
|
"location": 12
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"varyings": [
|
||
|
|
{
|
||
|
|
"name": "uv",
|
||
|
|
"type": 14,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "color",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 17,
|
||
|
|
"location": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"fragColors": [
|
||
|
|
{
|
||
|
|
"name": "cc_FragColor",
|
||
|
|
"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 "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData1",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "cc_reflectionProbeBlendData2",
|
||
|
|
"typename": "vec4",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1,
|
||
|
|
"precision": "highp "
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"rate": 1,
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "Constants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "mainTiling_Offset",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "frameTile_velLenScale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "scale",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "nodeRotation",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 0
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SampleConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_sampleInfo",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TickConstants",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_worldRot",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_timeDelta",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 2
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ColorConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_color_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 3
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "RotationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_rotation_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 4
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SizeConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_size_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 5
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ForceConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_force_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_force_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 6
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VelocityConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_velocity_mode",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "u_velocity_space",
|
||
|
|
"type": 5,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 7
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "AnimationConstant",
|
||
|
|
"members": [
|
||
|
|
{
|
||
|
|
"name": "u_anim_info",
|
||
|
|
"type": 16,
|
||
|
|
"count": 1
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"binding": 8
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [
|
||
|
|
{
|
||
|
|
"name": "color_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"COLOR_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 9
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "rotation_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"ROTATION_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 10
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "size_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"SIZE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 11
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "force_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"FORCE_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 12
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "velocity_over_time_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"VELOCITY_OVER_TIME_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 13
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "texture_animation_tex0",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [
|
||
|
|
"TEXTURE_ANIMATION_MODULE_ENABLE"
|
||
|
|
],
|
||
|
|
"stageFlags": 1,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 14
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "mainTexture",
|
||
|
|
"type": 28,
|
||
|
|
"count": 1,
|
||
|
|
"defines": [],
|
||
|
|
"stageFlags": 16,
|
||
|
|
"sampleType": 0,
|
||
|
|
"binding": 15
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"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
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"samplers": [],
|
||
|
|
"textures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": [],
|
||
|
|
"subpassInputs": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"hash": 638666513,
|
||
|
|
"glsl4": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(set = 0, binding = 0) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(set = 0, binding = 1) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nlayout(location = 0) in vec2 uv;\nlayout(location = 1) in vec4 color;\nlayout(set = 1, binding = 15) uniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * CCSampleWithAlphaSeparated(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"
|
||
|
|
},
|
||
|
|
"glsl3": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nlayout(std140) uniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_nativeSize;\n mediump vec4 cc_probeInfo;\n mediump vec4 cc_debug_view_mode;\n};\nlayout(std140) uniform CCCamera {\n highp mat4 cc_matView;\n highp mat4 cc_matViewInv;\n highp mat4 cc_matProj;\n highp mat4 cc_matProjInv;\n highp mat4 cc_matViewProj;\n highp mat4 cc_matViewProjInv;\n highp vec4 cc_cameraPos;\n mediump vec4 cc_surfaceTransform;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_exposure;\n mediump vec4 cc_mainLitDir;\n mediump vec4 cc_mainLitColor;\n mediump vec4 cc_ambientSky;\n mediump vec4 cc_ambientGround;\n mediump vec4 cc_fogColor;\n mediump vec4 cc_fogBase;\n mediump vec4 cc_fogAdd;\n mediump vec4 cc_nearFar;\n mediump vec4 cc_viewPort;\n};\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture(tex, uv).rgb, texture(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture(tex, uv);\n#endif\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * CCSampleWithAlphaSeparated(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"
|
||
|
|
},
|
||
|
|
"glsl1": {
|
||
|
|
"vert": "\nprecision mediump float;\nvec4 quaternionFromAxis (vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler (vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT (vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS (vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply (vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat (inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace (vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nmat3 quatToMat3(vec4 q) {\n vec3 m0 = vec3(\n 1.0 - 2.0 * q.y * q.y - 2.0 * q.z * q.z,\n 2.0 * q.x * q.y + 2.0 * q.w * q.z,\n 2.0 * q.x * q
|
||
|
|
"frag": "\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvec4 CCSampleWithAlphaSeparated(sampler2D tex, vec2 uv) {\n#if CC_USE_EMBEDDED_ALPHA\n return vec4(texture2D(tex, uv).rgb, texture2D(tex, uv + vec2(0.0, 0.5)).r);\n#else\n return texture2D(tex, uv);\n#endif\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * CCSampleWithAlphaSeparated(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = premultiplied(); }"
|
||
|
|
},
|
||
|
|
"builtins": {
|
||
|
|
"globals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCGlobal",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CCCamera",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"locals": {
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"name": "CCLocal",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"samplerTextures": [],
|
||
|
|
"buffers": [],
|
||
|
|
"images": []
|
||
|
|
},
|
||
|
|
"statistics": {
|
||
|
|
"CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 71,
|
||
|
|
"CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 42
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"defines": [
|
||
|
|
{
|
||
|
|
"name": "CC_RENDER_MODE",
|
||
|
|
"type": "number",
|
||
|
|
"defines": [],
|
||
|
|
"range": [
|
||
|
|
0,
|
||
|
|
4
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_INSTANCE_PARTICLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "USE_VK_SHADER",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "COLOR_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "ROTATION_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "SIZE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "FORCE_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "VELOCITY_OVER_TIME_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "TEXTURE_ANIMATION_MODULE_ENABLE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_WORLD_SPACE",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "CC_USE_EMBEDDED_ALPHA",
|
||
|
|
"type": "boolean",
|
||
|
|
"defines": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "particles/builtin-particle-gpu|builtin/internal/particle-vs-gpu:gpvs_main|no-tint-fs:premultiplied"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"combinations": [],
|
||
|
|
"hideInEditor": false
|
||
|
|
}
|