{"id":442,"date":"2026-03-06T18:29:24","date_gmt":"2026-03-06T23:29:24","guid":{"rendered":"https:\/\/projects.etc.cmu.edu\/torchbearer\/?page_id=442"},"modified":"2026-03-06T18:29:24","modified_gmt":"2026-03-06T23:29:24","slug":"multi-perspective-rendering","status":"publish","type":"page","link":"https:\/\/projects.etc.cmu.edu\/torchbearer\/multi-perspective-rendering\/","title":{"rendered":"Multi-perspective Rendering"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-text-align-center\">What is the problem?<\/h2>\n\n\n\n<p class=\"has-text-align-center\">In the traditional single-perspective rendering of the CAVERN, 3D is possible. Objects can appear to project <em>inwards<\/em>, into the interior space of the CAVERN. However, this presents a problem for multiplayer in the CAVERN. Since objects inside the CAVERN so heavily rely on the viewing angle of the player, what do we do if there are <em>two<\/em> players? Or three? Or four!? Here&#8217;s Henry and Jason to demonstrate the problem.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"435\" src=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image64-1024x576.jpg\" alt=\"\" class=\"wp-image-435\" srcset=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image64-1024x576.jpg 1024w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image64-300x169.jpg 300w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image64-768x432.jpg 768w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image64-1536x864.jpg 1536w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image64-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Henry views a market stall from the right<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"444\" src=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image47-1024x576.jpg\" alt=\"\" class=\"wp-image-444\" srcset=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image47-1024x576.jpg 1024w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image47-300x169.jpg 300w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image47-768x432.jpg 768w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image47-1536x864.jpg 1536w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image47-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Despite standing on the <em>left<\/em> side of the stall, Jason sees it as if he is on the <em>right!<\/em><\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Enter, multi-perspective rendering!<\/h2>\n\n\n\n<p class=\"has-text-align-center\">With our solution, we render the market stall once for each player. In this case, twice!<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image50-1024x576.jpg\" alt=\"\" class=\"wp-image-445\" srcset=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image50-1024x576.jpg 1024w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image50-300x169.jpg 300w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image50-768x432.jpg 768w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image50-1536x864.jpg 1536w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image50-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Now, both Henry and Jason have a version of the same market stall rendered on the wall opposite them. With the 3D glasses, this stall appears to be projected into the space, into the same spot for both of them. The key difference here though, is that the version of the market stall they see is correct from their viewing perspective!<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"436\" src=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image58-1024x576.jpg\" alt=\"\" class=\"wp-image-436\" srcset=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image58-1024x576.jpg 1024w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image58-300x169.jpg 300w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image58-768x432.jpg 768w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image58-1536x864.jpg 1536w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image58-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"437\" src=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image59-1024x576.jpg\" alt=\"\" class=\"wp-image-437\" srcset=\"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image59-1024x576.jpg 1024w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image59-300x169.jpg 300w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image59-768x432.jpg 768w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image59-1536x864.jpg 1536w, https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-content\/uploads\/2026\/03\/image59-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\"has-text-align-center\">Now everyone is happy! However&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Limitations<\/h2>\n\n\n\n<p class=\"has-text-align-center\">One issue you may already notice, however, is that now we have two market stalls. The projector setup in the CAVERN is unable to project something that not every player can see, so if Henry or Jason were to turn their heads just a little bit to the side, suddenly they&#8217;d see a duplicate of the stall, distorted to a different perspective.<\/p>\n\n\n\n<p class=\"has-text-align-center\">Technically, this issue could be solved using a technique that&#8217;s already being used at the ETC on the Jam-o-Drum. Using the shutter glasses not just for stereoscopic 3D, but also for blanking both eyes at once at a set interval in order to show each player only a portion of the projected frames, it is theoretically possible to create a system where everyone only sees their own market stall. Our multi-perspective rendering technique would work with a system like that. However, implementing such a system would require a sizeable (and expensive) upgrade to the three projectors that make up the CAVERN, and would require a new technical implementation of the way the image is rendered to those projectors in order to accommodate how many different images would have to be processed.<\/p>\n\n\n\n<p class=\"has-text-align-center\">Doing this is outside of the scope of our project, but maybe a future team will carry the torch forward! For now, we are aiming to <em>design<\/em> around this issue. To see how much of an issue it really is, or if we can get our players to essentially &#8220;ignore&#8221; the problem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is the problem? In the traditional single-perspective rendering of the CAVERN, 3D is possible. Objects can appear to project inwards, into the interior space of the CAVERN. However, this presents a problem for multiplayer in the CAVERN. Since objects inside the CAVERN so heavily rely on the viewing angle of the player, what do [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-442","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/pages\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":3,"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/pages\/442\/revisions"}],"predecessor-version":[{"id":447,"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/pages\/442\/revisions\/447"}],"wp:attachment":[{"href":"https:\/\/projects.etc.cmu.edu\/torchbearer\/wp-json\/wp\/v2\/media?parent=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}