3つのjs内のメッシュグループのビューポートを作成する最良の方法は何ですか?
私の場合、多くのインスタンスのTHREE.Group
があります。私の目標は、メッシュが表示されるこのグループのビューポートを作成することです。
私が見ているソリューションの1つは、ローカルクリッピングプレーンを使用することです。 threejs example
しかし、THREE.Group
のために一度設定するのではなく、THREE.Mesh
の素材ごとにクリッピングプレーンを割り当てなければならないと心配です。
また、移動または回転するときにクリッピングプレーンを再カットする必要がありますTHREE.Group
。あなたはステンシルバッファに見ることができる3js内のメッシュグループのWiewポート
0
A
答えて
0
:threejs付きまたはなし
、原理は同じです。
- 無効深書き込み
- 無効深度テスト
- 無効に色が
- ステンシル操作(ステンシルバッファに値を書き込む)
- は、ステンシルバッファへの書き込みは見えない形状(あなたを描く有効を書きますおそらくスクリーンスペースが必要です)
- enable 1,2,3
- ステンシル操作の変更(たとえばステンシルバッファが1の場合の描画のみ)
- あなたがこれをやっているとき、あなたはここに
- ステンシルオペアンプを変更して、バッファが0(5からその形状の外)でのシーンの残りの部分を描くことができに応じて、あなたのグループ
- を描く
Three.jsには、最近実装されていない限り、ステンシル抽象はありません。つまり、実際にこれを自分で管理しなければならないと言う、transparent
の "魔法のような"特性はありません。つまり、webglのコンテキストを取得し、webglの操作を手動で行う必要があります。
これを実行する方法はたくさんあります。
var myScreenSpaceQuad = new THREE.Mesh(new THREE.PlaneBufferGeometry(2,2,1,1), myQuadShaderMaterial)
var scene1 = new THREE.Scene()
var scene2 = new THREE.Scene()
var sceneMask = new THREE.Scene()
sceneMask.add(myScreenSpaceQuad)
//...
myRenderFunction(){
//gl stencil op
//...
myRenderer.render(myCamera, sceneMask)
//more stencil
//...
myRenderer.render(myCamera, scene1)
//some more stencil...
myRenderer.render(myCamera, scene2)
}
私は実際の例を書こうとします。スクリーンスペースクワッドについては、thisをご覧ください。
関連する問題
- 1. 3JS Object3Dローテーション
- 2. 3js/webGLを学ぶ - 色と透明度
- 3. カメラのposition.zを3jsのマウスホイールで変更してください
- 4. 3jsレンダリング関数内のwhileループがすべてのフレームを更新しないのはなぜですか?
- 5. インポートしたモデルを3jsの画面に合わせる
- 6. インポートされた* .objの面を3jsで移動する
- 7. 添付画像のように3jsでグリッドを作るには?
- 8. nginxの他のポートにのみポート80
- 9. オクルージョンカリングがデフォルトで3jsで有効にされています
- 10. 3jsは軌道制御でマウスイベントを追加します
- 11. ウィンドウ内のCOMポートのFIFOバッファの役割
- 12. "ポートのポートまたはポートが不正です
- 13. ポート9922で動作するものの内部IP範囲VBNet
- 14. htaccessポートから別のポートへリダイレクト
- 15. ポート8000とポート8080
- 16. MATLABファンクションブロック内のCコードにマイクロコントローラのポート機能とポート番号を書き込む方法は?
- 17. Mono.ZeroconfのOSXポート
- 18. AtomicLong.lazySetのC++ポート
- 19. Parrot VMのポート
- 20. herokuappのポート
- 21. Dockerのポート
- 22. ASP.net Webサイト内の専用ポートにあるWebサービス
- 23. Apacheがmod_rewriteを内部的に別のポートに接続する
- 24. AWS Lambdaが同じVPC内のEC2ポートにアクセスできない
- 25. 迷惑メールファイル内の条件付きポート転送
- 26. java.net.BindException:Glassfish 3.1の範囲内に空きポートがありません
- 27. LANポートからHTMLページ内のビデオストリームを表示
- 28. 1つのポートのIonic 2クライアントファイル、別のポートのAPIエンドポイント
- 29. Mac OS X 10.6の特権ポート(1024未満のポート)へのバインド
- 30. ポート
「ビューポート」が意味することは不明です。 – 2pha
@ 2pha HTML5のブロックオーバーフローのような振る舞いを望みます:隠されていますが、THREE.Groupの場合のみ –
達成しようとしていることをより明確に説明する必要があります。 – 2pha