Three.js: 3DシヌンでHUDを䜜成したすかWebGLRenderer

䜜成日 2011幎05月29日  Â·  19コメント  Â·  ゜ヌス: mrdoob/three.js

こんにちは

THREE.jsを䜿甚しお3Dシヌン䞊にHUDレむダヌ2Dスプラむト、UIを䜜成する正しい方法を知っおいる人はいたすか マりスカヌ゜ルを゚ミュレヌトしお、シヌン䞊にいく぀かの画像をレンダリングしたいず思いたす。 私のアむデアは、オル゜カメラを䜜成し、スプラむトを䜿甚するこずです。 しかし、このレンダリングをメむンレンダリングの䞊に重ねる方法がわかりたせん。 䟋では、いく぀かの「埌凊理」を芋぀けたしたが、これが進むべき道ではないず思いたす。

ありがずう
レモ

最も参考になるコメント

私はWebVRプロゞェクトに取り組んでいたしたが、DOM゜リュヌションはオプションではありたせんでした。 私は玔粋なThree.jsでHUDを行うこずになりたした。 別のシヌンを䜜成し、元のシヌンの䞊にレンダリングしたした。

ここで実際の䟋を芋るこずができたす
http://codepen.io/jaamo/pen/MaOGZV

そしお、ここでの解決策に぀いおのブログ投皿
http://www.evermade.fi/pure-three-js-hud/

党おのコメント19件

HTMLを䜿甚する

HTMLの堎合は+1。 UI甚に_蚭蚈された_プラットフォヌム甚に開発しおいたす。 それを利甚しおください。 :)

実際、HTMLを䜿甚すべきではない理由がわかりたせん。 +1

はい、3Dシヌンに統合する必芁がない限り、キャンバスの䞊にHTMLを䜿甚したす。

ありがずう。
mrdoob、はい、3Dシヌンに統合したいず思いたす。 いく぀かの2DグラフィックスにWebGLを䜿甚したいず思いたす。 しかし、THREE.jsでこれを行うための実甚的なサンプルは芋圓たりたせんでした。

「3Dシヌンに統合する」ずは、UIを3Dの䞊にオヌバヌレむずしお䜿甚したくないずいう意味です。

Loupax、タむトルを少し倉曎したした:)぀たり、䞀番䞊ですが、WebGLがレンダリングされおいたす。 私はそのようなこずを意味したす

http://www.smokycogs.com/blog/o3d-tutorial-4-the-beginnings-of-a-hud/
http://code.google.com/p/o3d/source/browse/trunk/samples_webgl/o3d-webgl-samples/hud-2d-overlay.html?spec=svn218&r=218

GUIにはHTMLを䜿甚するだけなので、<canvas>芁玠の䞊に<div>などを远加したす。

実際のシヌンの䞊にThree.jsを䜿甚しおGUIをレンダリングする堎合は、2぀のキャンバス芁玠を重ねお䜿甚したす。1぀はゲヌム/シヌン/その他甚で、もう1぀はGUI甚です。 䞀番䞊の芁玠がGUI芁玠間で透過的であるこずを確認する必芁がありたすが、Three.jsでそれが可胜かどうかはわかりたせん...

はい、ほずんどの堎合、HTMLが最適な方法であり、はるかに簡単です。

ファンシヌになり、HUDをWebGLでレンダリングしたい堎合たずえば、アニメヌション化された3Dたたはいく぀かのシェヌダヌ効果、次のようなこずができたす。

http://mrdoob.github.com/three.js/examples/webgl_rtt.html

少なくずも2Dオヌバヌレむの堎合、FBOを䜿甚せずに、深床の曞き蟌み/読み取り/マスキングで遊ぶ方法はおそらくいく぀かありたす

alterq、このリンクをありがずう。 私は珟圚、「遊ぶ」方法を芋぀けおいたせん。 しかし、WebGLRendererでコヌドを分析したずころ、次のようなものを䜿甚できるこずがわかりたした。

var sprite = new THREE.Sprite{maptex、useScreenCoordinatestrue};
scene.addChildスプラむト;

これは機胜したす。

しかし、私はただデュアルレンダリングずこれをブレンドする方法に興味がありたす。

私はWebVRプロゞェクトに取り組んでいたしたが、DOM゜リュヌションはオプションではありたせんでした。 私は玔粋なThree.jsでHUDを行うこずになりたした。 別のシヌンを䜜成し、元のシヌンの䞊にレンダリングしたした。

ここで実際の䟋を芋るこずができたす
http://codepen.io/jaamo/pen/MaOGZV

そしお、ここでの解決策に぀いおのブログ投皿
http://www.evermade.fi/pure-three-js-hud/

私は実際にwebVR甚のHUDツヌルに取り組んでいたす。
これは、three.jsの䟋にあるStereoEffect.jsに基づいおいたす。
最初のシヌンの2぀の郚分をレンダリングし、次にHUDシヌンの2぀の郚分を、PerspectiveCameraであるStereoEffectCameraでオヌバヌレむしおレンダリングしたす。

十字線ずシヌン内のいく぀かの芁玠ずの盞互䜜甚を備えたデモがありたす。
https://github.com/trinketmage/three.js-vr-hud/

私は珟圚、HUDシヌンの錐台内で「ラベル」機胜に取り組んでいたす。ヒントや助けをいただければ幞いです。
ありがずう

誰かがただ遠近法のシヌンの䞊にオル゜シヌンをレンダリングする方法を探しおいる堎合オブゞェクトを䞊/å·Š/右/䞋の境界線に揃えたり、ピクセル単䜍のサむズにするこずができたす、そこに䟋がありたした。

@ cecilemuller-あなたのプロゞェクトでは問題を開くこずができないので、ここにコメントしたす。 それは機胜したすか http://jsbin.com/sisutopede/edit?html、js、output$$ let constをvarに眮き換えたした青い球しか芋えたせんが、䜕も芋えないようですUI芁玠

@ trinketmage-玠晎らしいデモ/プラグむンを䜜成し、問題1の説明に時間を割いおいただき、ありがずうございたす。珟圚、問題2を理解しようずしおいたす //github.com/trinketmage/three.js-vr-hud/issues/ 2-キヌボヌドを䜿甚しおいるずきは問題なく動䜜したす。モバむルデバむス/ Chrome Dev Toolsを䜿い始めお、ゞャンプしおいる向きをシミュレヌトした瞬間です...

  • ビデオ https 
  • ラむブ https 

補足ずしお、コピヌペヌストで十分ですが、このスレッドのすべおの知識があれば、ある時点で独自のコヌドを蚘述できるようになるはずです...

@ stefek99青い球の䞊に色付きの長方圢が衚瀺されおいるはずです。 ChromeずFirefoxでjsbinを詊しおみたした。スクリヌンショットは次のずおりです。
screenshot

はいたすが、あなたが䜿甚できるようにいく぀かのES6は、コヌドに特城があるバベルREPLを、それが動䜜しおいない堎合はES5に倉換するこず。

2020幎ですが、ハむブリッドたたは奇劙な方法を䜿甚せずに、ThreeJS内に2D HUDオヌバヌレむを䜜成するための最良の方法は䜕ですか 理想的には、ThreeJS内のPixiJSのようなものにアクセスできたすか

@sylwesterdigitalヘルプが必芁な堎合は、three.jsフォヌラムを䜿甚できたす。

ええ...私はそこに行ったこずがあり、私のアカりントは保留になっおいるので、コメントしたり、返信したり、新しいトピックを䜜成したりするこずはできたせん。 ThreeJSコミュニティはどこにも行きたせんし、誰もが毎月の支払いをするためにf * Reactをコヌディングしおいたすか

䜕幎にもわたっお動き回った埌、WebGLでhudを実行する絶察的な方法はないず思いたす。それは完党にプロゞェクトに䟝存したすが、私の考えは次のずおりです。

  • HUDに特定の効果を必芁ずしない堎合は、HTMLを遞択しおください。「合成コスト」がかかりたすが、オヌバヌレむが倚すぎない限り4倍/ 5倍のサむズの画面オヌバヌレむを䜿甚するず遅くなりたす ChromeでMacBook Pro Retinaを2015幎半ばに、htmlでのHUDの䟋
  • 䜕らかの理由でそれをglに含める必芁がある堎合は、各フレヌムがすべおの䞊にレンダリングされたカメラの前に配眮されるグルヌプを盎接配眮したす。 サむズ倉曎時に特定のz距離でカメラからグルヌプの範囲を蚈算しお、アむテムを䞊/右/例/巊に配眮したす。 この方法により、パヌスペクティブを利甚する柔軟性が埗られHUDで3D芁玠が必芁な堎合、パフォヌマンスのコストが最も䜎くなるはずです間違っおいる堎合は修正しおください。
  • 私の意芋では、 @ sylwesterdigitalのより「論理的な」方法は、同じシヌン内のテクスチャずしお、シヌンの䞊に2番目のレンダリング正曞法たたはパヌスペクティブを実行するこずです。 ただし、倧きな欠点は、パフォヌマンスの面で、画面サむズにピクセル比を掛けた2番目のレンダラヌが発生するこずです。HUDレンダラヌが小さい堎合は、品質が䜎䞋したす。
  • Three.jsの䞊にあるPixi.jsは、 @ sylwesterdigitalの悪い解決策です。
  • three.jsの䞊にある叀き良きキャンバスも機胜するはずです。私のすばらしい同僚の1人@namideは、開発者。Unityでは、HUDを凊理する䞀般的な方法はCanvasRendererです。すべおのトップ。

したがっお、結論ずしお、私の意芋では、HUDビゞュアルコンポヌネントは、蚱容できるパフォヌマンスのコストに䟝存する必芁がありたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡

関連する問題

yqrashawn picture yqrashawn  Â·  3コメント

scrubs picture scrubs  Â·  3コメント

akshaysrin picture akshaysrin  Â·  3コメント

seep picture seep  Â·  3コメント

zsitro picture zsitro  Â·  3コメント