Go to https://melonwiki.xyz/ and install MelonLoader onto the Unity game you want to mod.
Run the game once and then close it.
Go into your game directory and place CullFix.dll inside the Mods folder
Run Boneworks and enjoy a culling free experience!
I’ve tested it out in Boneworks and it works perfectly There is no more objects popping in and out of my peripheral anymore. There’s no need for parallel projection to play Boneworks now. And there is absolutely no change in the performance of the game.
Please see the README in the github project for instructions on how to modify the code for compatibility in games that don’t use the “ValveCamera” class.
Nice job! See if you can also do it with the Unreal Engine games, although I don’t think that’s possible, without recompiling the original game code.
Unfortunately, each simulator usually has its own graphic engine.
It’s possible if Pimax Experience software automatically installs MelonLoader on the Unity games with culling and place the dll in there. Right now the dll only works on Boneworks it seems. MelonLoader is open source.
I’m looking into patching VRChat and haven’t found the right class yet.
Its funny , reading the technical explanation as to why the culling happens in the first place , and how simple it is to fix. Makes me real mad at the twerps at UploadVR for trying to lay the blame for objects popping in at Pimaxes feet.
These fools dont even realize , none of this is Pimaxes fault, its game engines refusing to catch up with Pimax.
The fact that Pitool even allows you to run with PP off at all is a minor miracle. I mean sorry Upload Schills, Pimax is an advanced headset that takes the training wheels off of VR and these sorts of things are the result.
But those clowns can’t stop hating on Pimax long enough to read @risa2000’s website and educate themselves to give Pimax a chance.
Unreal Engine doesn’t require this fix as I believe it uses two cameras for culling. I’ve never seen a single UE4 game affected.
In the far future, this will also be fixed for Unity as I have seen the OpenXR plugin source code which also uses two culling cameras for multi pass rendering. For single pass it would still happen though.
I’ve been looking through VRChat, Pistol Whip, and Blade & Sorcery and cannot find a solution. I try the class names I found and MelonLoader gives me an error saying the Hook method I’m calling returned null. It seems it only allows access to local classes and not those in other namespaces. I’ll have to look into an alternative. Also I wanted to patch Onward culling but they have EasyAntiCheat which would need to be bypassed first.
I can only try to fix games that do object culling in the periphery. For games that superimpose the same image in each eye such as Elite Dangerous and Project Cars 2, PP would still be needed.
Every simulator has its own “in house” engine.
The only solution would be for Pimax to develop code that studios could quickly incorporate into their programs and to convince these studios to add it to their code, including Valve.
They can’t wait for the current studios to bother changing their code for just a few users.
I left Pimax an Excel with the engines and studios of quite a few games, as a reference of who to call. Of course, if you don’t call them and don’t convince them somehow, it’s useless.
laminar research has already said that they are not interested in offering individual solutions. In her opinion, Valve should take care of it in SteamVR
@SweViver Hey Marcin, could you please take a look at this probably great automatic feature if one/you can implement it in one of future Pimax Experience editions? Thx in advance for considering!
I’m working on fixing culling in Blade & Sorcery. I asked around on the Blade & sorcery discord and someone told me the main Camera is called in the PlayerHead class.
So full class name is: ThunderRoad.PlayerHead and it has functions OnEnable and OnDisable and it references this.cam which is the UnityEngine.Camera class. Camera class has FireOnPreCull. I might have to use the official B&S SDK to make the mod instead of MelonLoader.