diff --git a/docs/DAG.puml b/docs/DAG.puml new file mode 100644 index 0000000..add1b0c --- /dev/null +++ b/docs/DAG.puml @@ -0,0 +1,170 @@ +@startuml + +!theme spacelab + +object lastUpdatedGBufferClearingNode{ + Buffer Cleaning Node +} + +package worldRenderingNodes{ + diamond worldRenderingNodes + object opaqueObjectNode + object opaqueBlockNode + object alphaRejectNode + object overlayNode + lastUpdatedGBufferClearingNode -down-> worldRenderingNodes + worldRenderingNodes -> opaqueBlockNode + worldRenderingNodes -> opaqueObjectNode + worldRenderingNodes -> alphaRejectNode + worldRenderingNodes -> overlayNode +} + +diamond worldRenderingNodesB +opaqueBlockNode -down-> worldRenderingNodesB +opaqueObjectNode -down-> worldRenderingNodesB +alphaRejectNode -down-> worldRenderingNodesB + +package reflectionAndRefractionsNodes{ + object reflectedBufferClearingNode{ + Buffer Cleaning Node + } + object reflectBackdropNode + object worldReflectionNode + object reflectedRefractedBufferClearingNode{ + Buffer Cleaning Node + } + object chunksRefractiveReflectiveNode + + reflectedBufferClearingNode -down-> reflectBackdropNode + reflectBackdropNode -down-> worldReflectionNode + worldReflectionNode -down-> chunksRefractiveReflectiveNode + reflectedRefractedBufferClearingNode -down-> chunksRefractiveReflectiveNode +} + +package skyNodes{ + object backdropNode + object hazeIntermediateNode + object hazeFinalNode + + lastUpdatedGBufferClearingNode -down-> backdropNode + backdropNode -down-> hazeIntermediateNode + hazeIntermediateNode -down-> hazeFinalNode +} + +package lightningNodes{ + object shadowMapCleaningNode { + Buffer Cleaning Node + } + object staleGBufferCleaningNode { + Buffer Cleaning Node + } + object applyDeferredLightningNode + object shadowMapNode + object deferredMainLightNode + object deferredPointLightNode + + worldRenderingNodesB -down-> applyDeferredLightningNode + worldRenderingNodesB -down-> deferredMainLightNode + shadowMapCleaningNode -down-> shadowMapNode + shadowMapNode -down-> deferredMainLightNode + staleGBufferCleaningNode -down-> applyDeferredLightningNode + deferredPointLightNode -down-> applyDeferredLightningNode + deferredMainLightNode -down-> applyDeferredLightningNode +} + +package 3dDecorationNodes{ + object outlineNode + object ambientOcclusionNode + object blurredAmbientOcclusionNode + + worldRenderingNodesB -down-> outlineNode + worldRenderingNodesB -down-> ambientOcclusionNode + ambientOcclusionNode -down-> blurredAmbientOcclusionNode + applyDeferredLightningNode --> chunksRefractiveReflectiveNode + applyDeferredLightningNode --> outlineNode +} + +package prePostProcessing{ + object prePostCompositeNode + object simpleBlendMaterialsNode + + chunksRefractiveReflectiveNode -down-> prePostCompositeNode + hazeFinalNode -down-> prePostCompositeNode + applyDeferredLightningNode -down-> prePostCompositeNode + outlineNode -down-> prePostCompositeNode + blurredAmbientOcclusionNode -down-> prePostCompositeNode + prePostCompositeNode -down-> simpleBlendMaterialsNode + overlayNode -down-> prePostCompositeNode +} + +package bloomNodes{ + object highPassNode + object halfScaleBlurredBloomNode + object quarterScaledBlurredBloomNode + object one8thScaleBlurredBloomNode + + highPassNode -down-> halfScaleBlurredBloomNode + halfScaleBlurredBloomNode -down-> quarterScaledBlurredBloomNode + quarterScaledBlurredBloomNode -down-> one8thScaleBlurredBloomNode + simpleBlendMaterialsNode -down-> highPassNode +} + +package exposureNodes{ + object exposureDownSamplerTo16pixels + object exposureDownSamplerTo8pixels + object exposureDownSamplerTo4pixels + object exposureDownSamplerTo2pixels + object exposureDownSamplerTo1pixels + object updateExposureNode + + exposureDownSamplerTo16pixels -down-> exposureDownSamplerTo8pixels + exposureDownSamplerTo8pixels -down-> exposureDownSamplerTo4pixels + exposureDownSamplerTo4pixels -down-> exposureDownSamplerTo2pixels + exposureDownSamplerTo2pixels -down-> exposureDownSamplerTo1pixels + exposureDownSamplerTo1pixels -down-> updateExposureNode + simpleBlendMaterialsNode -down-> exposureDownSamplerTo16pixels +} + +package initialPostProcessing{ + object lightShaftsNode + object initialPostProcessingNode + + simpleBlendMaterialsNode -down-> lightShaftsNode + one8thScaleBlurredBloomNode -down-> initialPostProcessingNode + lightShaftsNode -down-> initialPostProcessingNode +} + +package finalPostProcessing{ + object toneMappingNode + object firstLateBlurNode + object secondLateBlurNode + object finalPostProcessingNode + object Screenshot{ + Output Node + } + + updateExposureNode -down-> toneMappingNode + initialPostProcessingNode -down-> toneMappingNode + toneMappingNode -down-> firstLateBlurNode + firstLateBlurNode -down-> secondLateBlurNode + secondLateBlurNode -down-> finalPostProcessingNode + finalPostProcessingNode -> Screenshot +} + +package outputNodes{ + object outputToScreenNode + object Screen{ + OutPut Node + } + object outputToVRFrameBufferNode + object HMD{ + Output Node + } + + finalPostProcessingNode -down-> outputToScreenNode + outputToScreenNode -down-> Screen + finalPostProcessingNode -down-> outputToVRFrameBufferNode + outputToVRFrameBufferNode --> HMD +} + +@enduml \ No newline at end of file