(July 2019) Monthly WIP Screenshot Thread

I can’t believe we haven’t started this thread yet!

So one of the groups of code I am working on pulling out of spoxel is my particle system. Ages ago I heavily modified some early code from tonegod’s particle system for use in Spoxel to add things like curve attribute control and particle trails. In between working on post release support for Spoxel i’ve finally got my particle system moved to it’s own project and now i’m going back through and cleaning it up.

This is a pretty simple setup since I just got it running again but it shows a gradient controlling the particle color. I still have a lot of cleanup to do, but my end goal is that you will be able to set most attributes on the entire particle system like you do in unity with either constants / curves / gradients.

11 Likes

Hellow! So this is really old (2016) and in french, but I promised myself some time ago I would publish it so here it is!

Most of it was done during an 48 hour Game Jam in Bordeaux, and we were 4 guys. I do have to warn ya, the voice acting is in french, and kinda… absurde x)

Enjoy! Kinda make me want to go back to my old JME code x)

6 Likes

Hmm… chasing white whales. Day job is taking a lot time still something what I have been up to. Migrate fully to gradle build not just when I had to do some trickery on android studio exposing jmonkey project as gradle module (If I had the time I have an idea to containerize server or even use some docker registry :smiley: and more) … based on this GitHub - aegroto/JMEAndroidTemplate: Android JMonkey Engine project template using Gradle. In mean time i really wanted to see supermarket sliding door and based again on @pspeed Plathform-s I used EntityGhostObject to do some vague logic to move the door wings.

2 Likes

I spent a lot of time last weekend moving my particle trail code over and cleaning it up and it looks like it is all working again.

I’ve been spending a lot of time looking at other engines to get an idea of what particle attributes they expose. Since adding / editing curves is a big part of most particle effects these days i’ve been working on a curve editor for Swing so I can eventually integrate all this into the sdk.


It still needs some cleanup, but it works with my particle curve type which I use in the particle emitter.

18 Likes

Nice.

@glh3586 is your particle trail done by a post-processor filter or by dynamic mesh generation?

Edit:
By taking a closer look at the screenshot I guess it is mesh-based, Yes?

https://www.youtube.com/playlist?list=PLpPd_BKEUoYh40LeJXTgA6E53gCMPq3MX
These are some spell particle effects tutorials done with Unity, the author uses various options available in the editor to make these effects, it might help you to get an idea for your editor.

I’ve been using dynamic mesh generation for the trails. It’s allowed more control over how they act during their lifetime. You can set curves / gradients to control the color and path width for example. I’ve been looking at the unity editor pretty extensively to figure out what would be good options to add and what the particle system is missing. Most of the attributes are based on similar ones to unity which allows you to use constants, curves, and random between two values etc etc.

How the editor is a little limited based on what i’ve seen from the SDK. I’m still looking into how I can make that work more effectively.

3 Likes

Regarding SDK integration, I do not want to discourage you, just want to say my own opinion, if it were me I would rather develop my editor in form of a standalone JME app state using an existing GUI library like Lemur, Nifty, … so one can use it by simply attaching the app state into state manager.

I see why you’d say that, but that results in global fragmentation. The SDK would be exactly the right place to put these things IMO so we only need one thing to get all the goodies, not 500 different apps to do all the things we want.

2 Likes

Sure, if my only goal was to just play around with a particle effect. To actually be useful it requires being able to work with the entire scenegraph and at that point I may as well remake the SDK functionality. Adding an app state is more a programming tool… adding it to the sdk is an artist tool. It’s long since time for jME / the sdk to get a more modern particle system :slight_smile:

1 Like

Just playing around a little bit to see how close I could get to that example :slight_smile:

13 Likes

Man, it looks really nice. :smiley:

Ha! That’s great. Who needs Unity? :monkey_face:

indeed this looks amazing :slight_smile: but what about FPS?

Most of this code I pulled from Spoxel and I didn’t see any real hit to fps there. Since this isn’t using any sort of post processing effects it’s really bounded by the transfer rate between the CPU and GPU at the moment. Long term, I would like to go back and look at adding instancing for PC’s that support it to help reduce the transfer rate, but things like particle trails would still be difficult to support without cutting features like width over time / color over time.

1 Like

Hello everyone,

It s been a long time and i wanted to show some new water simulation that work with the Builtin Jmonkey height map.

It s a proof of concept that work in multiplayer.

Hope you enjoy :slight_smile:

8 Likes

Hello @glh3586. I want to implement the same curve in other applications (cinematics) to interpolate values. I wanted to use Cutmoll-Rom spline to do that from the FastMath class, but it doesn’t support more than 4 controlling points. And I have no idea how I should I implement the yellow points in your image that are controlling the control points :sweat_smile:. Could you help me.

Unless I’m getting my curve types mixed up, I didn’t think Cutmoll-Rom curves used any sort of handles like bezier curves do which is what is shown in that editor. Bezier curves are pretty easy to work with because each segment between control points kind of stands on it’s own. So you can feed in the control points and the two handle points and draw / query the curve. The swing component i’m integrating into the SDK basically just draws all that data. Then to draw the actual curve I just query the curve’s value over a bunch of steps and draw lines between those steps to get the actual curve.

Cutmoll-Rom curves function a little differently, but they use the control points and don’t have any sort of handles. Each segment between control points uses the two previous control points and the two future control points in order to generate the curve. You get a nice smooth curve in between those points, but you have a lot less control over the curves exact path.

1 Like

I had a lot of fun watching these when I wanted to make my own:

3 Likes

Thanks very much @glh3586 and @jayfella. This video is very useful.

1 Like

I wish I had watched that a couple weeks ago :slight_smile: That is a great explanation of it.

1 Like