問題タブ [decal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 3D ゲームの Libgdx レンダリング フロア
私の最初の 3D ゲームでは、床をレンダリングしたいと考えています。これは、実際には ( libgdx ではなくPlane) 上の平面y = 0です。
それに追加したいTextureので、各レベルに異なるフロアを設定できます。
私の質問は次のとおりです。このテクスチャ付きの床を作成してレンダリングする最良の方法は何ですか?
Block Modelsで作ったbasicを使おうと思って をModelBuilder足したのTextureですが、6面中1面しか見えないので2dTextureで十分なので . を考えましたPlane。
3D ルームでは無限の面なので、 にTextureを追加できますか? Plane私が最後に考えたのはDecals でした。
私Decalが探しているものですか?そして、どうすればそれらを使用できますか? または、他の解決策がありますか。
チュートリアルやその他のヘルプは素晴らしいでしょう。
ありがとう
opengl - レンダリングを未知の曲面にステンシルする
複数の不規則なテクスチャを曲面 (xyz 頂点とそれぞれに指定された uv を持つメッシュ) にデカールしたい。モデル ファイルからメッシュを読み込んでいますが、サーフェスについてアプリオリな知識はありません...わかっているのは、「妥当な」UV マッピングがあることだけです。いくつかの UV 領域を選択して、それらにテクスチャを適用したいと考えています。各領域は、UV 座標のバウンディング ポリゴンによって指定されます。この場合、同等の xyz ポリゴンがわからないか、答えは簡単だと思います。
これは、平らな表面と単純な円筒形の表面 (平均として法線を選択することで平滑化された一連の平らなストライプとして近似します) に対して機能します。どちらの場合も、uv から xyz への一意のマッピングがわかっているため、テクスチャをバインドして実際のサーフェスを描画する前に、同等の xyz ポリゴンをステンシル バッファーに描画することにより、ステンシル バッファーを設定して、描画を目的の uv 領域に制限します。
また、テクスチャをサーフェスにデカールするときに、テクスチャ内で rgba 透明度を使用しています。通常、各テクスチャ領域は小さな回転した長方形であるため、4 つの頂点をステンシル バッファーに描画し、テクスチャ マトリックスを使用してそれを回転させ、テクスチャ内の rgba 透明度を使用して、テクスチャの適切な部分のみが適用されるようにします。これはすべてうまく機能します。
作業コードを再利用したいのですが、これらのテクスチャを任意の曲面/メッシュに適用します。これらのモデルを読み込んで描画しており、すでに面全体にテクスチャを適用できます [つまり、uv は (0,0) から (1,1) になります]。これを拡張して、「配置された」テクスチャを各サーフェスの領域に適用します。
同等の xyz ポリゴンを知らなくても、UV ポリゴンをステンシル バッファに直接描画できる可能性があると考えた場合、既存のコードはすべて機能します。おそらく、フレーム バッファ オブジェクトのようなトリックを使用して、ステンシル ポリゴンの最初の描画を行い、それを曲面メッシュの「実際の」描画中にステンシルとして使用することができます。それは良いアプローチでしょうか?それとももっと良い方法がありますか?
関連するサンプルへのアドバイスやURLリンクは大歓迎です... PSこれらのスレッドを見てきました...一種の関連性がありますが、まったく同じ問題ではないと思います...
opengl でステンシル レンダー バッファーをフレーム バッファーにバインドする
私は現在、オフスクリーン シャドウ マッピング用の FBO セットアップ/使用コードをいくつか見て、この一見単純な状況で機能するようにしようとしています。私がはっきりしていないのは、必要なセットアップ gl 呼び出しです...これをセットアップする方法についてかなり混乱しています。これは、ハードウェア シャドーイング FBO セットアップの抜粋で、ビットが切り捨てられ、?? 追加...ここで正しいシーケンスに関するヘルプをいただければ幸いです。
注: tex,m_Frambufferはints, textureid と framebuffer が正しく割り当てられています。ビットは問題ないと考えてください。私の混乱の主なポイントは
- コードは glBindTexture、glTexImage2D、glBindTexture を 0 にリリースするようです: これを早期にリリースするのは正しいですか?
- glDrawBuffer + glReadBuffer 呼び出しが必要ですか?
libgdx - libgdx 画面上のスプライトのサイズをピクセル単位で取得
私はLibgdxプロジェクトに取り組んでいます。基本的には2.5DアプローチなのでDecalsとDecalBatchを使います。操作 (ズームイン/ズームアウト) できる PerspectiveCamera もあり、デカールは静的です。
画面上のデカール投影の実際のサイズを見つけるのに問題があります。カメラがズームインすると大きくなり、ズームアウトするとデカールが画面上で小さく表示されます。
私はそのサイズを取得する必要があります。
camera.project と camera.unprojects を試しましたが、どちらも同じ値を返し、デカールの位置に対してのみ機能します。また、Libgdx のデカールにどの座標系が使用されているかわかりません。
これを解決する方法はありますか?私に何ができる?
text - libgdx デカール ダイナミック テキスト
私は Libgdx で 3D (2.5D) アプリケーションに取り組んでいます。この目的にはデカールが非常に便利であることがわかりました。
私のアプリには、動的テキストを含むレイヤーが必要ですが、デカールを介してテキストを描画する最良の方法は何だろうと思っています。
現在、私の実装は BitmapFont を FBO に描画することに基づいています。次に、FBO テクスチャを取得し、DecalBatch.flush() の前にそれをデカールにバインドします。
これはおそらく最も効率的な方法ではないと思いますが、より良い方法を見つけることはできません。
私のアプリには、3D ワールドに配置された多数のテキスト「レイヤー」を含めることができるため、各 BitmapFont を FBO に描画し、FBO テクスチャをデカールにバインドすることは最善の方法ではありません。
皆さん、何か良いアイデアはありますか?これを行う最も効率的な方法は何ですか?
事前にTnx!
rotation - デカールを一度に複数の軸で回転させる方法
私はデカールを使用してLibdxアプリに取り組んでいます。デカールは 3D ワールドの 2D スプライトです。
私が言うとき、私は問題を抱えています:
すべてが正常に機能しますが、私が言うと:
デカールは Y 軸のみで回転します。
その問題をどのように管理しますか?ソース コードのデカールでは回転にクォータニオンが使用されていることがわかりましたが、現在、要件に合わせてそれをカスタマイズする方法がわかりません。
事前にTnx!
編集:
次の方法で、複数の軸を中心にデカールを回転させることができました。
decal.getRotation().setEulerAngles(ヨー、ピッチ、ロール);
今私の質問は、TweenEngine でこれをアニメーション化する方法ですか?
私が持っている値を取得する方法で:
設定値メソッドには次のものがあります。
しかし、デカールは動いたり動いたりせず、1 つの位置に固定されています (XYZ 軸上でわずかに回転しています)。
どんな考えでも、TweenEngine の値は正しいのですが、どういうわけかデカールが更新されず、回転しません。
libgdx - libgdx デカールがステンシル バッファに描画されない
私は libgdx エンジンで 3d アプリに取り組んでいます。
decalBatch がステンシル バッファーに描画されていないことがわかりました。3D ワールド用のステンシル マスクを作成したかったのですが、まったく機能しません。
これはスプライト バッチでは機能するコードですが、デカール バッチでは機能しません。助けてください!
編集:
Depth バッファーをクリアし、DepthMask を有効または無効にする必要があることがわかりましたが、うまくいきません。
rotation - カスタム軸を中心としたLibgdxデカールの回転
私は Libgdx エンジンと 3d 空間でデカールを使用するアプリを作業しています。ここで、X、Y、Z 軸を中心にデカールを回転させる必要がありますが、3D 空間のどこかにあるカスタム ピボット ポイントを中心にします。
デカールには transformOffset フィールドがあり、一部の計算で機能する可能性がありますが、Vector2 のみであることがわかりました。これは、X 軸と Y 軸上でのみピボット ポイントを移動できることを意味します。また、デカールを Y 軸で回転させると、ピボットがどこにあっても結果は同じになります。
ピボットも Z 軸上に移動する必要があります。
この問題の回避策はありますか?
Tnx!
編集:
3D 空間のピボット ポイント上でデカールを回転させることに成功しましたが、ピボットとデカールの Z 位置が同じ場合のみです。そうでない場合、期待したものは得られません。
これは、同じ Z 値を持つピボットで機能するコードです。
そしてトゥイーンで私はこれを行います:
これを拡張して使用する方法とピボットの Z 値。これを実現するために、回転の横にアニメーションを追加して翻訳しようとしていますが、結果は奇妙です。
移動と回転のアニメーションを組み合わせて、ピボット ポイント上の円パスでデカールの回転を取得する方法はありますか?
three.js - Three.js マージ オブジェクトとテクスチャ
私の質問はこの記事に関連しています:
http://blog.wolfire.com/2009/06/how-to-project-decals/
私の理解が正しければ、元のメッシュと立方体の交差から作成されたメッシュがシーンに追加され、デカールが表示されます。最終的なテクスチャを保存する必要があります。元のメッシュと追加されたデカール メッシュのテクスチャを「マージ」する方法があるかどうか疑問に思っていましたか?

