1 comment

  • Official comment
    Scott Harper

    Foveated rendering is really best handled as an engine-level feature. As we have no real control over the inner workings of Unity's renderer that would be required to coerce it into doing foveated rendering, the plugin does not "enable" it like something you turn on; but rather it "enables" it as a thing which very literally cannot be done effectively without eye tracking. You can create your own foveated rendering by using completely custom cameras and using the lower-level left and right eye camera overrides in order to render foveal regions and eccentric regions and then composite those using another texture process. We have done this internally in the past, but that project isn't currently in a releasable state -- it needs a lot of cleanup and was more of a proof of concept than intended to be a proposal for how typical users would implement it.

    It's worth noting that this process (which we've prototyped internally) isn't nearly as effective as native foveated rendering would be, as there's a lot of overhead invovlved in having Unity render and process logical render textures and pass through several different cameras. But for sufficiently complex scene shaders and sufficiently high resolution you would still see performance improvements. Though your mileage will vary significantly and in the simple cases you likely will not see a performance improvement due to all the overhead required do get it working without low-level access.

    There may be something to be done using Unity's command buffers, but I would have to spend a pretty significant amount of time to make sure it's possible and to assess the performance cost.

    Comment actions Permalink

Please sign in to leave a comment.