7a115de7-2d94-4620-8b89-766d7f8cbff9.json 22 KB

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