@Bai0. @gunpigew How about a thought experiment about that:
- when clicking a link (
room.objects.mylink e.g.) or when <link js_id="mylink" auto_load="true">
- we create a room (lightweight version of load())
portal.openLink() attaches the room to the portal room.objects.mylink.room = (no scripts are loaded, nothing is rendered)
- we add an update-function to
portal.js with if( this.room && this.open && !this.stencil ) this.createStencil()
- when walking into the stencil:
- load the required assetscripts
portal.room.previous = window.room; window.room = portal.room
- update URL:
janusweb.setActiveRoom(url, prevRoom.referrer)
Thoughts? naive? interesting?
Regarding performance: I was thinking of a janusbase attribute skip="portal,vr,ar" to allow JML-entities to hint the renderer of skipping certain objects in certain contexts.
Examples:
<object id="hugemodel" skip="portal"/> would not render that object until the user actually walks into the portal.
<object id="skydome" skip="ar"> would not render if the user is in ar-immersive mode but would render inside a portal and VR
<paragraph skip="ar,vr" text="this space is about john doe who never existed"> would only render inside the portal/stencil (basically a 3D thumbnail)
@Bai0. @gunpigew How about a thought experiment about that:
room.objects.mylinke.g.) or when<link js_id="mylink" auto_load="true">portal.openLink()attaches the room to the portalroom.objects.mylink.room =(no scripts are loaded, nothing is rendered)portal.jswithif( this.room && this.open && !this.stencil ) this.createStencil()portal.room.previous = window.room; window.room = portal.roomjanusweb.setActiveRoom(url, prevRoom.referrer)Thoughts? naive? interesting?