a3e72674-c38f-4336-a285-1826b1799cd7.json 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. {
  2. "__type__": "cc.EffectAsset",
  3. "_name": "internal/editor/terrain-circle-brush",
  4. "_objFlags": 0,
  5. "__editorExtras__": {},
  6. "_native": "",
  7. "techniques": [
  8. {
  9. "name": "transparent",
  10. "passes": [
  11. {
  12. "blendState": {
  13. "targets": [
  14. {
  15. "blend": true,
  16. "blendSrc": 2,
  17. "blendDst": 4,
  18. "blendDstAlpha": 4
  19. }
  20. ]
  21. },
  22. "program": "internal/editor/terrain-circle-brush|terrain-brush-vs:vert|terrain-brush-fs:frag",
  23. "depthStencilState": {
  24. "depthTest": true,
  25. "depthWrite": false
  26. },
  27. "properties": {
  28. "BrushPos": {
  29. "value": [
  30. 0,
  31. 0,
  32. 0,
  33. 1
  34. ],
  35. "type": 16
  36. },
  37. "BrushParams": {
  38. "value": [
  39. 2.5,
  40. 2.5,
  41. 0,
  42. 0
  43. ],
  44. "type": 16
  45. }
  46. }
  47. }
  48. ]
  49. }
  50. ],
  51. "shaders": [
  52. {
  53. "blocks": [
  54. {
  55. "name": "TexCoords",
  56. "members": [
  57. {
  58. "name": "BrushPos",
  59. "type": 16,
  60. "count": 1
  61. },
  62. {
  63. "name": "BrushParams",
  64. "type": 16,
  65. "count": 1
  66. }
  67. ],
  68. "defines": [],
  69. "stageFlags": 16,
  70. "binding": 0
  71. }
  72. ],
  73. "samplerTextures": [],
  74. "samplers": [],
  75. "textures": [],
  76. "buffers": [],
  77. "images": [],
  78. "subpassInputs": [],
  79. "attributes": [
  80. {
  81. "name": "a_position",
  82. "defines": [],
  83. "format": 32,
  84. "location": 0
  85. }
  86. ],
  87. "varyings": [
  88. {
  89. "name": "wposition",
  90. "type": 16,
  91. "count": 1,
  92. "defines": [],
  93. "stageFlags": 17,
  94. "location": 0
  95. }
  96. ],
  97. "fragColors": [
  98. {
  99. "name": "cc_FragColor",
  100. "typename": "vec4",
  101. "type": 16,
  102. "count": 1,
  103. "defines": [],
  104. "stageFlags": 16,
  105. "location": 0
  106. }
  107. ],
  108. "descriptors": [
  109. {
  110. "rate": 0,
  111. "blocks": [
  112. {
  113. "tags": {
  114. "builtin": "local"
  115. },
  116. "name": "CCLocal",
  117. "members": [
  118. {
  119. "name": "cc_matWorld",
  120. "typename": "mat4",
  121. "type": 25,
  122. "count": 1,
  123. "precision": "highp "
  124. },
  125. {
  126. "name": "cc_matWorldIT",
  127. "typename": "mat4",
  128. "type": 25,
  129. "count": 1,
  130. "precision": "highp "
  131. },
  132. {
  133. "name": "cc_lightingMapUVParam",
  134. "typename": "vec4",
  135. "type": 16,
  136. "count": 1,
  137. "precision": "highp "
  138. },
  139. {
  140. "name": "cc_localShadowBias",
  141. "typename": "vec4",
  142. "type": 16,
  143. "count": 1,
  144. "precision": "highp "
  145. },
  146. {
  147. "name": "cc_reflectionProbeData1",
  148. "typename": "vec4",
  149. "type": 16,
  150. "count": 1,
  151. "precision": "highp "
  152. },
  153. {
  154. "name": "cc_reflectionProbeData2",
  155. "typename": "vec4",
  156. "type": 16,
  157. "count": 1,
  158. "precision": "highp "
  159. },
  160. {
  161. "name": "cc_reflectionProbeBlendData1",
  162. "typename": "vec4",
  163. "type": 16,
  164. "count": 1,
  165. "precision": "highp "
  166. },
  167. {
  168. "name": "cc_reflectionProbeBlendData2",
  169. "typename": "vec4",
  170. "type": 16,
  171. "count": 1,
  172. "precision": "highp "
  173. }
  174. ],
  175. "defines": [],
  176. "stageFlags": 1
  177. }
  178. ],
  179. "samplerTextures": [],
  180. "samplers": [],
  181. "textures": [],
  182. "buffers": [],
  183. "images": [],
  184. "subpassInputs": []
  185. },
  186. {
  187. "rate": 1,
  188. "blocks": [
  189. {
  190. "name": "TexCoords",
  191. "members": [
  192. {
  193. "name": "BrushPos",
  194. "type": 16,
  195. "count": 1
  196. },
  197. {
  198. "name": "BrushParams",
  199. "type": 16,
  200. "count": 1
  201. }
  202. ],
  203. "defines": [],
  204. "stageFlags": 16,
  205. "binding": 0
  206. }
  207. ],
  208. "samplerTextures": [],
  209. "samplers": [],
  210. "textures": [],
  211. "buffers": [],
  212. "images": [],
  213. "subpassInputs": []
  214. },
  215. {
  216. "rate": 2,
  217. "blocks": [],
  218. "samplerTextures": [],
  219. "samplers": [],
  220. "textures": [],
  221. "buffers": [],
  222. "images": [],
  223. "subpassInputs": []
  224. },
  225. {
  226. "rate": 3,
  227. "blocks": [
  228. {
  229. "tags": {
  230. "builtin": "global"
  231. },
  232. "name": "CCGlobal",
  233. "members": [
  234. {
  235. "name": "cc_time",
  236. "typename": "vec4",
  237. "type": 16,
  238. "count": 1,
  239. "precision": "highp "
  240. },
  241. {
  242. "name": "cc_screenSize",
  243. "typename": "vec4",
  244. "type": 16,
  245. "count": 1,
  246. "precision": "mediump "
  247. },
  248. {
  249. "name": "cc_nativeSize",
  250. "typename": "vec4",
  251. "type": 16,
  252. "count": 1,
  253. "precision": "mediump "
  254. },
  255. {
  256. "name": "cc_probeInfo",
  257. "typename": "vec4",
  258. "type": 16,
  259. "count": 1,
  260. "precision": "mediump "
  261. },
  262. {
  263. "name": "cc_debug_view_mode",
  264. "typename": "vec4",
  265. "type": 16,
  266. "count": 1,
  267. "precision": "mediump "
  268. }
  269. ],
  270. "defines": [],
  271. "stageFlags": 17
  272. },
  273. {
  274. "tags": {
  275. "builtin": "global"
  276. },
  277. "name": "CCCamera",
  278. "members": [
  279. {
  280. "name": "cc_matView",
  281. "typename": "mat4",
  282. "type": 25,
  283. "count": 1,
  284. "precision": "highp "
  285. },
  286. {
  287. "name": "cc_matViewInv",
  288. "typename": "mat4",
  289. "type": 25,
  290. "count": 1,
  291. "precision": "highp "
  292. },
  293. {
  294. "name": "cc_matProj",
  295. "typename": "mat4",
  296. "type": 25,
  297. "count": 1,
  298. "precision": "highp "
  299. },
  300. {
  301. "name": "cc_matProjInv",
  302. "typename": "mat4",
  303. "type": 25,
  304. "count": 1,
  305. "precision": "highp "
  306. },
  307. {
  308. "name": "cc_matViewProj",
  309. "typename": "mat4",
  310. "type": 25,
  311. "count": 1,
  312. "precision": "highp "
  313. },
  314. {
  315. "name": "cc_matViewProjInv",
  316. "typename": "mat4",
  317. "type": 25,
  318. "count": 1,
  319. "precision": "highp "
  320. },
  321. {
  322. "name": "cc_cameraPos",
  323. "typename": "vec4",
  324. "type": 16,
  325. "count": 1,
  326. "precision": "highp "
  327. },
  328. {
  329. "name": "cc_surfaceTransform",
  330. "typename": "vec4",
  331. "type": 16,
  332. "count": 1,
  333. "precision": "mediump "
  334. },
  335. {
  336. "name": "cc_screenScale",
  337. "typename": "vec4",
  338. "type": 16,
  339. "count": 1,
  340. "precision": "mediump "
  341. },
  342. {
  343. "name": "cc_exposure",
  344. "typename": "vec4",
  345. "type": 16,
  346. "count": 1,
  347. "precision": "mediump "
  348. },
  349. {
  350. "name": "cc_mainLitDir",
  351. "typename": "vec4",
  352. "type": 16,
  353. "count": 1,
  354. "precision": "mediump "
  355. },
  356. {
  357. "name": "cc_mainLitColor",
  358. "typename": "vec4",
  359. "type": 16,
  360. "count": 1,
  361. "precision": "mediump "
  362. },
  363. {
  364. "name": "cc_ambientSky",
  365. "typename": "vec4",
  366. "type": 16,
  367. "count": 1,
  368. "precision": "mediump "
  369. },
  370. {
  371. "name": "cc_ambientGround",
  372. "typename": "vec4",
  373. "type": 16,
  374. "count": 1,
  375. "precision": "mediump "
  376. },
  377. {
  378. "name": "cc_fogColor",
  379. "typename": "vec4",
  380. "type": 16,
  381. "count": 1,
  382. "precision": "mediump "
  383. },
  384. {
  385. "name": "cc_fogBase",
  386. "typename": "vec4",
  387. "type": 16,
  388. "count": 1,
  389. "precision": "mediump "
  390. },
  391. {
  392. "name": "cc_fogAdd",
  393. "typename": "vec4",
  394. "type": 16,
  395. "count": 1,
  396. "precision": "mediump "
  397. },
  398. {
  399. "name": "cc_nearFar",
  400. "typename": "vec4",
  401. "type": 16,
  402. "count": 1,
  403. "precision": "mediump "
  404. },
  405. {
  406. "name": "cc_viewPort",
  407. "typename": "vec4",
  408. "type": 16,
  409. "count": 1,
  410. "precision": "mediump "
  411. }
  412. ],
  413. "defines": [],
  414. "stageFlags": 17
  415. }
  416. ],
  417. "samplerTextures": [],
  418. "samplers": [],
  419. "textures": [],
  420. "buffers": [],
  421. "images": [],
  422. "subpassInputs": []
  423. }
  424. ],
  425. "hash": 2408528201,
  426. "glsl4": {
  427. "vert": "\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};\nlayout(set = 2, binding = 0) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nlayout(location = 0) in vec3 a_position;\nlayout(location = 0) out vec4 wposition;\nvec4 vert () {\n vec3 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n worldPos.y += 0.01;\n vec4 pos = vec4(worldPos, 1);\n pos = cc_matViewProj * pos;\n wposition = vec4(worldPos, 1);\n return pos;\n}\nvoid main() { gl_Position = vert(); }",
  428. "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}\nlayout(location = 0) in vec4 wposition;\nlayout(set = 1, binding = 0) uniform TexCoords {\n vec4 BrushPos;\n vec4 BrushParams;\n};\nvec4 frag () {\n float Radius = BrushParams.x;\n float Falloff = BrushParams.y;\n float Distance = length(wposition.xz - BrushPos.xz);\n float k = 0.0;\n #if LINEAR\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n k = max(0.0, 1.0 - (Distance - Radius) / Falloff);\n }\n #elif SMOOTH\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n float y = (Distance - Radius) / Falloff;\n k = sqrt(1.0 - y * y);\n }\n #elif SPHERICAL\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n k = max(0.0, 1.0 - (Distance - Radius) / Falloff);\n }\n k = k*k*(3.0 - 2.0 * k);\n #elif TIP\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n float y = (Falloff + Radius - Distance) / Falloff;\n k = 1.0 - sqrt(1.0 - y * y);\n }\n #endif\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n color.rgb = vec3(100, 100, 135) / 255.0;\n color.a = 0.85 * k;\n return CCFragOutput(color);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"
  429. },
  430. "glsl3": {
  431. "vert": "\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};\nlayout(std140) uniform CCLocal {\n highp mat4 cc_matWorld;\n highp mat4 cc_matWorldIT;\n highp vec4 cc_lightingMapUVParam;\n highp vec4 cc_localShadowBias;\n highp vec4 cc_reflectionProbeData1;\n highp vec4 cc_reflectionProbeData2;\n highp vec4 cc_reflectionProbeBlendData1;\n highp vec4 cc_reflectionProbeBlendData2;\n};\nin vec3 a_position;\nout vec4 wposition;\nvec4 vert () {\n vec3 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n worldPos.y += 0.01;\n vec4 pos = vec4(worldPos, 1);\n pos = cc_matViewProj * pos;\n wposition = vec4(worldPos, 1);\n return pos;\n}\nvoid main() { gl_Position = vert(); }",
  432. "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}\nin vec4 wposition;\nlayout(std140) uniform TexCoords {\n vec4 BrushPos;\n vec4 BrushParams;\n};\nvec4 frag () {\n float Radius = BrushParams.x;\n float Falloff = BrushParams.y;\n float Distance = length(wposition.xz - BrushPos.xz);\n float k = 0.0;\n #if LINEAR\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n k = max(0.0, 1.0 - (Distance - Radius) / Falloff);\n }\n #elif SMOOTH\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n float y = (Distance - Radius) / Falloff;\n k = sqrt(1.0 - y * y);\n }\n #elif SPHERICAL\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n k = max(0.0, 1.0 - (Distance - Radius) / Falloff);\n }\n k = k*k*(3.0 - 2.0 * k);\n #elif TIP\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n float y = (Falloff + Radius - Distance) / Falloff;\n k = 1.0 - sqrt(1.0 - y * y);\n }\n #endif\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n color.rgb = vec3(100, 100, 135) / 255.0;\n color.a = 0.85 * k;\n return CCFragOutput(color);\n}\nlayout(location = 0) out vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }"
  433. },
  434. "glsl1": {
  435. "vert": "\nprecision mediump float;\nuniform highp mat4 cc_matViewProj;\nuniform highp mat4 cc_matWorld;\nattribute vec3 a_position;\nvarying vec4 wposition;\nvec4 vert () {\n vec3 worldPos;\n worldPos.x = cc_matWorld[3][0] + a_position.x;\n worldPos.y = cc_matWorld[3][1] + a_position.y;\n worldPos.z = cc_matWorld[3][2] + a_position.z;\n worldPos.y += 0.01;\n vec4 pos = vec4(worldPos, 1);\n pos = cc_matViewProj * pos;\n wposition = vec4(worldPos, 1);\n return pos;\n}\nvoid main() { gl_Position = vert(); }",
  436. "frag": "\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n return color;\n}\nvarying vec4 wposition;\n uniform vec4 BrushPos;\n uniform vec4 BrushParams;\nvec4 frag () {\n float Radius = BrushParams.x;\n float Falloff = BrushParams.y;\n float Distance = length(wposition.xz - BrushPos.xz);\n float k = 0.0;\n #if LINEAR\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n k = max(0.0, 1.0 - (Distance - Radius) / Falloff);\n }\n #elif SMOOTH\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n float y = (Distance - Radius) / Falloff;\n k = sqrt(1.0 - y * y);\n }\n #elif SPHERICAL\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n k = max(0.0, 1.0 - (Distance - Radius) / Falloff);\n }\n k = k*k*(3.0 - 2.0 * k);\n #elif TIP\n if (Distance <= Radius) {\n k = 1.0;\n }\n else if (Distance > Radius + Falloff) {\n k = 0.0;\n }\n else {\n float y = (Falloff + Radius - Distance) / Falloff;\n k = 1.0 - sqrt(1.0 - y * y);\n }\n #endif\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n color.rgb = vec3(100, 100, 135) / 255.0;\n color.a = 0.85 * k;\n return CCFragOutput(color);\n}\nvoid main() { gl_FragColor = frag(); }"
  437. },
  438. "builtins": {
  439. "globals": {
  440. "blocks": [
  441. {
  442. "name": "CCGlobal",
  443. "defines": []
  444. },
  445. {
  446. "name": "CCCamera",
  447. "defines": []
  448. }
  449. ],
  450. "samplerTextures": [],
  451. "buffers": [],
  452. "images": []
  453. },
  454. "locals": {
  455. "blocks": [
  456. {
  457. "name": "CCLocal",
  458. "defines": []
  459. }
  460. ],
  461. "samplerTextures": [],
  462. "buffers": [],
  463. "images": []
  464. },
  465. "statistics": {
  466. "CC_EFFECT_USED_VERTEX_UNIFORM_VECTORS": 56,
  467. "CC_EFFECT_USED_FRAGMENT_UNIFORM_VECTORS": 44
  468. }
  469. },
  470. "defines": [
  471. {
  472. "name": "LINEAR",
  473. "type": "boolean",
  474. "defines": []
  475. },
  476. {
  477. "name": "SMOOTH",
  478. "type": "boolean",
  479. "defines": [
  480. "!LINEAR"
  481. ]
  482. },
  483. {
  484. "name": "SPHERICAL",
  485. "type": "boolean",
  486. "defines": [
  487. "!LINEAR",
  488. "!SMOOTH"
  489. ]
  490. },
  491. {
  492. "name": "TIP",
  493. "type": "boolean",
  494. "defines": [
  495. "!LINEAR",
  496. "!SMOOTH",
  497. "!SPHERICAL"
  498. ]
  499. }
  500. ],
  501. "name": "internal/editor/terrain-circle-brush|terrain-brush-vs:vert|terrain-brush-fs:frag"
  502. }
  503. ],
  504. "combinations": [],
  505. "hideInEditor": true
  506. }