Jump to content

Stereoscopic rendering: Difference between revisions

 
(One intermediate revision by the same user not shown)
Line 142: Line 142:


Single-pass stereo rendering optimizes by traversing the scene graph once while rendering to both eye buffers.<ref name="nvidia2018">NVIDIA Developer. "Turing Multi-View Rendering in VRWorks." NVIDIA Technical Blog, 2018. https://developer.nvidia.com/blog/turing-multi-view-rendering-vrworks/</ref> Single-pass instanced approach uses GPU instancing with instance count of 2, where the [[vertex shader]] outputs positions for both views simultaneously. Example shader code:
Single-pass stereo rendering optimizes by traversing the scene graph once while rendering to both eye buffers.<ref name="nvidia2018">NVIDIA Developer. "Turing Multi-View Rendering in VRWorks." NVIDIA Technical Blog, 2018. https://developer.nvidia.com/blog/turing-multi-view-rendering-vrworks/</ref> Single-pass instanced approach uses GPU instancing with instance count of 2, where the [[vertex shader]] outputs positions for both views simultaneously. Example shader code:
<code>
<pre>
uniform EyeUniforms {
uniform EyeUniforms {
     mat4 mMatrix[2];
     mat4 mMatrix[2];
};
};
vec4 pos = mMatrix[gl_InvocationID] * vertex;
vec4 pos = mMatrix[gl_InvocationID] * vertex;
</code>
</pre>


This technique halves draw call count compared to multi-pass, reducing CPU bottlenecks in complex scenes.<ref name="iquilez">Quilez, Inigo. "Stereo rendering." 2024. https://iquilezles.org/articles/stereo/</ref>
This technique halves draw call count compared to multi-pass, reducing CPU bottlenecks in complex scenes.<ref name="iquilez">Quilez, Inigo. "Stereo rendering." 2024. https://iquilezles.org/articles/stereo/</ref>
Line 208: Line 208:
* '''[[Head-Mounted Display]]s (HMDs)''': Modern VR and AR headsets achieve perfect image separation using either two separate micro-displays (one for each eye) or a single display partitioned by optics. This direct-view approach completely isolates the left and right eye views, eliminating [[crosstalk]].<ref name="drawandcode"/>
* '''[[Head-Mounted Display]]s (HMDs)''': Modern VR and AR headsets achieve perfect image separation using either two separate micro-displays (one for each eye) or a single display partitioned by optics. This direct-view approach completely isolates the left and right eye views, eliminating [[crosstalk]].<ref name="drawandcode"/>


* '''Color Filtering ([[Anaglyph 3D|Anaglyph]])''': Uses glasses with filters of different colors, typically red and cyan. Very inexpensive but suffers from severe color distortion and ghosting.<ref name="basic_principles"/>
* '''[[Color Filtering]] ([[Anaglyph 3D|Anaglyph]])''': Uses glasses with filters of different colors, typically red and cyan. Very inexpensive but suffers from severe color distortion and ghosting.<ref name="basic_principles"/>


* '''[[Polarized 3D system|Polarization]]''': Uses glasses with differently polarized lenses. Linear polarization orients filters at 90 degrees; circular polarization uses opposite clockwise/counter-clockwise polarization. Commonly used in 3D cinemas.<ref name="palušová2023">Palušová, P. "Stereoscopy in Extended Reality: Utilizing Natural Binocular Disparity." 2023. https://www.petrapalusova.com/stereoscopy</ref>
* '''[[Polarized 3D system|Polarization]]''': Uses glasses with differently polarized lenses. Linear polarization orients filters at 90 degrees; circular polarization uses opposite clockwise/counter-clockwise polarization. Commonly used in 3D cinemas.<ref name="palušová2023">Palušová, P. "Stereoscopy in Extended Reality: Utilizing Natural Binocular Disparity." 2023. https://www.petrapalusova.com/stereoscopy</ref>


* '''Time Multiplexing (Active Shutter)''': Display alternates between left and right images at high speed (120+ Hz). Viewer wears LCD shutter glasses synchronized to the display. Delivers full resolution to each eye.<ref name="basic_principles"/>
* '''[[Time Multiplexing]] (Active Shutter)''': Display alternates between left and right images at high speed (120+ Hz). Viewer wears LCD shutter glasses synchronized to the display. Delivers full resolution to each eye.<ref name="basic_principles"/>


* '''[[Autostereoscopy]] (Glasses-Free 3D)''': Uses optical elements like [[parallax barrier]]s or [[lenticular lens]]es to direct different pixels to each eye. Limited by narrow optimal viewing angle.<ref name="palušová2023"/>
* '''[[Autostereoscopy]] (Glasses-Free 3D)''': Uses optical elements like [[parallax barrier]]s or [[lenticular lens]]es to direct different pixels to each eye. Limited by narrow optimal viewing angle.<ref name="palušová2023"/>