2017-07-28 9 views
1

2台のカメラと1台のレンダラーでシーンを作成しました。各カメラは異なる角度からシーンを見ており、最初のレンダリングの上に横たわっている小さなビューポートでレンダリングしている2番目のカメラがスクリーン全体に最初のカメラレンダリングを持っています。私は、それぞれの外観が分かれるように、その2番目のビューポートをアウトライン化する方法があるかどうか疑問に思っていた。threejs内のビューポートの概要は?

答えて

1

はい、インセットをレンダリングする前に、インセットよりもわずかに大きい固体色の四角形をレンダリングすることによってインセットビューポートの概要を説明することができます。

// border 
renderer.setScissorTest(true); 
renderer.setScissor(x, y, width, height); 
renderer.setClearColor(0xffffff, 1); // border color 
renderer.clearColor(); // clear color buffer 

次に、インセットをレンダリングします。差し込み背景が不透明であることを確認してください。

three.js r.86

1

私は3Jビューポート機能を使用していると思いますか?私が知る限り、それ自体は、そのような特徴を持っていません。

キャンバスにレンダリングされているので...それぞれの3jsレンダリングフレームの後に、キャンバス上に希望の座標でアウトラインを描くことができますか?

基本的な例:

var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ctx.rect(20,20,150,100); 
ctx.stroke(); 

(参照:https://www.w3schools.com/tags/canvas_rect.asp

+0

アップ投票これはおそらくシーン(複数可)を汚染し、他のレンダリング策略を実行せずに所望の効果を達成する最も簡単な方法だからです。つまり、すでに3Dコンテキストが与えられているキャンバスから2Dコンテキストを取得することはできません。 3Dキャンバスからイメージを取得して2Dキャンバスに描画し、輪郭線を描画する必要があります。 – TheJim01