use of org.terasology.rendering.dag.nodes.RefractiveReflectiveBlocksNode in project Terasology by MovingBlocks.
the class WorldRendererImpl method addReflectionAndRefractionNodes.
private void addReflectionAndRefractionNodes(RenderGraph renderGraph) {
FBOConfig reflectedBufferConfig = new FBOConfig(BackdropReflectionNode.REFLECTED_FBO_URI, HALF_SCALE, FBO.Type.DEFAULT).useDepthBuffer();
BufferClearingNode reflectedBufferClearingNode = new BufferClearingNode(reflectedBufferConfig, displayResolutionDependentFBOs, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
renderGraph.addNode(reflectedBufferClearingNode, "reflectedBufferClearingNode");
Node reflectedBackdropNode = new BackdropReflectionNode(context);
renderGraph.addNode(reflectedBackdropNode, "reflectedBackdropNode");
Node worldReflectionNode = new WorldReflectionNode(context);
renderGraph.addNode(worldReflectionNode, "worldReflectionNode");
renderGraph.connect(reflectedBufferClearingNode, reflectedBackdropNode, worldReflectionNode);
FBOConfig reflectedRefractedBufferConfig = new FBOConfig(RefractiveReflectiveBlocksNode.REFRACTIVE_REFLECTIVE_FBO_URI, FULL_SCALE, FBO.Type.HDR).useNormalBuffer();
BufferClearingNode reflectedRefractedBufferClearingNode = new BufferClearingNode(reflectedRefractedBufferConfig, displayResolutionDependentFBOs, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
renderGraph.addNode(reflectedRefractedBufferClearingNode, "reflectedRefractedBufferClearingNode");
Node chunksRefractiveReflectiveNode = new RefractiveReflectiveBlocksNode(context);
renderGraph.addNode(chunksRefractiveReflectiveNode, "chunksRefractiveReflectiveNode");
Node applyDeferredLightingNode = renderGraph.findNode("engine:applyDeferredLightingNode");
renderGraph.connect(reflectedRefractedBufferClearingNode, chunksRefractiveReflectiveNode);
renderGraph.connect(worldReflectionNode, chunksRefractiveReflectiveNode);
// TODO: At this stage, it is unclear -why- this connection is required, we just know that it's required. Investigate.
renderGraph.connect(applyDeferredLightingNode, chunksRefractiveReflectiveNode);
// TODO: consider having a non-rendering node for FBO.attachDepthBufferTo() methods
}
Aggregations