d0efaeb0-746c-4032-9cf5-772a9681f89b.json 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. {
  2. "__type__": "cc.EffectAsset",
  3. "_name": "pipeline/post-process/dof1",
  4. "_objFlags": 0,
  5. "__editorExtras__": {},
  6. "_native": "",
  7. "techniques": [
  8. {
  9. "passes": [
  10. {
  11. "pass": "cc-dof-blur",
  12. "program": "pipeline/post-process/dof1|dof-vs|dof-blur-fs",
  13. "depthStencilState": {
  14. "depthTest": false,
  15. "depthWrite": false
  16. }
  17. },
  18. {
  19. "pass": "cc-dof-coc",
  20. "program": "pipeline/post-process/dof1|dof-vs|dof-coc-fs",
  21. "depthStencilState": {
  22. "depthTest": false,
  23. "depthWrite": false
  24. }
  25. }
  26. ]
  27. }
  28. ],
  29. "shaders": [
  30. {
  31. "blocks": [],
  32. "samplerTextures": [],
  33. "samplers": [],
  34. "textures": [],
  35. "buffers": [],
  36. "images": [],
  37. "subpassInputs": [],
  38. "attributes": [
  39. {
  40. "name": "a_position",
  41. "defines": [],
  42. "format": 32,
  43. "location": 0
  44. },
  45. {
  46. "name": "a_normal",
  47. "defines": [],
  48. "format": 32,
  49. "location": 1
  50. },
  51. {
  52. "name": "a_texCoord",
  53. "defines": [],
  54. "format": 21,
  55. "location": 2
  56. },
  57. {
  58. "name": "a_tangent",
  59. "defines": [],
  60. "format": 44,
  61. "location": 3
  62. },
  63. {
  64. "name": "a_joints",
  65. "defines": [
  66. "CC_USE_SKINNING"
  67. ],
  68. "location": 4
  69. },
  70. {
  71. "name": "a_weights",
  72. "defines": [
  73. "CC_USE_SKINNING"
  74. ],
  75. "format": 44,
  76. "location": 5
  77. },
  78. {
  79. "name": "a_jointAnimInfo",
  80. "defines": [
  81. "USE_INSTANCING",
  82. "CC_USE_BAKED_ANIMATION"
  83. ],
  84. "format": 44,
  85. "isInstanced": true,
  86. "location": 6
  87. },
  88. {
  89. "name": "a_matWorld0",
  90. "defines": [
  91. "USE_INSTANCING"
  92. ],
  93. "format": 44,
  94. "isInstanced": true,
  95. "location": 7
  96. },
  97. {
  98. "name": "a_matWorld1",
  99. "defines": [
  100. "USE_INSTANCING"
  101. ],
  102. "format": 44,
  103. "isInstanced": true,
  104. "location": 8
  105. },
  106. {
  107. "name": "a_matWorld2",
  108. "defines": [
  109. "USE_INSTANCING"
  110. ],
  111. "format": 44,
  112. "isInstanced": true,
  113. "location": 9
  114. },
  115. {
  116. "name": "a_lightingMapUVParam",
  117. "defines": [
  118. "USE_INSTANCING",
  119. "CC_USE_LIGHTMAP"
  120. ],
  121. "format": 44,
  122. "isInstanced": true,
  123. "location": 10
  124. },
  125. {
  126. "name": "a_localShadowBiasAndProbeId",
  127. "defines": [
  128. "USE_INSTANCING"
  129. ],
  130. "format": 44,
  131. "isInstanced": true,
  132. "location": 11
  133. },
  134. {
  135. "name": "a_reflectionProbeData",
  136. "defines": [
  137. "USE_INSTANCING",
  138. "CC_USE_REFLECTION_PROBE"
  139. ],
  140. "format": 44,
  141. "isInstanced": true,
  142. "location": 12
  143. },
  144. {
  145. "name": "a_sh_linear_const_r",
  146. "defines": [
  147. "USE_INSTANCING",
  148. "CC_USE_LIGHT_PROBE"
  149. ],
  150. "format": 44,
  151. "isInstanced": true,
  152. "location": 13
  153. },
  154. {
  155. "name": "a_sh_linear_const_g",
  156. "defines": [
  157. "USE_INSTANCING",
  158. "CC_USE_LIGHT_PROBE"
  159. ],
  160. "format": 44,
  161. "isInstanced": true,
  162. "location": 14
  163. },
  164. {
  165. "name": "a_sh_linear_const_b",
  166. "defines": [
  167. "USE_INSTANCING",
  168. "CC_USE_LIGHT_PROBE"
  169. ],
  170. "format": 44,
  171. "isInstanced": true,
  172. "location": 15
  173. },
  174. {
  175. "name": "a_vertexId",
  176. "defines": [
  177. "CC_USE_MORPH"
  178. ],
  179. "format": 11,
  180. "location": 16
  181. }
  182. ],
  183. "varyings": [
  184. {
  185. "name": "v_uv",
  186. "type": 14,
  187. "count": 1,
  188. "defines": [],
  189. "stageFlags": 17,
  190. "location": 0
  191. }
  192. ],
  193. "fragColors": [
  194. {
  195. "name": "fragColor",
  196. "typename": "vec4",
  197. "type": 16,
  198. "count": 1,
  199. "defines": [],
  200. "stageFlags": 16,
  201. "location": 0
  202. }
  203. ],
  204. "descriptors": [
  205. {
  206. "rate": 0,
  207. "blocks": [],
  208. "samplerTextures": [],
  209. "samplers": [],
  210. "textures": [],
  211. "buffers": [],
  212. "images": [],
  213. "subpassInputs": []
  214. },
  215. {
  216. "rate": 1,
  217. "blocks": [],
  218. "samplerTextures": [],
  219. "samplers": [],
  220. "textures": [],
  221. "buffers": [],
  222. "images": [],
  223. "subpassInputs": []
  224. },
  225. {
  226. "rate": 2,
  227. "blocks": [],
  228. "samplerTextures": [],
  229. "samplers": [],
  230. "textures": [],
  231. "buffers": [],
  232. "images": [],
  233. "subpassInputs": []
  234. },
  235. {
  236. "rate": 3,
  237. "blocks": [
  238. {
  239. "name": "Pipeline",
  240. "members": [
  241. {
  242. "name": "g_platform",
  243. "type": 16,
  244. "count": 1
  245. }
  246. ],
  247. "defines": [],
  248. "stageFlags": 1,
  249. "binding": 0
  250. },
  251. {
  252. "name": "DofUBO",
  253. "members": [
  254. {
  255. "name": "blurParams",
  256. "type": 16,
  257. "count": 1
  258. },
  259. {
  260. "name": "mainTexTexelSize",
  261. "type": 16,
  262. "count": 1
  263. }
  264. ],
  265. "defines": [],
  266. "stageFlags": 16,
  267. "binding": 1
  268. }
  269. ],
  270. "samplerTextures": [
  271. {
  272. "name": "screenTex",
  273. "type": 28,
  274. "count": 1,
  275. "defines": [],
  276. "stageFlags": 16,
  277. "binding": 2
  278. }
  279. ],
  280. "samplers": [],
  281. "textures": [],
  282. "buffers": [],
  283. "images": [],
  284. "subpassInputs": []
  285. }
  286. ],
  287. "hash": 2467028055,
  288. "glsl4": {
  289. "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nlayout(location = 0) in vec3 a_position;\nlayout(location = 1) in vec3 a_normal;\nlayout(location = 2) in vec2 a_texCoord;\nlayout(location = 3) in vec4 a_tangent;\n#if CC_USE_SKINNING\n layout(location = 4) in u32vec4 a_joints;\n layout(location = 5) in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n layout(location = 6) in highp vec4 a_jointAnimInfo;\n #endif\n layout(location = 7) in vec4 a_matWorld0;\n layout(location = 8) in vec4 a_matWorld1;\n layout(location = 9) in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n layout(location = 10) in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n layout(location = 11) in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n layout(location = 12) in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n layout(location = 13) in vec4 a_sh_linear_const_r;\n layout(location = 14) in vec4 a_sh_linear_const_g;\n layout(location = 15) in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n#endif\nlayout(set = 1, binding = 0) uniform Pipeline {\n vec4 g_platform;\n};\nlayout(location = 0) out vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}",
  290. "frag": "\nprecision highp float;\nlayout(set = 1, binding = 1) uniform DofUBO {\n vec4 blurParams;\n vec4 mainTexTexelSize;\n};\nlayout(location = 0)out vec4 fragColor;\nlayout(set = 1, binding = 2) uniform sampler2D screenTex;\nlayout(location = 0) in vec2 v_uv;\nvec4 blur(sampler2D image, vec2 uv) {\n vec4 color = vec4(0.0);\n vec2 resolution = mainTexTexelSize.zw;\n vec2 off1 = vec2(1.411764705882353);\n vec2 off2 = vec2(3.2941176470588234);\n vec2 off3 = vec2(5.176470588235294);\n color += texture(image, uv) * 0.1964825501511404;\n color += texture(image, uv + (off1 / resolution)) * 0.2969069646728344;\n color += texture(image, uv - (off1 / resolution)) * 0.2969069646728344;\n color += texture(image, uv + (off2 / resolution)) * 0.09447039785044732;\n color += texture(image, uv - (off2 / resolution)) * 0.09447039785044732;\n color += texture(image, uv + (off3 / resolution)) * 0.010381362401148057;\n color += texture(image, uv - (off3 / resolution)) * 0.010381362401148057;\n return color;\n}\nvoid main() {\n vec4 pixelOffset = vec4(-1.0, - 1.0, 1.0, 1.0);\n vec4 offsets = mainTexTexelSize.xyxy * pixelOffset * blurParams.z;\n vec4 outColor = blur(screenTex, v_uv + offsets.xy);\n outColor += blur(screenTex, v_uv + offsets.zy);\n outColor += blur(screenTex, v_uv + offsets.xw);\n outColor += blur(screenTex, v_uv + offsets.zw);\n fragColor = outColor * blurParams.w * 0.25;\n}"
  291. },
  292. "glsl3": {
  293. "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n#endif\nlayout(std140) uniform Pipeline {\n vec4 g_platform;\n};\nout vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}",
  294. "frag": "\nprecision highp float;\nlayout(std140) uniform DofUBO {\n vec4 blurParams;\n vec4 mainTexTexelSize;\n};\nlayout(location = 0)out vec4 fragColor;\nuniform sampler2D screenTex;\nin vec2 v_uv;\nvec4 blur(sampler2D image, vec2 uv) {\n vec4 color = vec4(0.0);\n vec2 resolution = mainTexTexelSize.zw;\n vec2 off1 = vec2(1.411764705882353);\n vec2 off2 = vec2(3.2941176470588234);\n vec2 off3 = vec2(5.176470588235294);\n color += texture(image, uv) * 0.1964825501511404;\n color += texture(image, uv + (off1 / resolution)) * 0.2969069646728344;\n color += texture(image, uv - (off1 / resolution)) * 0.2969069646728344;\n color += texture(image, uv + (off2 / resolution)) * 0.09447039785044732;\n color += texture(image, uv - (off2 / resolution)) * 0.09447039785044732;\n color += texture(image, uv + (off3 / resolution)) * 0.010381362401148057;\n color += texture(image, uv - (off3 / resolution)) * 0.010381362401148057;\n return color;\n}\nvoid main() {\n vec4 pixelOffset = vec4(-1.0, - 1.0, 1.0, 1.0);\n vec4 offsets = mainTexTexelSize.xyxy * pixelOffset * blurParams.z;\n vec4 outColor = blur(screenTex, v_uv + offsets.xy);\n outColor += blur(screenTex, v_uv + offsets.zy);\n outColor += blur(screenTex, v_uv + offsets.xw);\n outColor += blur(screenTex, v_uv + offsets.zw);\n fragColor = outColor * blurParams.w * 0.25;\n}"
  295. },
  296. "glsl1": {
  297. "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n#endif\n uniform vec4 g_platform;\nvarying vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}",
  298. "frag": "\nprecision highp float;\n uniform vec4 blurParams;\n uniform vec4 mainTexTexelSize;\nuniform sampler2D screenTex;\nvarying vec2 v_uv;\nvec4 blur(sampler2D image, vec2 uv) {\n vec4 color = vec4(0.0);\n vec2 resolution = mainTexTexelSize.zw;\n vec2 off1 = vec2(1.411764705882353);\n vec2 off2 = vec2(3.2941176470588234);\n vec2 off3 = vec2(5.176470588235294);\n color += texture2D(image, uv) * 0.1964825501511404;\n color += texture2D(image, uv + (off1 / resolution)) * 0.2969069646728344;\n color += texture2D(image, uv - (off1 / resolution)) * 0.2969069646728344;\n color += texture2D(image, uv + (off2 / resolution)) * 0.09447039785044732;\n color += texture2D(image, uv - (off2 / resolution)) * 0.09447039785044732;\n color += texture2D(image, uv + (off3 / resolution)) * 0.010381362401148057;\n color += texture2D(image, uv - (off3 / resolution)) * 0.010381362401148057;\n return color;\n}\nvoid main() {\n vec4 pixelOffset = vec4(-1.0, - 1.0, 1.0, 1.0);\n vec4 offsets = mainTexTexelSize.xyxy * pixelOffset * blurParams.z;\n vec4 outColor = blur(screenTex, v_uv + offsets.xy);\n outColor += blur(screenTex, v_uv + offsets.zy);\n outColor += blur(screenTex, v_uv + offsets.xw);\n outColor += blur(screenTex, v_uv + offsets.zw);\n gl_FragColor = outColor * blurParams.w * 0.25;\n}"
  299. },
  300. "builtins": {
  301. "globals": {
  302. "blocks": [],
  303. "samplerTextures": [],
  304. "buffers": [],
  305. "images": []
  306. },
  307. "locals": {
  308. "blocks": [],
  309. "samplerTextures": [],
  310. "buffers": [],
  311. "images": []
  312. },
  313. "statistics": {
  314. "CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 1,
  315. "CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 2
  316. }
  317. },
  318. "defines": [
  319. {
  320. "name": "USE_INSTANCING",
  321. "type": "boolean",
  322. "defines": [],
  323. "editor": {
  324. "elevated": true
  325. }
  326. },
  327. {
  328. "name": "CC_USE_SKINNING",
  329. "type": "boolean",
  330. "defines": []
  331. },
  332. {
  333. "name": "CC_USE_BAKED_ANIMATION",
  334. "type": "boolean",
  335. "defines": [
  336. "USE_INSTANCING"
  337. ]
  338. },
  339. {
  340. "name": "CC_USE_LIGHTMAP",
  341. "type": "boolean",
  342. "defines": [
  343. "USE_INSTANCING"
  344. ]
  345. },
  346. {
  347. "name": "CC_USE_REFLECTION_PROBE",
  348. "type": "boolean",
  349. "defines": [
  350. "USE_INSTANCING"
  351. ]
  352. },
  353. {
  354. "name": "CC_RECEIVE_SHADOW",
  355. "type": "boolean",
  356. "defines": [
  357. "USE_INSTANCING"
  358. ]
  359. },
  360. {
  361. "name": "CC_USE_LIGHT_PROBE",
  362. "type": "boolean",
  363. "defines": [
  364. "USE_INSTANCING"
  365. ]
  366. },
  367. {
  368. "name": "CC_USE_MORPH",
  369. "type": "boolean",
  370. "defines": []
  371. }
  372. ],
  373. "name": "pipeline/post-process/dof1|dof-vs|dof-blur-fs"
  374. },
  375. {
  376. "blocks": [],
  377. "samplerTextures": [],
  378. "samplers": [],
  379. "textures": [],
  380. "buffers": [],
  381. "images": [],
  382. "subpassInputs": [],
  383. "attributes": [
  384. {
  385. "name": "a_position",
  386. "defines": [],
  387. "format": 32,
  388. "location": 0
  389. },
  390. {
  391. "name": "a_normal",
  392. "defines": [],
  393. "format": 32,
  394. "location": 1
  395. },
  396. {
  397. "name": "a_texCoord",
  398. "defines": [],
  399. "format": 21,
  400. "location": 2
  401. },
  402. {
  403. "name": "a_tangent",
  404. "defines": [],
  405. "format": 44,
  406. "location": 3
  407. },
  408. {
  409. "name": "a_joints",
  410. "defines": [
  411. "CC_USE_SKINNING"
  412. ],
  413. "location": 4
  414. },
  415. {
  416. "name": "a_weights",
  417. "defines": [
  418. "CC_USE_SKINNING"
  419. ],
  420. "format": 44,
  421. "location": 5
  422. },
  423. {
  424. "name": "a_jointAnimInfo",
  425. "defines": [
  426. "USE_INSTANCING",
  427. "CC_USE_BAKED_ANIMATION"
  428. ],
  429. "format": 44,
  430. "isInstanced": true,
  431. "location": 6
  432. },
  433. {
  434. "name": "a_matWorld0",
  435. "defines": [
  436. "USE_INSTANCING"
  437. ],
  438. "format": 44,
  439. "isInstanced": true,
  440. "location": 7
  441. },
  442. {
  443. "name": "a_matWorld1",
  444. "defines": [
  445. "USE_INSTANCING"
  446. ],
  447. "format": 44,
  448. "isInstanced": true,
  449. "location": 8
  450. },
  451. {
  452. "name": "a_matWorld2",
  453. "defines": [
  454. "USE_INSTANCING"
  455. ],
  456. "format": 44,
  457. "isInstanced": true,
  458. "location": 9
  459. },
  460. {
  461. "name": "a_lightingMapUVParam",
  462. "defines": [
  463. "USE_INSTANCING",
  464. "CC_USE_LIGHTMAP"
  465. ],
  466. "format": 44,
  467. "isInstanced": true,
  468. "location": 10
  469. },
  470. {
  471. "name": "a_localShadowBiasAndProbeId",
  472. "defines": [
  473. "USE_INSTANCING"
  474. ],
  475. "format": 44,
  476. "isInstanced": true,
  477. "location": 11
  478. },
  479. {
  480. "name": "a_reflectionProbeData",
  481. "defines": [
  482. "USE_INSTANCING",
  483. "CC_USE_REFLECTION_PROBE"
  484. ],
  485. "format": 44,
  486. "isInstanced": true,
  487. "location": 12
  488. },
  489. {
  490. "name": "a_sh_linear_const_r",
  491. "defines": [
  492. "USE_INSTANCING",
  493. "CC_USE_LIGHT_PROBE"
  494. ],
  495. "format": 44,
  496. "isInstanced": true,
  497. "location": 13
  498. },
  499. {
  500. "name": "a_sh_linear_const_g",
  501. "defines": [
  502. "USE_INSTANCING",
  503. "CC_USE_LIGHT_PROBE"
  504. ],
  505. "format": 44,
  506. "isInstanced": true,
  507. "location": 14
  508. },
  509. {
  510. "name": "a_sh_linear_const_b",
  511. "defines": [
  512. "USE_INSTANCING",
  513. "CC_USE_LIGHT_PROBE"
  514. ],
  515. "format": 44,
  516. "isInstanced": true,
  517. "location": 15
  518. },
  519. {
  520. "name": "a_vertexId",
  521. "defines": [
  522. "CC_USE_MORPH"
  523. ],
  524. "format": 11,
  525. "location": 16
  526. }
  527. ],
  528. "varyings": [
  529. {
  530. "name": "v_uv",
  531. "type": 14,
  532. "count": 1,
  533. "defines": [],
  534. "stageFlags": 17,
  535. "location": 0
  536. }
  537. ],
  538. "fragColors": [
  539. {
  540. "name": "fragColor",
  541. "typename": "vec4",
  542. "type": 16,
  543. "count": 1,
  544. "defines": [],
  545. "stageFlags": 16,
  546. "location": 0
  547. }
  548. ],
  549. "descriptors": [
  550. {
  551. "rate": 0,
  552. "blocks": [],
  553. "samplerTextures": [],
  554. "samplers": [],
  555. "textures": [],
  556. "buffers": [],
  557. "images": [],
  558. "subpassInputs": []
  559. },
  560. {
  561. "rate": 1,
  562. "blocks": [],
  563. "samplerTextures": [],
  564. "samplers": [],
  565. "textures": [],
  566. "buffers": [],
  567. "images": [],
  568. "subpassInputs": []
  569. },
  570. {
  571. "rate": 2,
  572. "blocks": [],
  573. "samplerTextures": [],
  574. "samplers": [],
  575. "textures": [],
  576. "buffers": [],
  577. "images": [],
  578. "subpassInputs": []
  579. },
  580. {
  581. "rate": 3,
  582. "blocks": [
  583. {
  584. "name": "Pipeline",
  585. "members": [
  586. {
  587. "name": "g_platform",
  588. "type": 16,
  589. "count": 1
  590. }
  591. ],
  592. "defines": [],
  593. "stageFlags": 1,
  594. "binding": 0
  595. },
  596. {
  597. "name": "DofCocUBO",
  598. "members": [
  599. {
  600. "name": "proj",
  601. "type": 25,
  602. "count": 1
  603. },
  604. {
  605. "name": "invProj",
  606. "type": 25,
  607. "count": 1
  608. },
  609. {
  610. "name": "viewMatInv",
  611. "type": 25,
  612. "count": 1
  613. },
  614. {
  615. "name": "focus",
  616. "type": 16,
  617. "count": 1
  618. },
  619. {
  620. "name": "cocParams",
  621. "type": 16,
  622. "count": 1
  623. }
  624. ],
  625. "defines": [],
  626. "stageFlags": 16,
  627. "binding": 1
  628. }
  629. ],
  630. "samplerTextures": [
  631. {
  632. "name": "DepthTex",
  633. "type": 28,
  634. "count": 1,
  635. "defines": [],
  636. "stageFlags": 16,
  637. "binding": 2
  638. },
  639. {
  640. "name": "screenTex",
  641. "type": 28,
  642. "count": 1,
  643. "defines": [],
  644. "stageFlags": 16,
  645. "binding": 3
  646. },
  647. {
  648. "name": "colorTex",
  649. "type": 28,
  650. "count": 1,
  651. "defines": [],
  652. "stageFlags": 16,
  653. "binding": 4
  654. }
  655. ],
  656. "samplers": [],
  657. "textures": [],
  658. "buffers": [],
  659. "images": [],
  660. "subpassInputs": []
  661. }
  662. ],
  663. "hash": 968577339,
  664. "glsl4": {
  665. "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nlayout(location = 0) in vec3 a_position;\nlayout(location = 1) in vec3 a_normal;\nlayout(location = 2) in vec2 a_texCoord;\nlayout(location = 3) in vec4 a_tangent;\n#if CC_USE_SKINNING\n layout(location = 4) in u32vec4 a_joints;\n layout(location = 5) in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n layout(location = 6) in highp vec4 a_jointAnimInfo;\n #endif\n layout(location = 7) in vec4 a_matWorld0;\n layout(location = 8) in vec4 a_matWorld1;\n layout(location = 9) in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n layout(location = 10) in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n layout(location = 11) in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n layout(location = 12) in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n layout(location = 13) in vec4 a_sh_linear_const_r;\n layout(location = 14) in vec4 a_sh_linear_const_g;\n layout(location = 15) in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n#endif\nlayout(set = 1, binding = 0) uniform Pipeline {\n vec4 g_platform;\n};\nlayout(location = 0) out vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}",
  666. "frag": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nlayout(set = 1, binding = 2) uniform sampler2D DepthTex;\nfloat GetDepthFromTex(vec2 uv) {\n return texture(DepthTex, saturate(uv)).r;\n}\nlayout(location = 0)out vec4 fragColor;\nlayout(location = 0) in vec2 v_uv;\nlayout(set = 1, binding = 3) uniform sampler2D screenTex;\nlayout(set = 1, binding = 4) uniform sampler2D colorTex;\nlayout(set = 1, binding = 1) uniform DofCocUBO {\n mat4 proj;\n mat4 invProj;\n mat4 viewMatInv;\n vec4 focus;\n vec4 cocParams;\n};\nvoid main() {\n vec4 blurPixel = texture(colorTex, v_uv);\n vec4 screenPixel = texture(screenTex, v_uv);\n float depth = GetDepthFromTex(v_uv);\n vec4 screenPos = vec4(v_uv.x * 2.0 - 1.0, v_uv.y * 2.0 - 1.0, depth, 1.0);\n vec4 viewPos = invProj * screenPos;\n viewPos /= viewPos.w;\n vec4 worldPos = viewMatInv * viewPos;\n float blur =\n smoothstep\n (cocParams.x\n , cocParams.y\n , length(worldPos - vec4(focus.xyz, 1.0))\n );\n fragColor = mix(screenPixel, blurPixel, blur);\n}"
  667. },
  668. "glsl3": {
  669. "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nin vec3 a_position;\nin vec3 a_normal;\nin vec2 a_texCoord;\nin vec4 a_tangent;\n#if CC_USE_SKINNING\n in vec4 a_joints;\n in vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n in highp vec4 a_jointAnimInfo;\n #endif\n in vec4 a_matWorld0;\n in vec4 a_matWorld1;\n in vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n in vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n in vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n in vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n in vec4 a_sh_linear_const_r;\n in vec4 a_sh_linear_const_g;\n in vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n in float a_vertexId;\n#endif\nlayout(std140) uniform Pipeline {\n vec4 g_platform;\n};\nout vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}",
  670. "frag": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nuniform sampler2D DepthTex;\nfloat GetDepthFromTex(vec2 uv) {\n return texture(DepthTex, saturate(uv)).r;\n}\nlayout(location = 0)out vec4 fragColor;\nin vec2 v_uv;\nuniform sampler2D screenTex;\nuniform sampler2D colorTex;\nlayout(std140) uniform DofCocUBO {\n mat4 proj;\n mat4 invProj;\n mat4 viewMatInv;\n vec4 focus;\n vec4 cocParams;\n};\nvoid main() {\n vec4 blurPixel = texture(colorTex, v_uv);\n vec4 screenPixel = texture(screenTex, v_uv);\n float depth = GetDepthFromTex(v_uv);\n depth = 2.0 * depth - 1.0;\n vec4 screenPos = vec4(v_uv.x * 2.0 - 1.0, v_uv.y * 2.0 - 1.0, depth, 1.0);\n vec4 viewPos = invProj * screenPos;\n viewPos /= viewPos.w;\n vec4 worldPos = viewMatInv * viewPos;\n float blur =\n smoothstep\n (cocParams.x\n , cocParams.y\n , length(worldPos - vec4(focus.xyz, 1.0))\n );\n fragColor = mix(screenPixel, blurPixel, blur);\n}"
  671. },
  672. "glsl1": {
  673. "vert": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\nstruct StandardVertInput {\n highp vec4 position;\n vec3 normal;\n vec4 tangent;\n};\nattribute vec3 a_position;\nattribute vec3 a_normal;\nattribute vec2 a_texCoord;\nattribute vec4 a_tangent;\n#if CC_USE_SKINNING\n attribute vec4 a_joints;\n attribute vec4 a_weights;\n#endif\n#if USE_INSTANCING\n #if CC_USE_BAKED_ANIMATION\n attribute highp vec4 a_jointAnimInfo;\n #endif\n attribute vec4 a_matWorld0;\n attribute vec4 a_matWorld1;\n attribute vec4 a_matWorld2;\n #if CC_USE_LIGHTMAP\n attribute vec4 a_lightingMapUVParam;\n #endif\n #if CC_USE_REFLECTION_PROBE || CC_RECEIVE_SHADOW\n #if CC_RECEIVE_SHADOW\n #endif\n attribute vec4 a_localShadowBiasAndProbeId;\n #endif\n #if CC_USE_REFLECTION_PROBE\n attribute vec4 a_reflectionProbeData;\n #endif\n #if CC_USE_LIGHT_PROBE\n attribute vec4 a_sh_linear_const_r;\n attribute vec4 a_sh_linear_const_g;\n attribute vec4 a_sh_linear_const_b;\n #endif\n#endif\n#if CC_USE_MORPH\n attribute float a_vertexId;\n#endif\n uniform vec4 g_platform;\nvarying vec2 v_uv;\nvoid main () {\n StandardVertInput In;\n In.position = vec4(a_position, 1.0);\n In.normal = a_normal;\n In.tangent = a_tangent;\n (In.position).y = g_platform.w == 0.0 ? -(In.position).y : (In.position).y;\n gl_Position = In.position;\n v_uv = a_texCoord;\n}",
  674. "frag": "\nprecision highp float;\n#define QUATER_PI 0.78539816340\n#define HALF_PI 1.57079632679\n#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI4 12.5663706144\n#define INV_QUATER_PI 1.27323954474\n#define INV_HALF_PI 0.63661977237\n#define INV_PI 0.31830988618\n#define INV_PI2 0.15915494309\n#define INV_PI4 0.07957747155\n#define EPSILON 1e-6\n#define EPSILON_LOWP 1e-4\n#define LOG2 1.442695\n#define EXP_VALUE 2.71828183\n#define FP_MAX 65504.0\n#define FP_SCALE 0.0009765625\n#define FP_SCALE_INV 1024.0\n#define GRAY_VECTOR vec3(0.299, 0.587, 0.114)\nfloat saturate(float value) { return clamp(value, 0.0, 1.0); }\nvec2 saturate(vec2 value) { return clamp(value, vec2(0.0), vec2(1.0)); }\nvec3 saturate(vec3 value) { return clamp(value, vec3(0.0), vec3(1.0)); }\nvec4 saturate(vec4 value) { return clamp(value, vec4(0.0), vec4(1.0)); }\n#define LIGHT_MAP_TYPE_DISABLED 0\n#define LIGHT_MAP_TYPE_ALL_IN_ONE 1\n#define LIGHT_MAP_TYPE_INDIRECT_OCCLUSION 2\n#define REFLECTION_PROBE_TYPE_NONE 0\n#define REFLECTION_PROBE_TYPE_CUBE 1\n#define REFLECTION_PROBE_TYPE_PLANAR 2\n#define REFLECTION_PROBE_TYPE_BLEND 3\n#define REFLECTION_PROBE_TYPE_BLEND_AND_SKYBOX 4\n#define LIGHT_TYPE_DIRECTIONAL 0.0\n#define LIGHT_TYPE_SPHERE 1.0\n#define LIGHT_TYPE_SPOT 2.0\n#define LIGHT_TYPE_POINT 3.0\n#define LIGHT_TYPE_RANGED_DIRECTIONAL 4.0\n#define IS_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_DIRECTIONAL)) < EPSILON_LOWP)\n#define IS_SPHERE_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPHERE)) < EPSILON_LOWP)\n#define IS_SPOT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_SPOT)) < EPSILON_LOWP)\n#define IS_POINT_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_POINT)) < EPSILON_LOWP)\n#define IS_RANGED_DIRECTIONAL_LIGHT(light_type) (abs(float(light_type) - float(LIGHT_TYPE_RANGED_DIRECTIONAL)) < EPSILON_LOWP)\n#define TONE_MAPPING_ACES 0\n#define TONE_MAPPING_LINEAR 1\n#define SURFACES_MAX_TRANSMIT_DEPTH_VALUE 999999.0\n#ifndef CC_SURFACES_DEBUG_VIEW_SINGLE\n #define CC_SURFACES_DEBUG_VIEW_SINGLE 1\n#endif\n#ifndef CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC\n #define CC_SURFACES_DEBUG_VIEW_COMPOSITE_AND_MISC 2\n#endif\n#if defined(CC_USE_METAL) || defined(CC_USE_WGPU)\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y) y = -y\n#else\n#define CC_HANDLE_SAMPLE_NDC_FLIP_STATIC(y)\n#endif\nuniform sampler2D DepthTex;\nfloat GetDepthFromTex(vec2 uv) {\n return texture2D(DepthTex, saturate(uv)).r;\n}\nvarying vec2 v_uv;\nuniform sampler2D screenTex;\nuniform sampler2D colorTex;\n uniform mat4 invProj;\n uniform mat4 viewMatInv;\n uniform vec4 focus;\n uniform vec4 cocParams;\nvoid main() {\n vec4 blurPixel = texture2D(colorTex, v_uv);\n vec4 screenPixel = texture2D(screenTex, v_uv);\n float depth = GetDepthFromTex(v_uv);\n depth = 2.0 * depth - 1.0;\n vec4 screenPos = vec4(v_uv.x * 2.0 - 1.0, v_uv.y * 2.0 - 1.0, depth, 1.0);\n vec4 viewPos = invProj * screenPos;\n viewPos /= viewPos.w;\n vec4 worldPos = viewMatInv * viewPos;\n float blur =\n smoothstep\n (cocParams.x\n , cocParams.y\n , length(worldPos - vec4(focus.xyz, 1.0))\n );\n gl_FragColor = mix(screenPixel, blurPixel, blur);\n}"
  675. },
  676. "builtins": {
  677. "globals": {
  678. "blocks": [],
  679. "samplerTextures": [],
  680. "buffers": [],
  681. "images": []
  682. },
  683. "locals": {
  684. "blocks": [],
  685. "samplerTextures": [],
  686. "buffers": [],
  687. "images": []
  688. },
  689. "statistics": {
  690. "CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 1,
  691. "CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 14
  692. }
  693. },
  694. "defines": [
  695. {
  696. "name": "USE_INSTANCING",
  697. "type": "boolean",
  698. "defines": [],
  699. "editor": {
  700. "elevated": true
  701. }
  702. },
  703. {
  704. "name": "CC_USE_SKINNING",
  705. "type": "boolean",
  706. "defines": []
  707. },
  708. {
  709. "name": "CC_USE_BAKED_ANIMATION",
  710. "type": "boolean",
  711. "defines": [
  712. "USE_INSTANCING"
  713. ]
  714. },
  715. {
  716. "name": "CC_USE_LIGHTMAP",
  717. "type": "boolean",
  718. "defines": [
  719. "USE_INSTANCING"
  720. ]
  721. },
  722. {
  723. "name": "CC_USE_REFLECTION_PROBE",
  724. "type": "boolean",
  725. "defines": [
  726. "USE_INSTANCING"
  727. ]
  728. },
  729. {
  730. "name": "CC_RECEIVE_SHADOW",
  731. "type": "boolean",
  732. "defines": [
  733. "USE_INSTANCING"
  734. ]
  735. },
  736. {
  737. "name": "CC_USE_LIGHT_PROBE",
  738. "type": "boolean",
  739. "defines": [
  740. "USE_INSTANCING"
  741. ]
  742. },
  743. {
  744. "name": "CC_USE_MORPH",
  745. "type": "boolean",
  746. "defines": []
  747. }
  748. ],
  749. "name": "pipeline/post-process/dof1|dof-vs|dof-coc-fs"
  750. }
  751. ],
  752. "combinations": [],
  753. "hideInEditor": false
  754. }