Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FrameGraph API #2256

Closed
wants to merge 115 commits into from
Closed

FrameGraph API #2256

wants to merge 115 commits into from

Conversation

codex128
Copy link
Contributor

@codex128 codex128 commented May 7, 2024

This PR adds a FrameGraph rendering pipeline API that is similar in concept to shader nodes. This is based off work from #2090.

For more information:
https://hub.jmonkeyengine.org/t/framegraph-api/47646?u=codex

To Do:

  • Clean up several scattered compile errors.
  • Implement Forward+ and/or Forward++ (save for another PR?)
  • Test FrameGraph under more conditions.
  • Test global illumination?
  • Javadoc and licenses.

Issues to be investigated further:

  • Some unexplained difficulties in combining results from multiple ViewPorts running FrameGraphs in some circumstances.
  • Slight artifacts on shadow mappings. This may be a regression of unrelated code on the fork, and not any fault of the FrameGraph.

Any testing is welcome!

JohnLKkk and others added 30 commits October 9, 2023 11:14
1. Added basic framework of framegraph to manage and organize new rendering passes;
2. Split existing rendering into several core RenderPasses;
3. Added multiple rendering paths (forward, deferred, tile based deferred);
4. Activated Framegraph system by useFramegraph, activated rendering paths by setRenderPath;
Fix flickering issues in tile based deferred shading;
Added two renderPath sample codes.
Added terrain unlit shading model test code;
Added terrain lighting shading model test code;
…ickering problems, fixed attenuation issue with multiple PBR lights under deferred rendering.
1.change java.com.jme3.renderer.renderPass=>java.com.jme3.renderer.pass
2.change IRenderGeometry.java=>RenderGeometry.java
@codex128
Copy link
Contributor Author

After fixing several issues, the branch now builds successfully.

@codex128
Copy link
Contributor Author

Note: at this point, SceneProcessors are incompatible with the FrameGraph. This means no filters, shadows, etc.

@codex128
Copy link
Contributor Author

Due to some development advances, the entire FrameGraph system is now able to be moved to an external library, which is way better than trying to merge it into core. The external library still depends on some changes on this branch, so I will open a new pull request for that later today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants