(つまり、一つの方法ですが)あなたは、このためのテクスチャにレンダリングする必要はありません。それは実際にgl.viewport
でもっと簡単に行うことができます。
gl.viewport
は、レンダリングするキャンバスに単純に矩形を設定します。その矩形の外にあるものはすべて切り取られます。通常、あなたがフルスクリーンをレンダリングしたいので、あなたがキャンバスと同じサイズに設定しますが、あなたのケースでは、次の操作を行うことができます。
// Clears the entire scene. gl.clear does not respect the viewport
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
// Render upper left quadrant
gl.viewport(0, 0, canvas.width/2, canvas.height/2);
drawSceneWithShader(shader[0]);
// Render upper right quadrant
gl.viewport(canvas.width/2, 0, canvas.width/2, canvas.height/2);
drawSceneWithShader(shader[1]);
// Render lower left quadrant
gl.viewport(0, canvas.height/2, canvas.width/2, canvas.height/2);
drawSceneWithShader(shader[2]);
// Render lower right quadrant
gl.viewport(canvas.width/2, canvas.height/2, canvas.width/2, canvas.height/2);
drawSceneWithShader(shader[3]);
普通のようなシーン全体をレンダリングレンダリングするときに、あなたがする必要はありません新しいビューポートの説明に特別なことをする。 (マウスピッキングなどを行っている場合は、ビューポートを考慮する必要があります)
パーフェクト!どうもありがとう! – JoniPichoni