performance updates 7/31/2019
This is mainly a maintenance release which fixes a lot of small issues and reengineers some of the inner workings of the multiple systems to get them to play nicely with each other, hoping to reduce framerate drops and create a more immersive experience.
The most noticeable change should be that when you swipe the saber at the floor the lines will draw a lot faster and more consistently than before. I achieved this by instead of drawing a bunch of spots along a line I drew each line segment in one fell swoop.
Here's a more detailed list of changes:
- the saber repels the floor now, trying to reduce the frequency of it getting stuck with the tip in the floor while it tips back and forth like a pendulum due to the center of gravity being towards the blade tip. I'm still looking into better ways to handle this bizarre behavior.
- the saber behaves better if you start trying to cut an object very slowly, it will switch to a trigger instead of colliding and potentially getting stuck
- the blade now only plays the switch on sound and animation if it was previously in the off or switching-off animation
- fixed some knuckles error, something related to the force-grab mechanic. I don't remember what it was but that's what I wrote in the log :)
- updated to Post Processing Stack v2.0 properly this time, removing clashing files and getting fewer errors, this also involved changing the bloom and exposure settings to compensate for some reason.
- added something I call the Saber Event Manager which manages the cutting and burning scripts so the heavy operations don't stomp all over the cpu and hopefully will create a smoother and more pleasant experience
- removed the LIV plugin because there was an error with the DLL not loading, maybe the version of Unity I'm using isn't supported... I'll get in touch with LIV when I have time and figure this out.
- SaberFloor Job System updates: The script that handles the dynamic texture mapping on the ground plane received some huge updates. The largest update is in how I'm condensing the data down to the bare essentials before sending it off to the job system to handle the heating up and cooling down of pixels. It runs a lot faster but I'm also using the iJobParallelFor jobs in an unusual way, basically I'm indexing into a different location in each array by looking at an index map instead of relying on the native index parameter. Might have to keep an eye on this... but it runs pretty freaking fast.
- SaberFloor line burns: I switched up the "line burning" method from making a bunch of spots in a row to drawing a line properly by calculating point distance to line. This looks so much better and runs so much faster that if feels kind of awesome. Unfortunately, if you go nuts and keep swiping at the floor like an insane person the frame rate will start to drop dramatically. I'll revisit this feature again in the future.
- PostProcessing 2.0 has a cheap bloom toggle. I preferred it turned off but I opted to keep it on because I need things to run as fast as possible. Maybe I'll start working on a preference panel so you can adjust the quality.
If anyone is actually reading this stuff, I love you! Thanks for being patient if you were anxiously awaiting an update. This one took a long time because after writing the Saber Event Manager things were running a lot more slowly and that wasn't acceptable. That's how I ended up discovering all of those ways to improve the saber floor's dynamic textures.
Anyway, it's getting there... on the side I'm also trying to breathe life into the humanoid guy so he can walk up to you, maybe throw things at you and maybe hop around in pain if one of his non-critical limbs gets cut off ;)
Get Saber Thing VR Tech Demo
Leave a comment
Log in with itch.io to leave a comment.