Skip to content

Commit

Permalink
Adds Custom Render Pipeline Interface (#2304)
Browse files Browse the repository at this point in the history
* added AlertArmatureMask

* fixed docs and added another helper

* made it easier to turn off priority checking

* removed copy methods

* jme3-core:
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;

* jme3-examples:Added a set of test cases for renderPath.

* jme3-core:Improve deferred shading issues;
Fix flickering issues in tile based deferred shading;

* jme3-examples:Adjust deferred rendering test code

* jme3-core:Adjust GBuffer format, RT0(16F), RT1(16F), RT2(16F), RT3(32F), DEPTH

* jme3-core:Delete test code

* jme3-core:Fixed all known bugs in Tile-based DeferredShading.

* jme3-examples:update TestTileBasedDeferredShading

* jme3-core:update GLSLCompat.glsllib

* jme3-core:Fix frameGraph assertion error

* jme3-core:Add some core code comments, delete Chinese code comments

* jme3-core:Fix bugs existed in shadingModel

* jme3-examples:Add test case "TestShadingModel.java,TestRenderPathPointDirectionalAndSpotLightShadows.java"

* jme3-core:GBuffer data packing for terrain rendering compatibility (unlit, lighting)

* jme3-examples:
Added two renderPath sample codes.
Added terrain unlit shading model test code;
Added terrain lighting shading model test code;

* jme3-core:Add rendering path support for AdvancedPBRTerrain

* jme3-examples:Add a test code

* jme3-core:Supplement core code comments, add full JME license to each java file, fix a few minor issues

* jme3-terrain:Implement PBRTerrain compatibility code

* jme3-core:Fixed Tile-basedDeferred light culling issue, fixed some flickering problems, fixed attenuation issue with multiple PBR lights under deferred rendering.

* jme3-examples:update TestCode

* jme3-examples:update TestPBRTerrainRenderPath.java

* jme3-core:Fix TestTexture3D/TestTexture3DLoading

* jme3-core:fix lightTexSizeInv undefined

* jme3-core:
1.change java.com.jme3.renderer.renderPass=>java.com.jme3.renderer.pass
2.change IRenderGeometry.java=>RenderGeometry.java

* jme3-core:use g_ViewProjectionMatrixInverse

* jme3-core:use logger

* jme3-core:update javadoc(FastMath.nextRandomFlot)

* updated license

* updated javadoc

* renamed mask

* refactor FGPass, FGSink, and FGSource to interfaces

* fix method name collision for FGPass

* renamed FGPass reset method

* changes

* rebuilt API

* fixed framebuffer attachments bug

* deferred shading usable

* deferred and tiled deferred are working for TestShadingModel.java

* debugging

* debugging deferred pipeline

* more debugging

* more debugging

* cleanup code

* more cleanup

* remove reliance on J3mLoader and clean up code

* reorganized java files

* added support for cross-space parameter binding

* added optimizations

* recoding resource system

* redesigned resource system

* framegraph operational

* framegraph complete

* draft ready

* rename registration method

* renamed method

* delete personal changelog

* remove enums

* added information management passes

* migrated to new ticket protocol

* added resource extraction

* provide logical control of framegraph

* finalized user value sources and targets

* fixed framegraph use on multiple viewports binding textures too often

* fixed depth texture filtering

* added export and import methods

* javadoc for new classes

* licenses

* pass tests

* added framegraph opt-out for viewports

* added .j3g

* delete unused classes

* fixed background on deferred pipelines

* added basic opencl

* fixed tests

* verified fix for overlapping viewports

* added framegraph loading speed test

* added framegraph event capture

* fixed framebuffer update flag

* fixed broken light count

* revert debugging

* fix merge conflict

* start moving lighting logic outside matdef logic

* added ticket groups

* migrated lighting logic to render pass

* fixed light tex inverse type

* added light pack method junction

* deleted deferred lighting logic

* deleted draft files

* added group attribute pass

* added indefinite ticket groups

* finalized ticket lists

* porting filters

* narrowed PBR issue to metallic=1

* fixed functional array issues

* fixed build errors

* fixed depth of field filter import-export

* fixed deferred light probes

* fixed ambient and fixed buffered lights

* fixed gbuffer packing for advanced terrain

* fixed pbr terrain

* made render object map threadsafe

* added multithreading

* fix referencing bug

* added fix for missing defines

* test async

* fix dependency on java 9

* removed unnecessary atomic boolean

* fixed more async issues

* fixed camera size when rendering to smaller textures

* added addLoop

* add faze pass

* improved javadoc and fixed issue with deferred techniquedefs

* added pipeline interface and added render modules

* changes to factory methods

* deleted framegraph system

* removed gbuffer shaders

* restored deferred and gbuf shaders

* removed deferred materials

* removed effects passes

* deleted tests

* reverted unnecessary changes and moved pipeline classes to new package

* reverted more unnecessary changes

* small changes

* several changes

* revert changes in build file

* removed material adaptation code

* removed savable utilities

* removed math utility

* made render context implementation less confusing

* pass viewport to pipeline context

* fixed start method not being called

* remove miscellaneous

* removed miscellaneous

* remove miscellaneous

* remove miscellaneous

* changed render start order

* added license and attempted to revert changes

* remove target creation helpers

* added spacing

* several small changes

* added null pipeline and context creation helper

* delete GeometryRenderHandler and RenderUtils

---------

Co-authored-by: JohnKkk <[email protected]>
Co-authored-by: chenliming <[email protected]>
  • Loading branch information
3 people authored Oct 24, 2024
1 parent 5f54eb2 commit 327426d
Show file tree
Hide file tree
Showing 23 changed files with 736 additions and 176 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -250,4 +250,4 @@ retrolambda {
javaVersion JavaVersion.VERSION_1_7
incremental true
jvmArgs '-noverify'
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -824,4 +824,4 @@ public TechniqueDef clone() throws CloneNotSupportedException {

return clone;
}
}
}
Loading

0 comments on commit 327426d

Please sign in to comment.