# Camera3D support for Looking Glass displays

**URL:** <https://discourse.processing.org/t/camera3d-support-for-looking-glass-displays/49407>\
**Category:** Gallery\
**Created:** [September 21, 2026, 2:35pm UTC](https://discourse.processing.org/t/camera3d-support-for-looking-glass-displays/49407 "2026-09-21T14:35:30Z")\
**Posts on this page:** 1\
**Page:** 2

<div class="post-metadata">

**Author:** ![ChengkaiXu](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chengkaixu/32/22081_2.png) [@ChengkaiXu](https://discourse.processing.org/u/ChengkaiXu)\
**Post date:** [September 29, 2026, 1:58am UTC](https://discourse.processing.org/t/camera3d-support-for-looking-glass-displays/49407/21 "2026-09-29T01:58:03Z")

</div>

Thanks! The approach is actually much less sophisticated than you might expect 😉

The multiview rendering itself is fairly brute-force at the moment — there’s no single-pass multiview rendering or lower-level draw-call optimization. For each frame, I update the scene once, then render the same Processing `P3D` scene once for every view (48 times on the Portrait), using a laterally shifted camera and asymmetric frustum for each one. Those views are then tiled into the quilt.

The part I don’t handle myself is the final optical transformation. Once the quilt is ready, I pass its OpenGL texture directly to **Looking Glass Bridge** through its native API. Looking Glass Bridge takes the quilt and performs the device-specific optical/interlacing pass for the actual display. That’s why you don’t see a custom light-field shader in my code.

The C++ part is mostly a small JNI/OpenGL interoperability layer for talking to Looking Glass Bridge and sharing the quilt texture directly, so there’s no CPU readback/upload in the normal rendering loop.

So performance is still very dependent on scene complexity, because the scene really is drawn once per view. I haven’t done a proper benchmark across different hardware yet, so I’d rather not give a fixed FPS number, but the simpler examples are already quite usable interactively on the Portrait.

I’d definitely be interested in exploring better multiview rendering optimizations in the future!

[Previous page](https://discourse.processing.org/t/camera3d-support-for-looking-glass-displays/49407.md?page=1)
