Today I played around with some 2D physics. Making use of jME and my Dyn4J integration.
Billboard grass, flowers, tree leaves…
Post processing: FXAA.
Performance-wise, works okay.
Since deffered rendering is used, I use screen door transparency (dithering.) What’s left to do is to blur the resultant dither patterns. As can be seen fxaa alone is not enough for the job.
Since it’s such a problem doing transparency in deffered, why use transparency for simple “cut out” shapes like flowers, grass since they’re not semi-transparent after all.
Well, reason 1: so that the edge is smooth. However then, I remembered of distance field text. No clue why this hasn’t crossed my mind before.
Thus, I converted my images to distance fields, 128x128 for grass, 64x64 for flowers:
As bonus, added a gradient, + outline for flowers.
As before, fxaa for final finish.
[the tree has been left intact for now]
Next time you’re doing billboards, grass/flowers: don’t forget distance fields are an option.
Today I spend some time figuring out how to get mixamo models and animations to work in jME.
I implemented a basic controller for character steering and added some physics to the scene.
In this example I placed a few crates on the ground for the character to bump.
As soon as the character reaches his destination it will play one of the standing animations (idle, jump, kick, box, etc.).
When that animation has finished it will choose a new destination to walk or run to.
Here is a little video of the test:
Finally added basic player login service
I decided to not to go with Http and Auth for now.
Client sends a hashed password to server, and server rehash it again with salt and save it to user-db.
At the moment I use a FileUserRepository which is encrypted with password using Java
CipherOutputStream. (I may add an SqlUserRepository later if I ever need).
For the next step I am going to add forgot password option, as I am already getting users email on registration, I can use Java Mail API to send them a new temp password.
Send them a link to reset their password. That way passwords are never transferred plain, and will follow your hash flow from client to server as normal.
Good job getting it set up. Its the beginning of a whole new set of tools at your disposal
Yes, thank you. I was discussing this with my brother right now and he exactly suggested me to do as you said.
why so low fps? some kind of limit?
Yes, when developing I limit it to 30 fps (
AppSettings.setFrameRate(30);) to save some laptop battery. (It is not precisely locked at 30 fps, for me it runs around 27)
And finally added a dynamic sky
Here is a test video on a PBR landscape.
Thanks from @sgold for his awesome SkyControl library.
Shamelessly ripped Paul’s Lemur propertyPanel to work with JavaFX. Makes life so much easier for debugging.
Would you shamelessly share said code ?
Absolutely as soon as I can get the kids off my pc. They have their own but mine is the best so I get nagged to death. Will probably be tomorrow now. It will give me half an hour to clean it up a little while I’m there.
Hi @ndebruyn, I just did something similar (not so fancy) and I’ve been wondering what is the correct approach. I exported from mixamo to blender and then export from blender as gltf. The issue I have with mixamo is that it does not allow me to combine multiple animations into one downloadable model so I have to combine animations on jME level. Is this just me or did you have to do it same way?
Hi @raistm, this is the exact steps I take.
How to animate models for jME with Mixamo:
- Choose a model to upload to mixamo in the T-pose
- Go to mixamo.com
- Upload you model
- Find an animation
- Download the character from mixamo as a .dae with skin
- Unzip the file
- Open blender and import the .dae file.
- Save the file as .blend to you jME assets Models folder.
- Open jME and in your project find the model.blend file right mouse click and convert to .j3o
- For more animations go to mixamo and find a new animation.
- Download the character as .dae with skin.
- Open same old model with previous animation and import that animation into that blend model.
- In blender open the drop sheet and go to the Action Editor.
- Select the new animation and rename it to an appropriate name.
- Save again to you jMe assets Models folder.
- Convert the model again to .j3o in jME.
- In jME Scene Explorer you will find multiple models of the same. Find the one with all the animations and delete the rest. Then save the model.
You can always automate the process with a script. I instead got an import scripts which converts other data to j3o or whatever else.