It differs from this other one because it uses Effekseer’s Runtime and some trickery to render the particles into a framebuffer, while @destroflyer 's one is a rewrite in java.
The library uses the same logic of the editor via the native apis, this means it can support all the features out of the box, however, being it a native library, it is not as portable as the java implementation and is currently limited only to Windows and Linux 64 bit with OpenGL 3+.
You can find usage infos and gradle coordinates on the github repo.
Yes, it’s supported in Effekseer, but this is a limitation of the way i implemented it in jme.
The current code uses glBlitFramebuffer to copy the scene depth into the target framebuffer. I can look into a workaround if support for lower versions is needed…
Note: now it is possible to serialize the Effekseer emitter into a j3o, however the library is still required at runtime and likewise the efkefc file and all the relative resources must be accessible by the asset manager.
Could not resolve all files for configuration ':compileClasspath'.
> Could not find effekseer:effekseer-native:jme.1.1.1.
Searched in the following locations:
file:/C:/Users/Pesegato/.m2/repository/effekseer/effekseer-native/jme.1.1.1/effekseer-native-jme.1.1.1.pom
file:/C:/Users/Pesegato/.m2/repository/effekseer/effekseer-native/jme.1.1.1/effekseer-native-jme.1.1.1.jar
https://jcenter.bintray.com/effekseer/effekseer-native/jme.1.1.1/effekseer-native-jme.1.1.1.pom
https://jcenter.bintray.com/effekseer/effekseer-native/jme.1.1.1/effekseer-native-jme.1.1.1.jar
https://jitpack.io/effekseer/effekseer-native/jme.1.1.1/effekseer-native-jme.1.1.1.pom
https://jitpack.io/effekseer/effekseer-native/jme.1.1.1/effekseer-native-jme.1.1.1.jar
Required by:
project : > com.github.riccardobl:jme-effekseerNative:-SNAPSHOT
GRAVE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.UnsatisfiedLinkError: C:\gd\psgt\ppppvsssss\EffekseerNativeForJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at com.jme3.system.NativeLibraryLoader.loadNativeLibrary(NativeLibraryLoader.java:685)
at com.jme.effekseer.Effekseer.<clinit>(Effekseer.java:60)
at com.jme.effekseer.EffekseerPostRenderer.<init>(EffekseerPostRenderer.java:19)
at com.pesegato.p8s.appstates.Loading3AppState.initialize(Loading3AppState.java:187)
at com.jme3.app.state.BaseAppState.initialize(BaseAppState.java:132)
at com.jme3.app.state.AppStateManager.initializePending(AppStateManager.java:317)
at com.jme3.app.state.AppStateManager.update(AppStateManager.java:347)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:255)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:153)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:193)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:234)
at java.lang.Thread.run(Thread.java:745)
GRAVE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.NullPointerException
at com.jme.effekseer.EffekseerEmitterControl.isChildOf(EffekseerEmitterControl.java:64)
at com.jme.effekseer.EffekseerEmitterControl.isChildOf(EffekseerEmitterControl.java:64)
at com.jme.effekseer.EffekseerEmitterControl.isChildOf(EffekseerEmitterControl.java:64)
at com.jme.effekseer.EffekseerEmitterControl.isChildOf(EffekseerEmitterControl.java:59)
at com.jme.effekseer.Effekseer.lambda$beginScene$0(Effekseer.java:224)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
at com.jme.effekseer.Effekseer.beginScene(Effekseer.java:224)
at com.jme.effekseer.EffekseerPostRenderer.postFrame(EffekseerPostRenderer.java:71)
at com.jme3.post.FilterPostProcessor.renderFilterChain(FilterPostProcessor.java:285)
at com.jme3.post.FilterPostProcessor.postFrame(FilterPostProcessor.java:334)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1114)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1166)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:272)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:153)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:193)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:234)
at java.lang.Thread.run(Thread.java:745)