Here is a quick example so you can see what I mean:
^you can move with wasd^
loosely based on this example here.
Code here:
<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script>
AFRAME.registerComponent('spectator',{
'schema': {
canvas: {
type: 'string',
default: ''
},
// desired FPS
fps: {
type: 'number',
default: 90.0
}
},
'init': function() {
var targetEl = document.querySelector(this.data.canvas);
this.counter = 0;
this.renderer = new THREE.WebGLRenderer( { antialias: true } );
this.renderer.setPixelRatio( window.devicePixelRatio );
this.renderer.setSize( targetEl.offsetWidth, targetEl.offsetHeight );
// creates spectator canvas
targetEl.appendChild(this.renderer.domElement);
this.renderer.domElement.id = "canvas";
this.renderer.domElement.crossorigin="anonymous"
this.renderer.domElement.height=300;
this.renderer.domElement.width=400;
this.el.removeAttribute('look-controls');
this.el.removeAttribute('wasd-controls');
console.log(this.renderer.domElement);
console.log(document.querySelector('a-scene'))
},
'tick': function(time, timeDelta) {
var loopFPS = 1000.0 / timeDelta;
var hmdIsXFasterThanDesiredFPS = loopFPS / this.data.fps;
var renderEveryNthFrame = Math.round(hmdIsXFasterThanDesiredFPS);
if(this.counter % renderEveryNthFrame === 0){
this.render(timeDelta);
}
this.counter += 1;
},
'render': function(){
this.renderer.render( this.el.sceneEl.object3D , this.el.object3DMap.camera );
}
});
</script>
<div style="height:300px; width:400px;">
<a-scene embedded>
<a-sky color="#ECECEC"></a-sky>
<a-entity id="secondaryCamera" position="2 1.8 4.8" rotation="-20 45 0">
<a-camera spectator="canvas:#spectatorDiv;" active="false">
</a-camera>
</a-entity>
<a-entity id="primaryCamera" position="0 0 3.8" >
<a-camera position="0 1.6 0" wasd-controls ><a-entity geometry="primitive:box;width:1;height:1;depth:1;" position="-1 0.5 1" rotation="0 45 0" material="src:#canvas"></a-entity></a-camera>
</a-entity>
<a-entity material="src:#canvas" geometry="primitive:box;width:1;height:1;depth:1;" position="-1 0.5 1" rotation="0 45 0" ></a-entity>
<a-entity position="0 1.25 -1" geometry="primitive:sphere;radius:1.25" rotation="0 225 0" material="src:#canvas"></a-entity>
<a-entity position="1 0.75 1" geometry="primitive:cylinder;radius:0.5;height:1.5" material="src:#canvas" ></a-entity>
<a-entity rotation="-90 0 0" geometry="primitive:plane;width:4; height:4" material="src:#canvas"></a-entity>
</a-scene>
</div>
<div style="height:300px; width:400px;" id='spectatorDiv'></div>

