Skip to main content
Up and Coming
April 19, 2014

Image effects turn the camera black.

Hey folks.

Unity 4.3.2f1. SDK Unity integration: V0.2.5 (latest).

Adding image effects is pretty random at best. Adding a color corrector to the OVRCameraController will give me a flipped image, but I can flip the Y back to solve that, however adding anything ambient occlusion on top of that will cause strange color blocking effects.

Most of the time I will now get the strange blocking with just the color corrector.

Adding anything to the cameras themselves will cause them to go black no matter what order they are placed (before the distortion for instance.)

This is all in Forward rendering.

Deferred has it's own issues and I have sadly had to not use it as the toon shader will not antialias properly.

Any ideas how I can stack these simple image effects - or if they simply will not work no matter what?
    This topic has been closed for replies.

    39 replies

    Inspiring
    June 12, 2015
    Looks like this is mostly solved in Unity 5.1 first party support. Just make sure NOT to enable HDR.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Participant
    July 13, 2015
    Try the patch releases. HDR works there.

    http://unity3d.com/unity/qa/patch-releases
    Up and Coming
    September 1, 2015
    Oculus V0.7.0.0-beta
    Unity 5.1.2f1

    Just wanted to note that I'm getting a black screen with using Deferred rendering with anti-aliasing. Switched to Forward rendering and it cleared up. I'm placing the image effects on the CenterEyeAnchor of the OVRPlayerController. Unity defaults to Deferred? Hence the struggle with image effects.
    http://www.quitenice.co
    Inspiring
    September 1, 2015
    I thought image effects were working with deferred rendering. Surprised to hear AA is still a problem, I assumed this had been fixed. But MSAA shouldn't work with deferred anyhow, so there is no reason to enable it. You can use post-process AA with deferred without issue.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    September 1, 2015
    "cybereality" wrote:
    You can use post-process AA with deferred without issue.


    Yep, this is what's working for me. Thanks
    http://www.quitenice.co
    New Participant
    September 8, 2016
    We started seeing this issue a few days ago on Win8 (DX11) with 5.4.0p2, Oculus utilities for Unity 1.7.0, and Single Pass Stereo enabled. Unity AA is disabled, but we have a stack of screen shaders (although turning them all off doesn't remedy the issue, and we had the same stack working a week ago without issue).

    When we render the VR camera, we have to set it to Left eye only, which creates a crazy "double-vision" effect (actually 8x vision). When we enable all of our screen shaders the stereo vision corrects itself and looks right in the Oculus. The workaround we've found for the black-screen bug is to set our camera to targetEye=Both for a frame, then toggle it back to Left. During this we get some errors (Material doesn't have property _BlendTex/_AreaTex/_SearchTex/_NoiseTex). In the editor this toggle seems to correct the problem for the remainder of a UnityEditor session.
    Inspiring
    September 9, 2016
    Can you click Help > Report an issue... in the editor and then share the case number it creates? Single-pass stereo makes a number of changes to the shader API, so you will have to update your image effects to work properly with it. Also, when you render with Target Eye != Both, it disables SPS.
    New Participant
    September 21, 2016
    Case # 834015 - I can't include my project, as it would break some NDAs. I'll try to find some time to build a standalone repro case.

    In regards to your comment that TargetEye disables SPS, I ran a quick test: Our normal camera settings are SPS, with TargetEye=LEFT (we use a component to toggle for a frame to BOTH then back to LEFT to correct this black-screen bug), our FPS is capped at the 90fps expected and our current draw calls are about 475.

    When I disable SPS and set my main camera to TargetEye=BOTH, the fps drops to ~60 and the draw calls rise to 660. (We have a bunch of camera effects and we're not optimized yet so there are some Forward draw calls inflating our otherwise Deferred pipeline at the moment.)

    We are now turning some engineers toward updating our shaders to work on SPS - has documentation about updating been posted anywhere yet?
    Inspiring
    September 22, 2016
    > When I disable SPS and set my main camera to TargetEye=BOTH, the fps drops to ~60 and the draw calls rise to 660

    I would expect the draw call count for (SPS=on or off, targetEye=left) to be about equal to (SPS=on, targetEye=both). There will be more draw calls with (SPS=off, targetEye=both).

    > SPS - has documentation about updating been posted anywhere yet?

    I haven't seen any official doc from Unity on this, but here is an unofficial guide.