<p dir="auto">As discussed in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="228532532" data-permission-text="Title is private" data-url="https://github.com/mrdoob/three.js/issues/11332" data-hovercard-type="issue" data-hovercard-url="/mrdoob/three.js/issues/11332/hovercard" href="https://github.com/mrdoob/three.js/issues/11332">#11332</a></p>
<ol dir="auto">
<li>
<p dir="auto"><code class="notranslate">renderer.gammaInput</code> needs to be deprecated. We now support <code class="notranslate">texture.encoding</code> instead.</p>
</li>
<li>
<p dir="auto">renderer.gammaOutput needs to be deprecated and replaced with <code class="notranslate">renderer.outputEncoding</code> when rendering to the screen. We already support <code class="notranslate">renderTarget.texture.encoding</code> when rendering to a render target.</p>
</li>
<li>
<p dir="auto">WebGLPrograms.getProgramCode()  needs to be updated to respond to changes in <code class="notranslate">renderer.outputEncoding</code>.  Setting <code class="notranslate">material.needsUpdate = true</code> will then force the change.</p>
</li>
<li>
<p dir="auto">Legacy warnings need to be added, and the examples need to be updated to accommodate this change.</p>
</li>
</ol>
<p dir="auto">For WebVR we now use <a href="https://github.com/mrdoob/three.js/blob/dev/examples/js/effects/VREffect.js">VREffect</a> for stereo render. A <a href="https://github.com/mrdoob/three.js/blob/dev/examples/js/effects/VREffect.js">camera is passed as a parameter</a> that gets duplicated and then the scene is rendered twice, once per eye. There's redundant work that we could avoid. We have superficially discussed in the past the idea of introducing an <code class="notranslate">ArrayCamera</code> that receives a list of cameras and then the render work is organized in a more efficient way than we do now with <code class="notranslate">VREffect</code>. Before getting into the implementation weeds I would like to better understand the problem and see the solutions people have in mind. <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mrdoob/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mrdoob">@mrdoob</a> Can you quickly sketch out the API you had in mind and what optimizations we would do inside to kick off the conversation?</p>