タグ付けされた質問 「3d」

3Dは、座標がX、Y、Zの値で表される3次元空間を指します。


2
3Dオブジェクトの変換を操作するための移動、スケール、回転ギズモを実装する方法は?
基本的な3Dエディタを開発中です。OpenGLを使用して3Dワールドをレンダリングします。現在、私のシーンはサイズの異なるいくつかのボックスであり、各ボックスを選択して移動/スケーリング/回転して必要な変換を実現できるようにしたい段階にあります。 これらのツールのギズモ(またはハンドル、または通常はどのように呼び出すか)のレンダリングを実装する問題と、マウスで変換の変更を実行するために各軸でそれらを選択する問題をどのように解決できますか?明確にするために: これまでの私の研究は、最もクリーンなアプローチはギズモの矢印ごとに軸に沿って境界ボックスを配置し、正方形ごとにもう1つ(単一の軸ではなく平面内でオブジェクトを移動するもの)に境界線ボックスを配置し、マウスから光線を投射することを提案しました配置し、衝突するものを確認します。しかし、これはまだ私には少し抽象的すぎます。このアルゴリズムがどうなるかについてのさらなるガイダンスに感謝します(疑似コードは十分すぎるほどです)
11 opengl  3d 

3
2つのボクセルが相互接続されているかどうかを確認するアルゴリズム
私は次の問題に適したアルゴリズムを探しています:ボクセルの3Dグリッド(空または塗りつぶされている可能性があります)を前提として、隣接していない2つのボクセルを選択した場合、それらが互いに接続されているかどうかを知りたい他のボクセル。 たとえば(2Dで状況を示すため)、#は塗りつぶされた正方形です。 1 2 3 a # # # b # # c # # # 私がa3とc3を選択した場合、それらが接続されているかどうかをできるだけ早く判別したいと思います。塗りつぶされたピクセルを通るa3とc3の間にパスがある場合。(実際の状況は、もちろん3Dボクセルグリッド内にあります。) フラッドフィルアルゴリズムとパスファインディングアルゴリズムを見てきましたが、どちらを選択するかわかりません。どちらも不必要な作業を行います。フラッドフィルはすべてのボクセルを埋めようとしますが、これは必要ありません。パス検索アルゴリズムは通常、最短パスの検索に関係していますが、これも必要ではありません。道があるかどうかを知るだけです。 どのアルゴリズムを使用する必要がありますか? 編集:コメントに基づいて、以下を追加する必要があると思います:ボクセルの内容は事前に不明であり、ボクセルの削除(空にする)によってボクセルのグループが壊れるかどうかを検出するアルゴリズムも必要です2つ以上の小さなグループに分けます。

1
ゲーム/映画のキャラクターの呼吸
呼吸(胸部と顔の特徴の動き):モデル化するのが難しいかどうか、計算コストが高いかどうかを確認したいと思います。最近、マダガスカル3の映画に大きな影響があることに気づきましたが、(間違っている場合は修正してください)ゲームで見たことを覚えていません(ただし、寒い冬の設定でスチームクラウドを除く)。それを顕著な程度に(たとえば、プロットまたは状況によって必要な場合)。 映画のグラフィックスとゲームのグラフィックスの両方の観点からの回答に感謝します。

2
複雑な3Dシーンでアルファブレンディングを適切に実装するにはどうすればよいですか?
この質問の答えは少し簡単に聞こえるかもしれませんが、それは私を夢中にさせています。適切なアルファブレンディングメカニズムで処理できる状況が多すぎるため、アルゴリズムごとに欠けているものがあると考えることができます。 これらは私がこれまでに考えた方法です: まず、オブジェクトの深さによる並べ替えについてですが、オブジェクトは単純な形状ではなく、曲線があり、互いにループする可能性があるため、これは単に失敗します。だから、どちらがカメラに近いのか常にわからない。 次に、三角形の並べ替えについて考えましたが、これも失敗する可能性があります。実装方法がわからないので、2つの三角形が互いに通過するという問題が再び発生する可能性があるというまれなケースがあります。繰り返しますが、どちらがより近いかは誰にもわかりません。 次に、深度バッファーを使用しました。少なくとも深度バッファーがある主な理由は、前述した並べ替えの問題が原因ですが、今度は別の問題が発生します。オブジェクトは透明なので、1つのピクセルに複数のオブジェクトが表示される場合があります。では、どのオブジェクトにピクセル深度を保存する必要がありますか? 次に、最前面のオブジェクト深度のみを保存できると考え、そのピクセルを使用して、次の描画呼び出しをどのようにブレンドするかを決定しました。しかし、再び問題が発生しました。2つの半透明の平面の中央に固体平面があると考えてください。最後に固体平面をレンダリングしようとしていましたが、最も遠い平面を見ることができます。そのピクセルの色が1つだけになるまで、2つのプレーンごとにマージすることに注意してください。上で説明したのと同じ理由で、明らかにソート方法も使用できます。 最後に、すべてのオブジェクトをさまざまなレンダーターゲットにレンダーし、それらのレイヤーを並べ替えて最終的な出力を表示することが、私が作業できると思います。しかし、今回はこのアルゴリズムをどのように実装できるかわかりません。
11 3d  blending 

3
一人称ゲームの重力の強さ
このゲームでは、重力による加速度を適切な値9.8 m / s ^ 2に設定します。物理的には正しいのですが、月面を移動しているように感じます。16m / s ^ 2の値でほぼ正しいと感じます。他の誰かがこれを経験しましたか?それは、モーションブラーや、スピード感を与える音がないからでしょうか。気持ちが良ければ16m / s ^ 2に設定してもいいですか?

1
glVertexAttribPointerの正規化
glVertexAttribPointer(インデックス、サイズ、タイプ、正規化、ストライド、ポインター); type = GL_UNSIGNED_BYTEおよびnormalized = GL_TRUEを使用する場合 それはどのように正規化されますか?データは正規化のために256で除算されますか?または?これは、「1.0f」の正規化された値を持つ方法がないことを意味します。
11 opengl  3d 

4
解像度に依存しないテキストのレンダリング
ゲームで解像度に依存しないテキストを描画する方法が必要です。つまり、テキストを拡大表示して、ピクセルアーティファクトを表示しないようにする必要があります。 誰も私がそれについてどうやって行くことができるかについて何か提案をすることができますか?
11 xna  2d  3d  text 

3
3Dマップ上のRTS、たとえば地球儀
既存のアートワークとマップが単純な2Dグリッドである場合、3D地球をどのように「タイル化」できますか? アートワークなどの多くを再利用できるアプローチはありますか?
11 3d  maps 

3
ビューマトリックスから翻訳を取得する方法
ビューマトリックスからカメラのワールド空間の位置を取得するにはどうすればよいですか?この質問に対して私が見た唯一の回答は、翻訳が最後の行/列にあることを示唆していますが、マトリックスには[x(ドット)右、y(ドット)上、z(ドット)見た目]が含まれているため、これは機能しません。
11 3d  mathematics  matrix 

1
プログラムで球の中央半分を描く
球の真ん中半分を作成しようとしています。基本的には球を作成するために、スタック番号とスライス番号が与えられ、2つの変数phi(スライス用)とtheta(スタック用)がどれだけ進行するかを担当します。そして、プロセスはボトムキャップ、ボディ、トップキャップの作成に分かれています(以下を参照)。真ん中の半分(theta以下のように真ん中の50%)を達成するには、キャップを省略して、どういうわけかボディを変更する必要があります。スタック番号(1/4*stackNumbers to 3/4*stackNumbers)をいじっていましたが、思い通りの結果が得られませんでした。 真ん中の半分(pi/4 <theta <pi*3/4)を達成するには、球の生成をどのように変更すればよいですか?私の全体的な問題は、球を上部25%、中央50%、下部25%の3つの異なる部分に分割する方法ですか? プログラムで球を生成するための一般的なコードは次のとおりです。 private void generateSphere(int stackNumber, int sliceNumber, boolean facingOut) { int capVertexNumber = 3 * sliceNumber; int bodyVertexNumber = 4 * sliceNumber * (stackNumber - 2); int vertexNumber = (2 * capVertexNumber) + bodyVertexNumber; int triangleNumber = (2 * capVertexNumber) + (6 * sliceNumber …

2
3人称カメラをターゲットに向けて回転させる
私はプレーヤーを直接見ない3人称カメラを持っていますが、彼の前のどこかにあります。 ユーザーが撮影モードに入ると、カメラがプレイヤーを振り向いてターゲットに向かいます。 上の画像。「O」はプレーヤー(原点)、「L」はルックアット、「C」はカメラの位置、「T」はターゲットです。ルックアットラインC-> Lを回転させて、原点( "O")を中心にT(C '-> L'-> T ')を通過するようにします。 基本的には、画像に赤で表示した角度アルファを見つける必要があります。 私はカメラの位置をそのような構造に保存します: struct CameraTarget { Quaternion absoluteRotation; Vec3 absolutePosition; Vec3 cameraOffset; Vec3 lookatOffset; float FOV; } だから私が探している角度を見つけることができれば私は次のようなことをすることができます: cam->absoluteRotation = cam->absoluteRotation * alpha; プレイヤーに常にターゲットを見させる。 LookatがOriginを通り過ぎていた場合、私は簡単にできます Vec3 origDir = cam->lookAtOffset - cam->absolutePosition; origDir.normalize(); Vec3 newDir = cam->target - cam->absolutePosition; newDir.normalize(); Quaternion q(origDir, newDir); …

1
大きな地形メッシュを効率的にレンダリングする方法は?
最近、ゲームに地形を生成する最良の方法について考えている問題に悩まされています。別のプロジェクトでは、通常はハイトマップを使用したため、すべてのコアワークは使用されたエンジンに基づいていましたが、地形には正確に描画する必要がある数百万の特定のポリゴンがあるため、これは実行できません。また、それらの多くはYベクトルから解析できません(ポリゴンが下に隠れているため)。つまり、ハイトマップはここでは役に立ちません。この場合、COLLADAオブジェクトを使用する必要がありました。 誰かがBlenderのようなソフトウェア内でモデルを手動で分割するように言ったが、残念なことに、これらの地形は別のソフトウェアのチャンクで作成され、ゲームに読み込まれるため、これも不可能である(それはアイデアだ)。したがって、これは毎回手動でスライスすることを余儀なくされる大きな仕事になるでしょう。 したがって、この問題を1週間解決して、このメッシュ、つまり地形をカメラのフラストラムに応じて手続き的にロードする方法について1週間研究してきました。これにより、可能な限りパフォーマンスを節約できます。手続き型メッシュの生成に関する多くのドキュメントに出くわしましたが、メッシュを八分木にマッピングすることで問題を解決できると思います。これは少なくとも私にとっては大きな仕事であり、それが私がここにいる理由です。なぜなら、私は経験豊富な人々から聞く前に間違った道をたどるリスクを冒したくないからです。 要するに、私には何百万もの頂点とインデックスがあり、それらが一緒になって地形を形成していますが、明らかな理由により、それらを同時に描画することはできません。何らかの手続きが必要です。大きなメッシュを地形として扱うために、それを行うための最良の方法は何ですか?それに関する具体的な本はありますか?それを実装する最良の方法はありますか? どんな間違いでもすみません、私はこの分野の初心者です。

2
地形をテクスチャマップする方法は何ですか?
私は3DゲームでXNAを使用していますが、適切で快適な環境を作ろうとしています。ハイトマップから地形を作成するためのチュートリアルを実際に実行しました。テクスチャを付けるには、草のテクスチャを適用し、何度もタイルを張ります。 しかし、私がやりたいのは、本当にリアルなテクスチャリングを作成することですが、それを自動的に生成することもできます(たとえば、Perlinノイズを使用してテレインを生成してからテクスチャーを作成する場合)。 マルチテクスチャリングについて学び、さまざまなテクスチャのさまざまな色でマップファイルをロードしましたが、これは本当に効率的ではないと思います。たとえば、崖や非常に急な領域の場合、テクスチャがタイル状に表示されるため、上。(また、どのようにして道路やダートパスを描画するかわかりません。) 手続き的に生成された地形を現実的にテクスチャマッピングする効率的なソリューションを探しています。

2
2DタイルベースのRTSで橋の下を通過するボート
2DタイルベースのRTSを書いています。そして私はそれに「疑似3D」機能を追加したいと思います-川に架かる橋。 私はまだコーディングを開始していません。衝突検出モデルにどのように適合するかを考えようとしています。橋の下を通過するボートと橋の上を移動するユニットは、最終的にマップ上の同じセルを占有します。それらを衝突から予防する方法は? そのような問題を解決するための一般的なアプローチはありますか?または、これを行うには3Dワールドを実装する必要がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.