Transparency (render texture) is wrong with Crest water system - Metal renderer

I’m making a VR (Fully Immersive App) for visionOS - and I’m using the Crest ocean system. The problem is that transparency doesn’t work with the ocean shader, everything else is fine, but I seems the render texture is screwed up.

The first image is the intended look, from editor preview. The videos show the problem.

1 Like


1 Like

Uploading: ScreenRecording_08-02-2024 21-39-20_1.mov…

1 Like

Excuse me, may I ask what function your refraction effect is based on? I previously wanted to use the scene color node in the shader graph to achieve the refraction effect, but I found that polyspatial does not support this node, so I couldn’t find a way to achieve the refraction effect at one point. Thank you very much.

It’s not shader graph, it’s a custom shader written for Unity. Any shaders that work with single pass instanced rendering in previous VR should work for visionOS, but this one doesn’t for some reason as the scene color or render texture is wrong.

It could be the reason it doesn’t work in polyspatial as well, however, remember if you wanted to do refraction Unity would need to get the users passthrough as well, which I don’t think is allowed.

1 Like

Oh, I understand. Thank you very much for your response

Ok, I seemed to have found the root cause of the issue:

Untick foveated rendering, and transparent materials (Or possibly just custom transparent materials) work again. It must be something to do with how Unity handles the render texture, of course in relation to the foveal.

Hello sam As far as I know polyspatial does not support code based shaders. I have the Crest water system. But in crest water system the ocean material uses a code based shader and I think I can’t run it in polyspatial. Is there any chance you can inform me about the path you are following?

Yes, you’re correct - I am using the Metal renderer (Fully immersive VR app) so it does not use Polyspatial (Which is essentially a converter from Unity to RealityKit). Theoretically everything in a normal PCVR project should work for visionOS provided you use single pass and URP, though this is sometimes not the case due as rendering in VR for Metal is fairly new for Unity developers.

The crest ocean system works, but there is a problem with foveated rendering that affects rendertexture, so transparency looks distorted when foveated rendering is ticked.

I’m sending Unity staff my project later today with foveated rendering enabled so they can help.

1 Like

Thank you so much.


Hello again Sam, I created a project in Fully immersive VR mode and added the Crest water system. I don’t get any errors in the editor, but nothing appears in the simulator. Have you encountered this error?

I’m not actually using the simulator, I build to device. I doubt the ocean shader will work very well for the simulator, but works when you actually play it so should all be fine.