Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
196 stars 9 forks source link

Ability to adjust/disable post processing #322

Open Casuallynoted opened 4 years ago

Casuallynoted commented 4 years ago

I have a friend whose eyes are very sensitive to bloom. He asked me if I could put in a feature request for a way to disable post effects, or maybe to adjust them down a bit!

Sent with GitHawk

shiftyscales commented 4 years ago

It would be handy both for personal preference, and performance reasons to expose elements from the post-processing pipeline including bloom, and ambient occlusion, as well as core rendering components such as texture filtering/anisotropic filtering, dynamic resolution/resolution scaling, texture resolution (like in the launcher), and more.

The current settings could be left as a default/"as intended" profile to ensure accuracy/consistency with the experiences users craft, while allowing user overrides of graphical options while in-game in cases where additional performance/lower fidelity is desired.

Frooxius commented 4 years ago

This is planned, but it needs the architectural update first, for worlds to communicate their render settings with the renderer. This will enable things like adjusting filters, clipping distance and other render parameters from the world and allowing user overrides.

shiftyscales commented 4 years ago

That's fantastic to hear. It's outside of the scope of this particular issue, but what about broader/general video settings such as render scaling/dynamic resolution options, texture scale (which is already available outside of Neos), etc. @Frooxius?

Busdriver101 commented 4 years ago

I'd like to +1 this, I like graphic options, the more the better.

BlueCyro commented 4 years ago

So I'm gonna state my thoughts on this based on some things I heard from shifty. I think worlds having the ability to override settings is great for the intended effect the world is supposed to have, but I don't believe that worlds should have the ability to force overrides, as ultimately graphical settings shouldn't affect gameplay much aside from the visual quality. If say, a popular world had forced bloom, the OP wouldn't have a great experience since they wouldn't be able to turn it off. And the 'avoid the world' argument inherently means avoiding the people in that world with which you might potentially want to spend time with. If you want my full thoughts, read here: https://pastebin.com/aXrnY7As

I firmly believe that while world creators should have respect for how they want their worlds to look, there shouldn't be a way to force their preferences on users as not all people can tolerate certain visuals, including myself or people with medical conditions such as epilepsy or sensitivity to certain types of lights or colors.

Enverex commented 4 years ago

Surely in that instance you'd request that the map author add a toggle/adjuster for bloom? The problem I see here is people adjusting or turning things off globally and then forgetting they did it. I've had that happening with people muting different sound levels then getting confused when they couldn't hear the world sound effects telling them what to do.

BlueCyro commented 4 years ago

The user overrides for worlds shouldn't be global, they should be on a per-join basis so people don't forget to turn things back on. And talking to the world owner isn't always an option 100% of the time, and won't be as feasible even if you can once neos gets bigger and map creators get busy.

H3BO3 commented 4 years ago

I understand both sides here, in VRC especially people put in settings panels to modify or disable postprocessing and particle count since controlling those things is not native there either. I don't see why Neos worlds couldn't have similar panels. I feel like a lot of these issues will correct themselves, and communication to a map author is key for what you want to see them add.

I also understand overriding effects on a per-session basis, but I think the number of those would be limited - Otherwise you would get unfair advantages in games that relied on the postprocessing to cause certain visual occlusion, etc. It's a tough problem. If you exposed those settings to all users, you'd then have to add another native configuration in the world that prevented people from overriding those effects, if the world needs to be that way.

BlueCyro commented 4 years ago

So I'm aware that things like AA have been looked into and a few methods have been tried. I know that things like post-processing control would be further down the line, but I saw something talked about a little while back that's called CTAA. From the comparison videos, this looks to be the anti-aliasing we all want. Could this be looked into perhaps? I've frequently been jumping to and from VRC and Neos recently which is really highlighting just how starkly better the image quality is with proper AA - especially with high-resolution headsets, you can read things from muuuch further away and the shimmering is small enough that you can basically ignore it. Would love if perhaps this could be explored maybe a bit sooner rather than later.

Enverex commented 4 years ago

For reference, the conversation was on 25/07/2020 in the #neos-full-dive channel if anyone wanted to read back.

shiftyscales commented 4 years ago

I made a GitHub issue for you about the integration of CTAA @RileyGuy @Enverex. #853

There is one major factor I could see blocking its integration, and that is a lack of URP/SRP pipeline support at this time, which would block #335.

But it sounds as though the developers intend to integrate support for it as soon as they're able if/when additional development is made by Unity which would enable it.

Frooxius commented 4 years ago

@RileyGuy CTAA could potentially be integrated, however if you have trouble with reading things far away, AA won't help you with that, you need to increase your render target resolution.

AA helps with jagged edges of objects, but not with clarity of textures and objects within the surface of the object.

hiinaspace commented 3 years ago

Neos is the one of the few VR programs that gives me a vague sense of unease and headaches after playing for >30 minutes, and I've heard the same complaint from others. I suspect it's because the SSAO in neos isn't stereo correct, as well as its general muddy appearance in VR along with the bloom. Being able to disable the SSAO/bloom would be nice to test this theory, even if it's some hidden command line option instead of in-game.

Toxic-Cookie commented 3 years ago

Gonna throw this another upvote. SSAO is garbage. I'm tired of seeing weird blackness that I can't get rid of.

StarfishHidari commented 3 years ago

I frequently avoid making bright worlds because of how difficult it is to work around the SSAO and make it look good

StarfishHidari commented 3 years ago

Since the motion blur issue was closed, the motion blur makes it impossible for Screen users to enter my world. I can't do anything to fix it other than just telling them to turn off the fast moving tunnel system

StarfishHidari commented 3 years ago

Since motion blur was made to start working again on cameras and now shows up when switching from VR to desktop mode as well, it is causing issues in me and other people's worlds. The motion blur renders on top of things, and for the audio reactive content we are making that often has rapidly moving objects, which makes this even worse.

here are reference pictures from RezX's world in desktop mode; image image here is a comparison photo i took while in VR; 20210330193238_1

here are photos from my world in desktop mode; image image here is a comparison photo taken in VR; 20210330192924_1

motion blur is also causing a lot of issues for people streaming, since the motion blur shows up on cameras, it causes bitrate issues for them.

please remove motion blur, at least until we have the UI to be able to turn on and off different post-processing effects in the future, it's causing a lot of issues right now that we have no way of dealing with until that UI is added.

Toxic-Cookie commented 3 years ago

Seconding this. If new users join and check out the awesome worlds like this and all they see is a blurry mess, it isn't going to leave a great impression. I'd rather have it off and no way to turn it on than have it on and no way to turn it off.

SnooperXP commented 3 years ago

I had a similar experience with my home world, even without movement on screen mode.

In my case it turned out to be avatar specific, something odd was set on the near / far clip of the avatar.

Just asking for posterity, but its definitely screen mode specific and not avatar specific?

shadowpanther commented 3 years ago

It also obscures the context menu image and the Dash image (second picture by AirRide#6519) making UI entirely unusable in some circumstances.

StarfishHidari commented 3 years ago

I had a similar experience with my home world, even without movement on screen mode.

In my case it turned out to be avatar specific, something odd was set on the near / far clip of the avatar.

Just asking for posterity, but its definitely screen mode specific and not avatar specific?

It is not avatar specific, the motion blur is a feature of desktop mode and cameras.

It also obscures the context menu image and the Dash image (second picture by AirRide#6519) making UI entirely unusable in some circumstances.

adding onto this, any UIX (alongside many things with some level of transparency) get rendered over top of by the motion blur

Helix-9 commented 3 years ago

Though motion blur can certainly help the visuals at times, more often than not it applies it to other segments of my world where it shouldn't apply. Neos_1PNmT01yeW The issue is pronounced whenever I do some more specialty modes within my world image image Here's what the second image looks like in VR with the same song at similar timing (because the ring is rotating quickly due to it's loudness). image There will also be users who are likely joining Neos from Wave as well, some are likely to use desktop mode and they might not be able to get the full impact of a performance if the motion blur smears the lines in the world.

Toxic-Cookie: Seconding this. If new users join and check out the awesome worlds like this and all they see is a blurry mess, it isn't going to leave a great impression. I'd rather have it off and no way to turn it on than have it on and no way to turn it off.

StarfishHidari commented 3 years ago

Yeah for the people coming over from Wave, I'm going to have to completely disable anything fast moving such as the tunnels for desktop users, which would severely compromise the performance for them

Frooxius commented 3 years ago

Looks like in those examples the main issue is that motion vectors are generated for objects that shouldn't have them and that it's affecting some objects in the transparent pass that it shouldn't. Disabling motion blur completely in those cases is a bit of an overkill.

In 2021.3.31.528 I have added some new features to deal with this:

However I do not understand the picture by AirRide#6519. It looks like the curved dash, but that's only in VR, where motion blur isn't active at all. Are there cases where motion blur activates while in VR? That's definitely not intentional, but I haven't seen it happen.

Full post processing control is a bigger feature that will come later down the line.

shadowpanther commented 3 years ago

However I do not understand the picture by AirRide#6519. It looks like the curved dash, but that's only in VR, where motion blur isn't active at all. Are there cases where motion blur activates while in VR? That's definitely not intentional, but I haven't seen it happen.

It was taken in legacy desktop mode, screen mode Dash renders separately on top of motion blur effect and is not affected.

shadowpanther commented 3 years ago

Motion blur still takes over any Unlit material, even an opaque one as can be seen here image Same results with pasting a picture into a world.

TehTurk commented 3 years ago

While disabling it might be overkill, shouldn't that be an option? I know some folks just genuinely aren't comfortable or it can cause motion sickness for them personally. It's not a feature most games have and has always been more of an optional choice then integrated choice.

In the recent patch you brought up artifacting is there a reason this happens? Isn't because some objects are affected by blur while others aren't?

Frooxius commented 3 years ago

@TehTurk Yes it will be an option. I made it into an option for in-game cameras already so you can configure it on these, but doing it for the main view has a few prerequisites that need to be done first, notably reworked Settings and mechanism to communicate post-processing settings to the renderer. It's not a quick change.

The artifacting happens because a lot of temporal algorithms use motion vectors for their function, motion blur being just one of them. Some forms of antialiasing and the AO use it as well to determine how have things moved in the last frame and compensate for it.

TehTurk commented 3 years ago

No that's completely understandable, wanted to ask mainly for the main view :) I figured it was tied in some way just asking for context for others.

Hmm okay

Frooxius commented 3 years ago

It's also part of using the right tool for the job. Some of the examples provided aren't as much problem with motion blur, as with needing to exclude specific objects from it, since they don't interact with it well. That way people who want motion blur on in general can still use the world without getting too many graphical glitches.

Having it completely off or adjusting the strength will be added too, it just needs more stuff to be done first before that can be done properly.

StarfishHidari commented 3 years ago

the ability to turn off motion blur for problematic objects has helped a lot, but ive realized I cant turn it off for particle systems causing them to still look messy for desktop users

could this functionality be added to particle systems?

StarfishHidari commented 3 years ago

image image this is what fast moving particles look like with the motion blur, they also override radial menus

leetfin commented 3 years ago

+1, would love to be able to adjust and disable motion blur.

StarfishHidari commented 3 years ago

image image

I cannot adjust motion blur at all for particle systems, it makes UI very hard to read and I am also noticing frame dips on desktop that are not present in VR.

Additionally, most of the uses that I and other people I'm working with have for particle systems is particle tunnels, which cover the entire view. Meaning that if we cannot adjust motion blur for them, desktop players are going to have an awful experience and we may as well just disable them completely for desktop players.

ZellorIND commented 3 years ago

I also have an issue that should be brought up as well. I have audio and visual processing issues, and they can cause overstimulation very easily, and in many worlds that i might be able to stand in VR chat or a different game, the post processing effects on Neos cause those worlds to be much less bearable and often to be way more overwhelming than originally intended. this can also often make people who experience epileptic conditions have issues as well. it's not just a question of visual quality that the game is missing out on, but also accessibility that needs to be considered as well.

H3BO3 commented 3 years ago

Is it possible a temporary toggle for motion blur on desktop could be implemented as a launcher option and startup argument? This wouldn't be related to postprocessing for worlds, so if it should be its own issue I could make it such.

tarocco commented 3 years ago

I think that having a toggle for the motion blur is essential. The motion blur effect used for desktop (screen) mode is exaggerated and has apparent unintended effects.

As a side note, realistic motion blur in games (without a drastic performance hit) is not an easy feat. Expecting motion blur FX with zero unintended effects would not be practical.

dracogryph commented 3 years ago

Compared to what I see on my friends' streams, Neos VR's SSAO flickers constantly for me. I would like to be able to adjust its settings, preferably to disable it for myself.

I'm completely fine playing other VR games at 15~20 fps for hours on end, but I can only play Neos VR for 20 minutes before I get a headache, even at a smooth 120 fps.

https://user-images.githubusercontent.com/31146498/125151114-1bb2c780-e11b-11eb-92ef-8cf278362536.mp4

I suspect this has something to do with me being on an AMD graphics card (5700 XT), but I haven't run across any solutions to this yet.

hiinaspace commented 3 years ago

I finally got fed up enough with the same headaches that I made a MelonLoader-based mod to disable SSAO. The PostProcessing (motion blur, excessive bloom) is also easy to turn off as well by disabling the PostProcessingLayer component on the Camera GameObjects, but I haven't gotten around to wrapping that in another mod. You can toggle the component in the meantime with the universal https://github.com/sinai-dev/UnityExplorer.

epicEaston197 commented 2 years ago

Compared to what I see on my friends' streams, Neos VR's SSAO flickers constantly for me. I would like to be able to adjust its settings, preferably to disable it for myself.

I'm completely fine playing other VR games at 15~20 fps for hours on end, but I can only play Neos VR for 20 minutes before I get a headache, even at a smooth 120 fps.

Neos.VR.SSAO.flickering.mp4 I suspect this has something to do with me being on an AMD graphics card (5700 XT), but I haven't run across any solutions to this yet.

I don't know if this could also because of how far away the room is from spawn it's not far away enough to cause floating-point errors so it should be fine

Geenz commented 2 years ago

Hey guys, I know how much this means to everyone but I'm setting this one to a low priority until the settings UI rework is complete. The idea is to have a rendering panel generally where you can set some of this. But for now, there's just higher priority things that proceed this.

Toxic-Cookie commented 2 years ago

Hey guys, I know how much this means to everyone but I'm setting this one to a low priority until the settings UI rework is complete. The idea is to have a rendering panel generally where you can set some of this. But for now, there's just higher priority things that proceed this.

3rd party solutions are a nice hold over for now. It would not be practical to add even more settings to the crowded settings menu we have now.

ghost commented 2 years ago

yeah i also have the same issue, motion blur is so much it attacks my fps

ZellorIND commented 2 years ago

This is actually fixable now with Neos Mod Loader, which is public and actively supported by the devs. https://github.com/neos-modding-group/NeosModLoader

zkxs commented 2 years ago

yeah i also have the same issue, motion blur is so much it attacks my fps

While we wait for this feature to be implemented in the base game, in the meantime we have a workaround: https://github.com/RileyGuy/PhotonicFreedom

shiftyscales commented 2 years ago

Appending to the above comments- our mod and plugin policy can be found on the wiki: https://wiki.neos.com/Mod_%26_Plugin_Policy