Forum Discussion
muglore
12 years agoExplorer
Best water shader for rift + unity
I've tried several water shaders including the unity pro water shader and the tasharen water, but both use screen space rendering which results in pixel artifacts and inconsistent visual feedback, not to mention a massive hit on frame rate when rendering dual.
I'm curious if anyone has found a good reflective/transparent water shader with sine animation that plays nice in unity with the oculus ovr?
I'm curious if anyone has found a good reflective/transparent water shader with sine animation that plays nice in unity with the oculus ovr?
14 Replies
Replies have been turned off for this discussion
- drashHeroic ExplorerWhen you say "inconsistent visual feedback", do you mean that the water seems to lag behind the headtracking? I've solved that by turning off the "Call in Pre-Render" option of the OVRCameraController. It is a big hit on performance though, I agree.
- gunairExplorerVery good question!!!
I've tried The Unity Pro Water Shader too for my "Back to Hogwarts "demo. The huge lake is in the center of the demo, so water is important. Well Unity pro looked very good, but the lost of performance is horrible! - And so not usable. There are some other good looking shaders or water models in the Asset Store. But I don't want to buy them one after another to check them...
So please, which water do you use? Does it look great, how is the performance? Or did you just chose a compromise? It would be very helpful to know!!!
Greetings from Germany,
Gunair - mugloreExplorer"inconsistent visual feedback" - yes, it lags where there are gaps in the BG geometry or the depth buffer shows. I also think that the reflection cube is placed differently in each camera view, so nothing seems to line up as it should for correct perspective convergence.
At the moment I'm using a Unity FX Glass refractive shader (stained BumpDistort) simply because it's the only one I have found that renders correctly with both cameras and does not completely cripple the refresh. It looks passable, but there is no animation component, so I will need to attach a script that animates the UVs and it doesn't have any intersection detection, so no edge foam.
Like Gunair, I'd like to give some others a shot in the asset store (there are like 10 different water shaders) but it's impractical considering that 2 of the most widely used water shaders are bugged in rift. Guess I will need to hack something together. - madScientistExplorer
- cyberealityGrand Champion@madScientist: I've never used Suimono. Does it have an effect you put on the camera? If so, you may want to move the component up on the list above the OVR stuff and then apply it to the prefab.
- madScientistExplorerThanks for the tip! Ive been in touch with the developer and he is looking into the multi-camera issue. If I ever get it working, Ill post an example of what it looks like in the rift.
Suimono doesn't have scripts you add to the camera, it has a separate game object that takes a single camera as a property. I believe this is the issue because I have my sun-shaft effect scripts as components on each camera and it works like a champ. - madScientistExplorerI was able to get the Suimono water system working with the beta SDK, for the most part... The underwater effects still need some work.
I have a link to the project build on my blog post for anyone who wants to take a look at the water.
http://www.blackmatterlabs.com/?p=26
Note that the water in the project is Suimono V2 beta. - bradhermanHonored GuestI have a deep and mid ocean shader that I wrote that is great in the rift. While I can't share it (Work owns it) I can give some pointers on how to build your own in a few days. First if you don't already have it, get Shader Forge, it's a fantastic node network shader designer. Then you need to mix the reflection code of Ocean a Pro, some FFT wave output, and then mix in some concepts front the AC3 water post mortem (link at bottom). Then I found mixing some some spherical reflections from a skydome processed in skyshop. After that it's a lot of balancing to the the look you want. It's up to you if you want true stereo reflection on the water plane or just use 1 camera. I found that a center eye camera was good enough for reflection and saved me a whole camera render.
http://www.fxguide.com/featured/assassins-creed-iii-the-tech-behind-or-beneath-the-action/ - CubicleNinjasProtegeLove this topic!
Water is by far one of the biggest struggles we've faced. Here is what we've tried:- Unity Pro Water – Started here but it leaves a ton to be desired. The antialiasing is odd, leaving squiggly lines everywhere. The refraction effect is nice but the lack of waves or tide is unnerving.
- Suimono v1 - So, we started playing with Suimono v1. It is a nice toolkit, but ends up looking worse than Unity Pro water in VR. The tide and ripples are interesting, but lacking.
- Suimono 2.0 Beta - Next up 2.0! The videos of this look stunning, but I've spent more time trying to get this to work than I'd like to admit. It is very buggy right now, and while it has the most potential, it really falls apart in the Rift for me. The dual camera thing and the reflections in general just aren't there. The stock Unity Water looks better because it isn't so obviously incorrect. No presets save and it is the biggest frame rate hog of all options.
Love Brad's direction, but given that we're not Unity development pro's it seems like a bit of effort for a potential payoff. Still may give Shader Forge a go just to see what is possible in other areas.
MadScientist, how did you get Suimono working so well? Unfortunately can't try the demo as I'm on a Mac, but love to hear what you tried! - Unity Pro Water – Started here but it leaves a ton to be desired. The antialiasing is odd, leaving squiggly lines everywhere. The refraction effect is nice but the lack of waves or tide is unnerving.
- madScientistExplorerCubicleNinjas,
Unfortunately the only way I got it working was with the Beta Rift SDK, which to my understanding is Windows only right now :(
The Beta SDK has a third camera directly on the OVRCameraController game object. In Suimono, I set this as the main camera and also checked the "Use UV Reversal" box.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 4 months ago