(July 2019) Monthly WIP Screenshot Thread

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:


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:


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

I would like to participate this months as well.
Last time I did something I discussed the option of making my own lemur element in our forum

Finaly I found time to work on it. And here it is

edit: the brown panels are WIP, to check if the size is realy constant…

I made my own lemur “Readfield” - copy+ paste + edit of the Lemur listbox structure.
It is in the end two textfields and a slider.

The main feature is, that the element will keep the size you set it too. Even if the text is changed, the headline is hidden or the slider is attached or detached. Headline is user choice but slider comes if the element realizes its to small to show all the text.

To do so I added own Styleattributes like width and height

   @StyleAttribute(value = "setReadfieldPreferredWidth", lookupDefault = false)
    public void setReadfieldPreferredWidth(float width) {

I can now easily change the style of my “Readfield” or its subelements like headline, textfield or slider like that

ElementId id = new ElementId("readField");
subid = id.child("textField");
lbhg = new QuadBackgroundComponent(readfieldtxtfieldbgrcolor);
GuiGlobals.getInstance().getStyles().getSelector(subid,"OSG").set("background", lbhg.clone(),true);

I added my standard mouslistener (so you can click inside the text and the cursor will be set to that exact position) and slider functionality.
For slider functionality I needed to add the option to manually set the Y-Offset of the textfield in my lemur modification. This is done automatically by arrow keys but I just did not have the option to set it via code. E.g. if you need to jump 5 lines at once.

What is it good for:
Well I know you may say there is already an element in lemur that is showing text…

I needed an element, that I can reuse and set to whatever size I need it with variable text. My idea is to have something like an unit description or background information from wiki that comes via database or textfile. So you never know how much text you will have in the end.
For headline I have deleted all key mappings but for the textfield I will keep the textselect and copy function. So you will be always able to copy interessting parts from a description shown and search for it.
Maybe I will also add a spacer to show an image but I have not yet decided about it.

However I will see when I can go on and as usual I have to say, that lemur gives great opportunities.


The second version of JStoryMaker is available now. The tool needs some more tests, but it’s fine.
This is a simple cinematic I made with JStoryMaker

I am thinking about adding the ability to record the cinematic and save it to a video, but unless there is no official way to view a video in JME3 this feature will be useless.
JStoryMaker Thread


It does require you have VLC player, though. I think you can bundle the DLL’s - not certain on that one, though.


Yes. Maybe I will add the feature and let the user decide the way of showing that video using VLC or JavaFX. Thanks

I’ve been splitting time with another project, but I finally have a curve / gradient editor working in the SDK. There is still a LOT of cleanup work I have to get done. I’ve had to rewrite most of the particle system in order to play nice with the SDK, but I think the API is starting to stabilize now. At the moment there are three special types that most of the particle system uses. These attributes can be static or animated over time depending on the settings you use. These attributes are:

  • Value Type - This is a single float value. This can set to a constant value, a curve, or random between two values, or random between two curves.
  • Vector3f Type - This includes attributes that have 3 components such as velocity over lifetime. This has the same modes as the default value type.
  • Color Value Type - This controls colors. It includes constant, random, gradient, and random between two gradients.

So, moral of the story is that progress is being made and i’m getting closer :slight_smile:


Last day before holiday I “finished” my Readfield element.

Adding an optional picture or 3D scene made the whole thing more complicated.
I needed to fight styling ( to many elements bring their own container with own background) to make an even appearance.
Anyhow - now I have my element with “constant” sizes, optional headline and optional picture or 3D scene.

In 1 or 2 months I will go on with the next menu.


If this is Lemur, you can override the styling on containers underneath another container if they’ve been given proper element IDs.

…if it’s something non-Lemur, then I have no idea. :slight_smile:

I was lucky enough to have done this - at least most of the time. But as I used textfields and changed the style of them in generell and then I had used textfield as headline and textfield in this element I ended up with ID chains of 3 parts. Another issue came when I added a container for the picture or scene. Once you attach a slider to the layout the headline and container that holds a picture take the space directly above the slider. Initially I gave my element and the textfield a background. So I ended up with color at a place I did not like it or colors of two containers mixing to a new color (i use alpha).
In the end I confused myself with too many IDs for the elements I used and the colormix used in my lemurstyleappstate.
Im not working daily on this but I spend 1-2h to change styling and IDs and it works OK right now. But I am sure it would need another rework if someone else would need to use it or if I am confusing myself again in a few weeks by deceiding to change something e.g. a color.
It is a good advice to spend some time on structuring the styling. It took some time and needed some rework but it is also saving a lot of nerves and time.

If you decide to revisit it and want some advice, feel free to start another thread where we can drill in deeper.

1 Like

Progress! I’ve added a dialog to add some of the different particle modules so now I can use trails! I also added the dialog to handle Vector3f attributes. I also reworked some of the attributes to allow text input for non-curve types to allow for simple editing without opening a dialog.

I’m also starting to go back through the particle system and exposing / adding new attributes. The screenshot above is using a new orbital attribute. I’m still working out how to expose certain things like emissions.