DeferredPipeline.pass 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. {
  2. "Type": "JsonSerialization",
  3. "Version": 1,
  4. "ClassName": "PassAsset",
  5. "ClassData": {
  6. "PassTemplate": {
  7. "Name": "DeferredPipelineTemplate",
  8. "PassClass": "ParentPass",
  9. "Slots": [
  10. {
  11. "Name": "PipelineOutput",
  12. "SlotType": "InputOutput"
  13. }
  14. ],
  15. "PassData": {
  16. "$type": "PassData",
  17. "PipelineGlobalConnections": [
  18. {
  19. "GlobalName": "PipelineOutput",
  20. "Slot": "PipelineOutput"
  21. }
  22. ]
  23. },
  24. "PassRequests": [
  25. {
  26. "Name": "MorphTargetPass",
  27. "TemplateName": "MorphTargetPassTemplate"
  28. },
  29. {
  30. "Name": "SkinningPass",
  31. "TemplateName": "SkinningPassTemplate",
  32. "Connections": [
  33. {
  34. "LocalSlot": "SkinnedMeshOutputStream",
  35. "AttachmentRef": {
  36. "Pass": "MorphTargetPass",
  37. "Attachment": "MorphTargetDeltaOutput"
  38. }
  39. }
  40. ]
  41. },
  42. {
  43. "Name": "RayTracingAccelerationStructurePass",
  44. "TemplateName": "RayTracingAccelerationStructurePassTemplate"
  45. },
  46. {
  47. "Name": "DepthPrePass",
  48. "TemplateName": "DepthParentTemplate",
  49. "Connections": [
  50. {
  51. "LocalSlot": "SkinnedMeshes",
  52. "AttachmentRef": {
  53. "Pass": "SkinningPass",
  54. "Attachment": "SkinnedMeshOutputStream"
  55. }
  56. },
  57. {
  58. "LocalSlot": "PipelineOutput",
  59. "AttachmentRef": {
  60. "Pass": "PipelineGlobal",
  61. "Attachment": "PipelineOutput"
  62. }
  63. }
  64. ]
  65. },
  66. {
  67. "Name": "MotionVectorPass",
  68. "TemplateName": "MotionVectorParentTemplate",
  69. "Connections": [
  70. {
  71. "LocalSlot": "SkinnedMeshes",
  72. "AttachmentRef": {
  73. "Pass": "SkinningPass",
  74. "Attachment": "SkinnedMeshOutputStream"
  75. }
  76. },
  77. {
  78. "LocalSlot": "Depth",
  79. "AttachmentRef": {
  80. "Pass": "DepthPrePass",
  81. "Attachment": "Depth"
  82. }
  83. },
  84. {
  85. "LocalSlot": "PipelineOutput",
  86. "AttachmentRef": {
  87. "Pass": "PipelineGlobal",
  88. "Attachment": "PipelineOutput"
  89. }
  90. }
  91. ]
  92. },
  93. {
  94. "Name": "LightCullingPass",
  95. "TemplateName": "LightCullingParentTemplate",
  96. "Connections": [
  97. {
  98. "LocalSlot": "SkinnedMeshes",
  99. "AttachmentRef": {
  100. "Pass": "SkinningPass",
  101. "Attachment": "SkinnedMeshOutputStream"
  102. }
  103. },
  104. {
  105. "LocalSlot": "DepthMSAA",
  106. "AttachmentRef": {
  107. "Pass": "DepthPrePass",
  108. "Attachment": "DepthMSAA"
  109. }
  110. },
  111. {
  112. "LocalSlot": "PipelineOutput",
  113. "AttachmentRef": {
  114. "Pass": "PipelineGlobal",
  115. "Attachment": "PipelineOutput"
  116. }
  117. }
  118. ]
  119. },
  120. {
  121. "Name": "Shadows",
  122. "TemplateName": "ShadowParentTemplate",
  123. "Connections": [
  124. {
  125. "LocalSlot": "SkinnedMeshes",
  126. "AttachmentRef": {
  127. "Pass": "SkinningPass",
  128. "Attachment": "SkinnedMeshOutputStream"
  129. }
  130. },
  131. {
  132. "LocalSlot": "PipelineOutput",
  133. "AttachmentRef": {
  134. "Pass": "PipelineGlobal",
  135. "Attachment": "PipelineOutput"
  136. }
  137. },
  138. {
  139. "LocalSlot": "Depth",
  140. "AttachmentRef": {
  141. "Pass": "DepthPrePass",
  142. "Attachment": "DepthMSAA"
  143. }
  144. }
  145. ]
  146. },
  147. {
  148. "Name": "OpaquePass",
  149. "TemplateName": "DeferredOpaqueParentTemplate",
  150. "Connections": [
  151. {
  152. "LocalSlot": "DirectionalShadowmap",
  153. "AttachmentRef": {
  154. "Pass": "Shadows",
  155. "Attachment": "DirectionalShadowmap"
  156. }
  157. },
  158. {
  159. "LocalSlot": "DirectionalESM",
  160. "AttachmentRef": {
  161. "Pass": "Shadows",
  162. "Attachment": "DirectionalESM"
  163. }
  164. },
  165. {
  166. "LocalSlot": "ProjectedShadowmap",
  167. "AttachmentRef": {
  168. "Pass": "Shadows",
  169. "Attachment": "ProjectedShadowmap"
  170. }
  171. },
  172. {
  173. "LocalSlot": "ProjectedESM",
  174. "AttachmentRef": {
  175. "Pass": "Shadows",
  176. "Attachment": "ProjectedESM"
  177. }
  178. },
  179. {
  180. "LocalSlot": "TileLightData",
  181. "AttachmentRef": {
  182. "Pass": "LightCullingPass",
  183. "Attachment": "TileLightData"
  184. }
  185. },
  186. {
  187. "LocalSlot": "LightListRemapped",
  188. "AttachmentRef": {
  189. "Pass": "LightCullingPass",
  190. "Attachment": "LightListRemapped"
  191. }
  192. },
  193. {
  194. "LocalSlot": "DepthLinear",
  195. "AttachmentRef": {
  196. "Pass": "DepthPrePass",
  197. "Attachment": "DepthLinear"
  198. }
  199. },
  200. {
  201. "LocalSlot": "DepthStencil",
  202. "AttachmentRef": {
  203. "Pass": "DepthPrePass",
  204. "Attachment": "DepthMSAA"
  205. }
  206. },
  207. {
  208. "LocalSlot": "PipelineOutput",
  209. "AttachmentRef": {
  210. "Pass": "PipelineGlobal",
  211. "Attachment": "PipelineOutput"
  212. }
  213. }
  214. ]
  215. },
  216. {
  217. "Name": "TransparentPass",
  218. "TemplateName": "TransparentParentTemplate",
  219. "Connections": [
  220. {
  221. "LocalSlot": "DirectionalShadowmap",
  222. "AttachmentRef": {
  223. "Pass": "Shadows",
  224. "Attachment": "DirectionalShadowmap"
  225. }
  226. },
  227. {
  228. "LocalSlot": "DirectionalESM",
  229. "AttachmentRef": {
  230. "Pass": "Shadows",
  231. "Attachment": "DirectionalESM"
  232. }
  233. },
  234. {
  235. "LocalSlot": "ProjectedShadowmap",
  236. "AttachmentRef": {
  237. "Pass": "Shadows",
  238. "Attachment": "ProjectedShadowmap"
  239. }
  240. },
  241. {
  242. "LocalSlot": "ProjectedESM",
  243. "AttachmentRef": {
  244. "Pass": "Shadows",
  245. "Attachment": "ProjectedESM"
  246. }
  247. },
  248. {
  249. "LocalSlot": "TileLightData",
  250. "AttachmentRef": {
  251. "Pass": "LightCullingPass",
  252. "Attachment": "TileLightData"
  253. }
  254. },
  255. {
  256. "LocalSlot": "LightListRemapped",
  257. "AttachmentRef": {
  258. "Pass": "LightCullingPass",
  259. "Attachment": "LightListRemapped"
  260. }
  261. },
  262. {
  263. "LocalSlot": "InputLinearDepth",
  264. "AttachmentRef": {
  265. "Pass": "DepthPrePass",
  266. "Attachment": "DepthLinear"
  267. }
  268. },
  269. {
  270. "LocalSlot": "DepthStencil",
  271. "AttachmentRef": {
  272. "Pass": "DepthPrePass",
  273. "Attachment": "Depth"
  274. }
  275. },
  276. {
  277. "LocalSlot": "InputOutput",
  278. "AttachmentRef": {
  279. "Pass": "OpaquePass",
  280. "Attachment": "Output"
  281. }
  282. }
  283. ]
  284. },
  285. {
  286. "Name": "DeferredFogPass",
  287. "TemplateName": "DeferredFogPassTemplate",
  288. "Enabled": false,
  289. "Connections": [
  290. {
  291. "LocalSlot": "InputLinearDepth",
  292. "AttachmentRef": {
  293. "Pass": "DepthPrePass",
  294. "Attachment": "DepthLinear"
  295. }
  296. },
  297. {
  298. "LocalSlot": "InputDepthStencil",
  299. "AttachmentRef": {
  300. "Pass": "DepthPrePass",
  301. "Attachment": "Depth"
  302. }
  303. },
  304. {
  305. "LocalSlot": "RenderTargetInputOutput",
  306. "AttachmentRef": {
  307. "Pass": "TransparentPass",
  308. "Attachment": "InputOutput"
  309. }
  310. }
  311. ],
  312. "PassData": {
  313. "$type": "FullscreenTrianglePassData",
  314. "ShaderAsset": {
  315. "FilePath": "Shaders/ScreenSpace/DeferredFog.shader"
  316. },
  317. "PipelineViewTag": "MainCamera"
  318. }
  319. },
  320. {
  321. "Name": "ReflectionCopyFrameBufferPass",
  322. "TemplateName": "ReflectionCopyFrameBufferPassTemplate",
  323. "Enabled": false,
  324. "Connections": [
  325. {
  326. "LocalSlot": "Input",
  327. "AttachmentRef": {
  328. "Pass": "DeferredFogPass",
  329. "Attachment": "RenderTargetInputOutput"
  330. }
  331. }
  332. ]
  333. },
  334. {
  335. "Name": "PostProcessPass",
  336. "TemplateName": "PostProcessParentTemplate",
  337. "Connections": [
  338. {
  339. "LocalSlot": "LightingInput",
  340. "AttachmentRef": {
  341. "Pass": "DeferredFogPass",
  342. "Attachment": "RenderTargetInputOutput"
  343. }
  344. },
  345. {
  346. "LocalSlot": "Depth",
  347. "AttachmentRef": {
  348. "Pass": "DepthPrePass",
  349. "Attachment": "Depth"
  350. }
  351. },
  352. {
  353. "LocalSlot": "MotionVectors",
  354. "AttachmentRef": {
  355. "Pass": "MotionVectorPass",
  356. "Attachment": "MotionVectorOutput"
  357. }
  358. },
  359. {
  360. "LocalSlot": "PipelineOutput",
  361. "AttachmentRef": {
  362. "Pass": "PipelineGlobal",
  363. "Attachment": "PipelineOutput"
  364. }
  365. }
  366. ]
  367. },
  368. {
  369. "Name": "AuxGeomPass",
  370. "TemplateName": "AuxGeomPassTemplate",
  371. "Enabled": true,
  372. "Connections": [
  373. {
  374. "LocalSlot": "ColorInputOutput",
  375. "AttachmentRef": {
  376. "Pass": "PostProcessPass",
  377. "Attachment": "Output"
  378. }
  379. },
  380. {
  381. "LocalSlot": "DepthInputOutput",
  382. "AttachmentRef": {
  383. "Pass": "DepthPrePass",
  384. "Attachment": "Depth"
  385. }
  386. }
  387. ],
  388. "PassData": {
  389. "$type": "RasterPassData",
  390. "DrawListTag": "auxgeom",
  391. "PipelineViewTag": "MainCamera"
  392. }
  393. },
  394. {
  395. "Name": "DebugOverlayPass",
  396. "TemplateName": "DebugOverlayParentTemplate",
  397. "Connections": [
  398. {
  399. "LocalSlot": "TileLightData",
  400. "AttachmentRef": {
  401. "Pass": "LightCullingPass",
  402. "Attachment": "TileLightData"
  403. }
  404. },
  405. {
  406. "LocalSlot": "RawLightingInput",
  407. "AttachmentRef": {
  408. "Pass": "PostProcessPass",
  409. "Attachment": "RawLightingOutput"
  410. }
  411. },
  412. {
  413. "LocalSlot": "LuminanceMipChainInput",
  414. "AttachmentRef": {
  415. "Pass": "PostProcessPass",
  416. "Attachment": "LuminanceMipChainOutput"
  417. }
  418. },
  419. {
  420. "LocalSlot": "InputOutput",
  421. "AttachmentRef": {
  422. "Pass": "AuxGeomPass",
  423. "Attachment": "ColorInputOutput"
  424. }
  425. }
  426. ]
  427. },
  428. {
  429. "Name": "UIPass",
  430. "TemplateName": "UIParentTemplate",
  431. "Connections": [
  432. {
  433. "LocalSlot": "InputOutput",
  434. "AttachmentRef": {
  435. "Pass": "DebugOverlayPass",
  436. "Attachment": "InputOutput"
  437. }
  438. },
  439. {
  440. "LocalSlot": "DepthInputOutput",
  441. "AttachmentRef": {
  442. "Pass": "DepthPrePass",
  443. "Attachment": "Depth"
  444. }
  445. }
  446. ]
  447. },
  448. {
  449. "Name": "CopyToSwapChain",
  450. "TemplateName": "FullscreenCopyTemplate",
  451. "Connections": [
  452. {
  453. "LocalSlot": "Input",
  454. "AttachmentRef": {
  455. "Pass": "UIPass",
  456. "Attachment": "InputOutput"
  457. }
  458. },
  459. {
  460. "LocalSlot": "Output",
  461. "AttachmentRef": {
  462. "Pass": "PipelineGlobal",
  463. "Attachment": "PipelineOutput"
  464. }
  465. }
  466. ]
  467. }
  468. ]
  469. }
  470. }
  471. }