Post Processing

Plugins Post Processing

Screenshot at 2023-08-19 15-25-53.png

Looks like it should be possible, just need to build the UI to interact with it.
 
Almost done, just need to fix a couple of effect ordering issues which disagree with Unity's built in DoF, and add some auto focus options, hopefully new version later today...

Screenshot at 2023-08-20 20-53-21.png
 
This plugin is great, but one of the core issues is performance. I compared the frame rate with Postmatic and found that using this plugin can reduce the frame rate by about 30%, especially in VR mode. Expected to optimize performance ;)
 
This plugin is great, but one of the core issues is performance. I compared the frame rate with Postmatic and found that using this plugin can reduce the frame rate by about 30%, especially in VR mode. Expected to optimize performance ;)
Yep gonna try improve the performance in the next version, I had to do some kludgey fixes to get DoF working properly, it's interesting you seem to get such a performance impact though, on my machine it's less than 5% decrease (still too much, which is why I want to improve it), do you mind telling me what your GPU is? I wonder if it's more of an issue with lower memory bandwidth cards...
 
Yep gonna try improve the performance in the next version, I had to do some kludgey fixes to get DoF working properly, it's interesting you seem to get such a performance impact though, on my machine it's less than 5% decrease (still too much, which is why I want to improve it), do you mind telling me what your GPU is? I wonder if it's more of an issue with lower memory bandwidth cards...
this is my cumputer
In desktop mode, there is not much difference in frame rate, but there is a clear feeling in VR, especially when the camera is close to the character, the postmagic may start to lag when it approaches 0.5m, and the post processing may start to lag when it approaches 1m, which is roughly like this feeling.

But your plugin can bring different effect as Postmatic, it's great, and it won't obscure the menu(y)

无标题432f.png
 
this is my cumputer
In desktop mode, there is not much difference in frame rate, but there is a clear feeling in VR, especially when the camera is close to the character, the postmagic may start to lag when it approaches 0.5m, and the post processing may start to lag when it approaches 1m, which is roughly like this feeling.

But your plugin can bring different effect as Postmatic, it's great, and it won't obscure the menu(y)

Thanks, if it's a 4090 I don't think it's a memory bandwidth issue then 😅 I'll get the profiler out and see if I can find the trouble spots.
 
Great Plugin dude, it's really a nice change-up from Post Magic. I am experiencing an issue, however, with the latest update where settings altered and saved in session plugin presets not being loaded upon on booting up VaM again.

Specifically the Sky Color will revert to its default state as well as any custom LUT used will not be remembered upon booting up VaM or reloading current or previous session plugin presets using the latest update to Post Processing.

Not sure if anyone else has experienced this 👀.
 
Great Plugin dude, it's really a nice change-up from Post Magic. I am experiencing an issue, however, with the latest update where settings altered and saved in session plugin presets not being loaded upon on booting up VaM again.

Specifically the Sky Color will revert to its default state as well as any custom LUT used will not be remembered upon booting up VaM or reloading current or previous session plugin presets using the latest update to Post Processing.

Not sure if anyone else has experienced this 👀.
Hey thanks for checking it out, I'll admit I haven't done a whole lot of testing with using it as a session plugin so it's not too surprising that there are bugs there, it's really intended to be used as a scene plugin only with it's current design, but perhaps I can make some improvements so that it works better when used as a session plugin.

I'm guessing but it's probably just a load order issue with how VaM loads session plugins differently to scene plugins, and not all the Cameras/resources are ready when it loads it as a session plugin.
 
Last edited:
😘 like your plug , fighting
I have a beta version with what should be some performance improvements, would you be able to try it out and let me know if it's better for you?
 

Attachments

  • moyashi.PostProcessingBETA.2.var
    269.7 KB · Views: 0
nice try ! good job (y)

i test it

1.none plug : 190fps avg
2.postmagic: 172fps avg
3.postprocess beta:146fps avg
4.postprocess6 :130fps avg

some pic:
if the fps is higher or equa postmagic, i think i will add it in seison plug haha

fighting!
screenshot-20230828-101313.png

screenshot-20230828-101325.png

screenshot-20230828-101432.png

screenshot-20230828-101545.png
 
Ok, so I am new to modding the plugins for scenes and when I try to get this one to work I get hit with this

!> Compile of moyashi.PostProcessing.6:/Custom/Scripts/moyashi/PostProcessing.cs failed. Errors:
!> [CS1061]: Type `MVR.FileManagementSecure.ShortCut' does not contain a definition for `creator' and no extension method `creator' of type `MVR.FileManagementSecure.ShortCut' could be found. Are you missing an assembly reference? in <Unknown> at [797, 80]
!> [CS1928]: Type `string[]' does not contain a member `Any' and the best extension method overload `System.Linq.Enumerable.Any<string>(this System.Collections.Generic.IEnumerable<string>, System.Func<string,bool>)' has some invalid arguments in <Unknown> at [797, 72]

I have no idea what this means really, all I know is that the plugin doesn't work because of these errors, so if anyone could help out with this issue that would be appreciated.
Edit I have both post magic and colortone not even downloaded.
 
Ok, so I am new to modding the plugins for scenes and when I try to get this one to work I get hit with this

!> Compile of moyashi.PostProcessing.6:/Custom/Scripts/moyashi/PostProcessing.cs failed. Errors:
!> [CS1061]: Type `MVR.FileManagementSecure.ShortCut' does not contain a definition for `creator' and no extension method `creator' of type `MVR.FileManagementSecure.ShortCut' could be found. Are you missing an assembly reference? in <Unknown> at [797, 80]
!> [CS1928]: Type `string[]' does not contain a member `Any' and the best extension method overload `System.Linq.Enumerable.Any<string>(this System.Collections.Generic.IEnumerable<string>, System.Func<string,bool>)' has some invalid arguments in <Unknown> at [797, 72]

I have no idea what this means really, all I know is that the plugin doesn't work because of these errors, so if anyone could help out with this issue that would be appreciated.
Edit I have both post magic and colortone not even downloaded.
You'll need to update VaM I think, other people with that error have been using old versions also.
 
moyashi updated Post Processing with a new update entry:

Version 7

  • Big rewrite of internals to improve performance.
    • Depending on the scene and GPU architecture, Radeon owners may now see better than native VaM performance.
    • Nvidia users should see improvements also, but it's still a bit of a mystery why there's such a difference between Geforce and Radeon cards here... my guess is the classic driver overhead problem but I don't have a working Nvidia card to test with at the moment so need to rely on the community to provide more...

Read the rest of this update entry...
 
hello people, how do you take your screenshots? I tried with SuperShot, but it doesn't work, it's as if I took a screenShot without the effects... I use this plugin to have 4K screens, do you have an alternative?

1693749626276.png
 
would it be possible to make it not override the camera background color so I could use it with sally's plugins in xr? I realize things may get a little funky but still think it would be interesting to try
 
hello people, how do you take your screenshots? I tried with SuperShot, but it doesn't work, it's as if I took a screenShot without the effects... I use this plugin to have 4K screens, do you have an alternative?

I tried to write a detailed post about why it won't work, but the hub won't let me post it because it's "too long" :rolleyes:

I guess the TLDR version: It just won't work.

If there's a demand for it I could probably add a setting which allows people to set the resolution scaling of VaMs built in "hiRes" screenshot camera. To me that seems like the best option even though I personally wouldn't use it.

Just so I understand the use case for SuperShot (I never use it):
  • You run VaM on a low resolution display
  • You want to take higher resolution screenshots than "native"
  • You don't want or can't use OS screenshot tools
If that's correct, then I think I can add an option to take higher resolution screenshots with VaM's built in hiResScreenshot camera.
 
Just so I understand the use case for SuperShot (I never use it):
  • You run VaM on a low resolution display
  • You want to take higher resolution screenshots than "native"
  • You don't want or can't use OS screenshot tools
If that's correct, then I think I can add an option to take higher resolution screenshots with VaM's built in hiResScreenshot camera.

It's exactly that.

I have a particular screen resolution...5120x1440.
And so I play in windowed mode to prevent VAM from exploding my PC, because it is rather demanding, so I am in ~~ 2560x1440.
I used ENB before, but the screenshoots were the same size as my screen, it didn't look really good... so I deleted ENB.
Then I discovered this plugin which allows you to take screenshots in landscape and portrait easily with a 4k resolution which suits me perfectly, it also worked with PostMagic, as it is the same creator, I suspect that he had to make modifications so that the screenshoots also worked with it.
 
You mean this one? https://hub.virtamate.com/resources/camera-background-color-session-plugin.37784/ I'm not doing anything in particular to overwrite background colours, but I'll have a look at what the plugin is doing.

Yeah so I was using your thing as a session plugin instead of scene plugin lmfao. That absolutely breaks both plugins until game is reset. Using yours as scene plugin let's them run together, though it is funky as I predicted. Once I enabled yours I could no longer adjust the color inside of the camera session plugin which is a problem bc the lighting and color changes do affect the background color. Perhaps I can switch the load order and make it work but I have a feeling if I do that I won't be able to adjust post processing settings after. Pretty sure y'all are just writing to the same post process layer and the game gives whichever one loaded last ownership or maybe its bc yours probably updates every tick (unless you're just enabling parameters that unity handles) while the camera color should only have to be set once on scene load. Tbh now that I say all this I totally had a similar thing happen where my script for another unity game touched the post process layer for the main camera and messed with some default game hud/effects like damage indicators.


Honestly I'll just go take a look at both scripts and see what I find lol idk why I'm speculating. but I'm guessing the solution is just to consolidate them into a single script, i.e. add the same feature to yours, maybe in the tab where you can set atmosphere you could also have a flat background option that if enabled would be the last thing to render. Might just implement that myself and see if it even works well and if so I'll lyk
 
Yeah so I was using your thing as a session plugin instead of scene plugin lmfao. That absolutely breaks both plugins until game is reset. Using yours as scene plugin let's them run together, though it is funky as I predicted. Once I enabled yours I could no longer adjust the color inside of the camera session plugin which is a problem bc the lighting and color changes do affect the background color. Perhaps I can switch the load order and make it work but I have a feeling if I do that I won't be able to adjust post processing settings after. Pretty sure y'all are just writing to the same post process layer and the game gives whichever one loaded last ownership or maybe its bc yours probably updates every tick (unless you're just enabling parameters that unity handles) while the camera color should only have to be set once on scene load. Tbh now that I say all this I totally had a similar thing happen where my script for another unity game touched the post process layer for the main camera and messed with some default game hud/effects like damage indicators.

Unusual stuff is probably gonna happen either way if you use Post Processing as a session plugin, I've done zero testing on how reliable it is as a session plugin because it's intended to be used per scene, as (to me) it makes the most sense to have colour correction per scene. However I haven't blocked it from being used as a session plugin... but I might, still considering.

But for the record, I actually don't apply any post processing whatsoever to the main camera, Post Processing works by rendering to an alternate camera, that way I can be sure I don't mess up anything on the main camera as other plugins are (unfortunately) prone to do, so you should never be able to get into a situation where you end up unable to interact with vam because the main camera is messed up.

If you are using other plugins that mess with the main camera though, all bets are off, I can't control what other people do.

Honestly I'll just go take a look at both scripts and see what I find lol idk why I'm speculating. but I'm guessing the solution is just to consolidate them into a single script, i.e. add the same feature to yours, maybe in the tab where you can set atmosphere you could also have a flat background option that if enabled would be the last thing to render. Might just implement that myself and see if it even works well and if so I'll lyk

As for why it doesn't interact well with the camera background... the problem is that post processing (in general I mean) applies to the whole framebuffer as an "after" effect, whereas the camera clear colour is the very first thing that occurs in the frame. The only way I could think to exclude parts of the image from being post processed would be to have a stencil buffer which would contain values either for every object but the background, or just the background and then have my post processing shaders pass through texels that meet the pass or fail condition.

The big issue here is that while I can control what my own shaders are doing, I can't control what unity's built in post processor does from what I can see. And unity's built in post processor is still being used for bloom and depth of field at the moment. So the stencil idea doesn't really work.
 
Last edited:
Back
Top Bottom