-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Adds Custom Render Pipeline Interface #2304
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
Merged
Merged
Changes from 148 commits
Commits
Show all changes
154 commits
Select commit
Hold shift + click to select a range
d2315be
added AlertArmatureMask
codex128 2f1dae8
fixed docs and added another helper
codex128 a750f1c
made it easier to turn off priority checking
codex128 cd876d4
removed copy methods
codex128 3b6f7b8
jme3-core:
JohnLKkk 8479dd3
jme3-examples:Added a set of test cases for renderPath.
JohnLKkk e5737df
jme3-core:Improve deferred shading issues;
JohnLKkk d69de2d
jme3-examples:Adjust deferred rendering test code
JohnLKkk 6e75f0b
jme3-core:Adjust GBuffer format, RT0(16F), RT1(16F), RT2(16F), RT3(32…
0290dcd
jme3-core:Delete test code
JohnLKkk 6a64da6
jme3-core:Fixed all known bugs in Tile-based DeferredShading.
JohnLKkk c8e7426
jme3-examples:update TestTileBasedDeferredShading
JohnLKkk e540601
jme3-core:update GLSLCompat.glsllib
JohnLKkk fdea4cc
jme3-core:Fix frameGraph assertion error
JohnLKkk f60a03b
jme3-core:Add some core code comments, delete Chinese code comments
JohnLKkk b7f0b58
jme3-core:Fix bugs existed in shadingModel
JohnLKkk e4862a6
jme3-examples:Add test case "TestShadingModel.java,TestRenderPathPoin…
JohnLKkk 2475337
jme3-core:GBuffer data packing for terrain rendering compatibility (u…
81c1362
jme3-examples:
05eb006
jme3-core:Add rendering path support for AdvancedPBRTerrain
JohnLKkk e327316
jme3-examples:Add a test code
JohnLKkk 63222d6
jme3-core:Supplement core code comments, add full JME license to each…
JohnLKkk 82c6dc2
jme3-terrain:Implement PBRTerrain compatibility code
JohnLKkk 0359a8e
jme3-core:Fixed Tile-basedDeferred light culling issue, fixed some fl…
JohnLKkk 98e0ae4
jme3-examples:update TestCode
JohnLKkk 000fb0e
jme3-examples:update TestPBRTerrainRenderPath.java
JohnLKkk 09a22a6
jme3-core:Fix TestTexture3D/TestTexture3DLoading
JohnLKkk 83ac2b5
jme3-core:fix lightTexSizeInv undefined
JohnLKkk 65fd3de
Merge branch 'master' into master
JohnLKkk 3521b2a
jme3-core:
JohnLKkk 224eecd
jme3-core:use g_ViewProjectionMatrixInverse
JohnLKkk db4f0ac
jme3-core:use logger
JohnLKkk dc3a50b
jme3-core:update javadoc(FastMath.nextRandomFlot)
JohnLKkk 9e977c6
Merge branch 'master' of https://github.com/JohnLKkk/jmonkeyengine in…
JohnLKkk 9c9c2d8
updated license
codex128 83c95e5
updated javadoc
codex128 90e6cd8
renamed mask
codex128 0f410c0
Merge branch 'jMonkeyEngine:master' into master
codex128 5a3ff07
fixed merge conflicts and several bugs
codex128 6fdeb35
refactor FGPass, FGSink, and FGSource to interfaces
codex128 1be8dab
fix method name collision for FGPass
codex128 6247f73
renamed FGPass reset method
codex128 df9c4b9
changes
codex128 79d9426
rebuilt API
codex128 60c5def
fixed framebuffer attachments bug
codex128 a3af1e2
deferred shading usable
codex128 2f008e8
deferred and tiled deferred are working for TestShadingModel.java
codex128 2f4f92b
debugging
codex128 31445ef
debugging deferred pipeline
codex128 dfd3866
more debugging
codex128 097309d
more debugging
codex128 7d14e68
cleanup code
codex128 713ca9c
more cleanup
codex128 a877d00
remove reliance on J3mLoader and clean up code
codex128 fcfaa2b
reorganized java files
codex128 7eab19e
added support for cross-space parameter binding
codex128 34fee37
added optimizations
codex128 9ba9bb3
recoding resource system
codex128 c02d491
redesigned resource system
codex128 66810b7
framegraph operational
codex128 08f60d8
framegraph complete
codex128 6084154
draft ready
codex128 5bbe40f
rename registration method
codex128 86a458b
renamed method
codex128 f68d0ea
delete personal changelog
codex128 1e0af25
remove enums
codex128 9ff4f5d
added information management passes
codex128 8a39bf0
migrated to new ticket protocol
codex128 bd44103
added resource extraction
codex128 45ee1b2
provide logical control of framegraph
codex128 f9156e2
finalized user value sources and targets
codex128 4f0f352
fixed framegraph use on multiple viewports binding textures too often
codex128 1661dcc
fixed depth texture filtering
codex128 02d69d4
added export and import methods
codex128 9966f85
javadoc for new classes
codex128 5505ab4
licenses
codex128 1952784
pass tests
codex128 5e6fe7a
added framegraph opt-out for viewports
codex128 f16977a
added .j3g
codex128 9baebee
delete unused classes
codex128 a2d55f2
fixed background on deferred pipelines
codex128 9fbd053
added basic opencl
codex128 a9d74a1
fixed tests
codex128 970e73c
verified fix for overlapping viewports
codex128 06832da
added framegraph loading speed test
codex128 fe02e94
added framegraph event capture
codex128 ce4b259
fixed framebuffer update flag
codex128 5594184
fixed broken light count
codex128 a41e33f
revert debugging
codex128 c94bee2
fix merge conflict
codex128 deb82d2
Merge branch 'master' into framegraphAPI
codex128 78538fe
start moving lighting logic outside matdef logic
codex128 9cf7dc4
Merge branch 'jMonkeyEngine:master' into master
codex128 d02fa6a
added ticket groups
codex128 0d659aa
migrated lighting logic to render pass
codex128 8a969c9
fixed light tex inverse type
codex128 e1f5ae7
added light pack method junction
codex128 3c18f2f
deleted deferred lighting logic
codex128 39cb0bd
deleted draft files
codex128 6499b8b
added group attribute pass
codex128 f470edd
added indefinite ticket groups
codex128 a62b144
finalized ticket lists
codex128 39d6598
porting filters
codex128 d2c5639
narrowed PBR issue to metallic=1
codex128 eb67e8e
fixed functional array issues
codex128 09d4eba
fixed build errors
codex128 42f5ab6
fixed depth of field filter import-export
codex128 1531f0f
fixed deferred light probes
codex128 b2424bc
fixed ambient and fixed buffered lights
codex128 efa2771
fixed gbuffer packing for advanced terrain
codex128 00f268c
fixed pbr terrain
codex128 dbde835
made render object map threadsafe
codex128 a3eee4c
added multithreading
codex128 60cc523
fix referencing bug
codex128 d10bfc6
added fix for missing defines
codex128 482022a
test async
codex128 4c30527
fix dependency on java 9
codex128 d70e4cd
removed unnecessary atomic boolean
codex128 d1cbd33
fixed more async issues
codex128 2956c9d
fixed camera size when rendering to smaller textures
codex128 a198a80
added addLoop
codex128 15eb3bc
add faze pass
codex128 443643e
improved javadoc and fixed issue with deferred techniquedefs
codex128 a27e6a8
added pipeline interface and added render modules
codex128 2e42965
changes to factory methods
codex128 bb629f2
deleted framegraph system
codex128 99702b0
removed gbuffer shaders
codex128 ddce538
restored deferred and gbuf shaders
codex128 a9ec64d
removed deferred materials
codex128 638fffa
removed effects passes
codex128 959a51e
deleted tests
codex128 951361c
reverted unnecessary changes and moved pipeline classes to new package
codex128 3e7f623
reverted more unnecessary changes
codex128 c0c275e
small changes
codex128 b2cbd79
Merge branch 'pipelineApi' of https://github.com/codex128/jmonkeyengi…
codex128 c9b1438
several changes
codex128 d1ab21b
revert changes in build file
codex128 4d233f8
removed material adaptation code
codex128 980722f
removed savable utilities
codex128 775e66c
removed math utility
codex128 d5a2fd7
made render context implementation less confusing
codex128 2cecbcf
pass viewport to pipeline context
codex128 7850b8d
fixed start method not being called
codex128 7ba557c
remove miscellaneous
codex128 e4a0c87
removed miscellaneous
codex128 f5a2b36
remove miscellaneous
codex128 343a80b
remove miscellaneous
codex128 e548145
changed render start order
codex128 f100750
added license and attempted to revert changes
codex128 d291849
remove target creation helpers
codex128 986603c
added spacing
codex128 b9d7b41
several small changes
codex128 27fd262
added null pipeline and context creation helper
codex128 8e4c4e6
delete GeometryRenderHandler and RenderUtils
codex128 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -286,4 +286,4 @@ retrolambda { | |
javaVersion JavaVersion.VERSION_1_7 | ||
incremental true | ||
jvmArgs '-noverify' | ||
} | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -824,4 +824,4 @@ public TechniqueDef clone() throws CloneNotSupportedException { | |
|
||
return clone; | ||
} | ||
} | ||
} | ||
60 changes: 60 additions & 0 deletions
60
jme3-core/src/main/java/com/jme3/renderer/GeometryRenderHandler.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* Copyright (c) 2024 jMonkeyEngine | ||
* All rights reserved. | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are | ||
* met: | ||
* | ||
* * Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* | ||
* * Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in the | ||
* documentation and/or other materials provided with the distribution. | ||
* | ||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors | ||
* may be used to endorse or promote products derived from this software | ||
* without specific prior written permission. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | ||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
*/ | ||
package com.jme3.renderer; | ||
|
||
import com.jme3.scene.Geometry; | ||
|
||
/** | ||
* Handles rendering of individual geometries. | ||
* | ||
* @author codex | ||
*/ | ||
public interface GeometryRenderHandler { | ||
|
||
/** | ||
* Default implementation that renders the geometry and returns true. | ||
*/ | ||
public static final GeometryRenderHandler DEFAULT = (rm, geom) -> { | ||
codex128 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
rm.renderGeometry(geom); | ||
return true; | ||
}; | ||
|
||
/** | ||
* Renders the given geometry, or returns false. | ||
* | ||
* @param rm renderGeometry manager | ||
* @param geom geometry to renderGeometry | ||
* @return true if the geometry was rendered | ||
*/ | ||
public boolean renderGeometry(RenderManager rm, Geometry geom); | ||
|
||
} |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.