タグ付けされた質問 「c++」

C ++は、静的に型付けされた自由形式のマルチパラダイムでコンパイルされた汎用プログラミング言語です。

1
惑星レンダリングに最適なLODメソッドはどれですか?
私は現在、私の論文に取り組んでいます。それは惑星サイズの地形をレンダリングするエンジンです。 私はまだ研究を終えており、この主題に関する多くの問題に遭遇しました。問題は、どの詳細レベル(LOD)メソッドを使用すべきかを決定できないことです。 ジオミマップ、ジオメトリクリップマップ(GPU)、UlrichのチャンクLODについて知っています。これらは大きな地形でうまく機能し、キューブの6つの面をレンダリングし、この方法でキューブを「球状化」することができます。 C ++ / OpenGL / GLSLを使用したGPUでのこれらのメソッド(ROAMなどのメソッドを使用するか、キューブを使用しない他のメソッドを使用することは、テクスチャリングが苦手なので私の手の届かないところにあります)。また、最近、ここでテッセレーションシェーダーを使用して地形をレンダリングするチュートリアルに参加しました だから、私はすべての方法を実装し、どれが惑星規模に最適でより適しているかを見る時間がないので、誰かがこの種の比較を行ったかどうかを確認し、どの方法を決定するのを助けたいと思います私は実装して使用する必要があります(私の家庭教師はちょっと変わっていて、20面体で何かをしたいと思っていますが、ROAMを使用しないとその方法を理解できません) とにかく、あなたが私を決定するのを手伝うことができるか、または他の提案または方法があるならば、私は本当に感謝します。1つの条件は、メソッドがCPUのボトルネックを防ぐためにGPU側(少なくともそのほとんど)を実装できることです。 別の要求は、地形で多くの詳細を取得するときにフロートの精度に関する数値的な問題があることを知っていることです。それを解決する方法がわかりません。実装すると、そのスレッドを追跡できなくなり、この精度の問題を解決する方法を知りたいと思います。 私は現在、フロートの精度、zファイティングの問題、動的z値での錐台カリング、チャンクのデータ表現を解決するためのいくつかのマトリックス変換について読んでいます(フロートとワールド座標での位置をダブルとして使用)精度の問題は簡単に解決できると思います。このプロジェクトに最適なLODメソッドを決定するために、LODメソッドとあなたの意見や提案を比較する必要があります。実装の難易度と視覚的品質とパフォーマンスを考慮に入れて、最高のものが欲しいです。 私が言及するのを忘れていたのは、世代がハイブリッドであるということです、つまり、GPU(その場で計算される高さ)を使用して、および/またはベースの高さマップ画像を使用して、地球を完全にレンダリングし、GPU(頂点シェーダー)。テクスチャリングは、私が後者を悩ます側面の部分になります。今は、高さに応じて色だけを使用するか、フラグメントシェーダーで生成された何らかのノイズテクスチャを使用することができます。

3
ゲームエンジンでユニットテストを行う方法
残念なことに、適切な単体テストを作成したことはありません。テストが成功した後に破棄する小さな未編成のテストプログラムのみを作成しました。ゲームプロジェクトで単体テストをどのように実行すべきかについて、明確な考えはありません。(私の言語はC ++です。) エンジンのサブシステムごとに個別のプロジェクトとそれに関連するテストを用意し、実際のエンジンを構築するより大きなプロジェクト/ソリューションを用意する必要がありますか?たとえばevent、エンジンにモジュールがあるとします。どのように処理すればよいですか?

2
アニメーションブレンドの基本
走ったり歩いたりすることができ、もちろん静止しているキャラクターのフレームワークがあるとします。 アニメーションブレンドは、実行時に動的なアニメーションを生成することにより、これらの間をスムーズに移行するプロセスだと思いますか? もしそうなら、これがどのように機能するかの基本的な理論は何ですか、どのように実装しますか?
23 c++  animation 


3
保存データにテキストファイルを使用する必要がありますか?
私の質問は、テキストファイルを使用してゲームデータを保存する必要があるかどうかです。これを行う上でいくつかの基本的な懸念があります。 データを保護する方法は本当にありません。したがって、ユーザーがデータに触れた場合、ユーザーはすべてを台無しにする可能性があります。 それはおそらく私のデータを保存する最も効率的な方法ではありません(それはたくさんあります) ただし、テキストファイルを効果的に解析/書き込みする方法は知っているので、プロトタイプを作成するためには素晴らしいものでした。開発の終わり近くで顔を痛めないように、私は切り替えに何を考えるべきかを未来に見たいだけです。 テキストファイルを使用しない場合、何を使用すればよいですか?C ++と互換性のあるものが必要です。

1
静的およびアニメーション3Dモデルのファイル形式
この質問は、Game Development Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 現在、OpenGLを使用してC ++で3Dゲームを作成しており、3Dモデルをロードする部分に来ています。したがって、 静的メッシュを表示し、 アニメーションメッシュをレンダリングします。 キーフレームアニメーション、骨格アニメーション、MD2〜MD5、3DS、X、Colladaなどのような、非常に多くの可能な形式と手法を既に見つけました。 簡単にするために、静的メッシュとアニメーションメッシュの両方を可能にする形式(および手法)を使用したいと思います。したがって、私の質問は、1つの形式がそのタスクに適しているかどうか、そしてどの形式を提案するかです。そして、少し明確にするために、私は非常に滑らかなアニメーションやまったく新しい機能を必要としません。 サイドノート:私はブレンダーのファンなので(ただし、専門家ではありません ;-))、それを使用できると便利ですが、もちろんそれはショーストッパーではありません。
22 c++  opengl 


5
O(N ^ 2)関数の改善(すべてのエンティティが他のすべてのエンティティを反復処理する)
少し背景を説明しますが、エンティティシステムにENTTを使用して、C ++の友人と進化ゲームをコーディングしています。クリーチャーは2Dマップ内を歩き回り、緑や他のクリーチャーを食べ、繁殖し、その形質が変化します。 さらに、ゲームをリアルタイムで実行した場合のパフォーマンスは良好です(60fpsは問題ありません)が、大幅な変更を確認するために4時間待つ必要がないように大幅にスピードアップできるようにしたいと思います。だから、私はできるだけ早くそれを取得したい。 クリーチャーが食物を見つけるための効率的な方法を見つけるのに苦労しています。各クリーチャーは、彼らに十分近い最高の食べ物を探すことになっています。 食べたい場合、中央に描かれた生き物は、149.64の半径(視界距離)で自分の周りを見回し、栄養、距離、およびタイプ(肉または植物)に基づいて、追求すべき食物を判断することになっています。 。 すべてのクリーチャーの食料を見つける機能は、実行時間の約70%を消費します。現在どのように書かれているかを単純化すると、次のようになります。 for (creature : all_creatures) { for (food : all_entities_with_food_value) { // if the food is within the creatures view and it's // the best food found yet, it becomes the best food } // set the best food as the target for creature …

3
非整数の速度値-これを行うよりクリーンな方法はありますか?
多くの場合、ピクセルベースのゲームでキャラクターを動かすために、2.5などの速度値を使用します。ただし、衝突検出は一般的に私が行うとより困難になります。だから私はこのようなことをすることになります: moveX(2); if (ticks % 2 == 0) { // or if (moveTime % 2 == 0) moveX(1); } 私はそれを書く必要があるたびに内側にうんざりしますが、非整数の速度値でキャラクターを移動するよりクリーンな方法はありますか、これを永遠にやり続けるのですか?

4
最新のゲームコードで実際に使用されるアセンブリの量はどれくらいですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 平均して、アセンブリは現代のゲームコードでどれくらいの頻度で使用されますか? 特に、x86、PPC、ARMなどの優れたC ++コンパイラを既に搭載しているプラ​​ットフォームでは、組み込みシステムのゲームはアセンブリを広範囲に使用すると想定しているためです。
21 c++  c 

6
ゲームデータ/ロジックをレンダリングから分離する
私はC ++とOpenGL 2.1を使用してゲームを書いています。データ/ロジックをレンダリングから分離する方法を考えていました。現時点では、描画を実装するための純粋な仮想メソッドを提供する基本クラス「Renderable」を使用しています。しかし、すべてのオブジェクトには特別なコードがあり、シェーダーのユニフォームを適切に設定し、頂点配列バッファーデータを整理する方法を知っているのはオブジェクトだけです。コード全体で多くのgl *関数呼び出しが発生します。オブジェクトを描画する一般的な方法はありますか?
21 c++  opengl  rendering  logic  data 

5
アセンブリによる最適化の学習[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 私はコンピューターゲームテクノロジーの2年生です。私は最近、自分のパスファインダーの「種類」の最初のプロトタイプを完成させました(幾何学的なアプローチ/パターン認識の代わりにA *を使用しません。地形が既にわかっている場合、実際に探索できるAIが必要でした。パスファインダーにはノードのメモリがあるため、最短距離で簡単に歩きます)。 とにかく私の質問はより一般的です:アルゴリズム/ループ/ for_each /などの最適化を開始するにはどうすればよいですか。一般的なヒントは大歓迎ですが、アセンブリを使用します。このトピックに関する良い本を見つけるのは本当に難しいので、私は特に良い本を探しています。このような小さな記事がいくつかありますが、それでもアルゴリズム/ゲームを最適化するには十分な知識がありません... 私が見つけることができなかった現代の良い本がそこにあることを願っています...

10
ゲームプログラミングのためのC ++との競合
この質問は、Game Development Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 なぜC ++がゲーム開発で非常に人気があり、代わりに他の言語ではないのかについて興味があります。あなたはそれで非常に高速なコードを作成できることを知っていますが、何がそれを人気にしているのですか? 速いからといって?オブジェクト指向のパラダイムや移植性など、言語の他の機能ですか?時間の経過とともに作成されたすべてのライブラリが原因ですか?または、これらすべての(および他の)理由の何らかの組み合わせ? 誰かが私にこれを記入できれば、私はとても幸せになります。:-)
21 c++ 

2
カメラ/ビューポートを2Dゲームに実装する
カメラ/ビューポートを2Dゲームに実装する最も実用的な方法は何ですか? 画面を基準とした位置ではなく、オブジェクトの世界の位置を保存する必要があることを読みましたか? 現在の状況: XMLファイルからオブジェクトとレベルを読み込む単純な2Dゲームを実装しました。現在、レベルXMLファイルは次のようになっています。 <map> <tile obj="ground" x="0" y="555" /> <tile obj="ground" x="16" y="555" /> <tile obj="ground" x="32" y="555" /> ... </map> すべてのオブジェクトには、画面上の現在の場所を格納する2Dベクトル「位置」があります。 私が望むもの: 写真の中の: カメラは800x600または640x480です ブロックとスプライトは16x16ピクセルです。 世界のサイズは異なる場合があります 座標はおそらく画面ではなく世界に対して正規化されるべきでしょうか? プレーヤーのx、yに対するビューポートの位置。プレーヤーがカメラのデッドゾーンに到達したときに移動します(このビデオと同様)。 私は擬似的な例/記事を求めていますが、開発に使用しているものを知る必要がある場合:SDL&C / C ++。
20 c++  2d  architecture  camera 

4
動的なゲームオブジェクトを保存する最も効率的なコンテナは何ですか?[閉まっている]
ここで何が尋ねられているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 7年前に閉鎖されました。 私は一人称シューティングゲームを作成していますが、さまざまな種類のコンテナについて知っていますが、ゲームで頻繁に追加および削除される動的オブジェクトを保存するのに最も効率的なコンテナを見つけたいと思います。元弾丸。 その場合、それはリストであるため、メモリは連続しておらず、サイズ変更が行われることはありません。しかし、その後、マップまたはセットを使用することも考えています。有益な情報があれば教えてください。 ちなみに私はこれをC ++で書いています。 また、私はうまくいくと思う解決策を思いつきました。 まず、大きなサイズのベクトルを割り当てます。たとえば、1000個のオブジェクトを割り当てます。このベクターに最後に追加されたインデックスを追跡して、オブジェクトの終わりがどこにあるかを把握します。次に、ベクターから「削除」されたすべてのオブジェクトのインデックスを保持するキューも作成します。(実際の削除は行われません。そのスロットが空いていることがわかります)。したがって、キューが空の場合、ベクトルに最後に追加されたインデックス+ 1に追加します。そうでない場合は、キューの先頭にあったベクトルのインデックスに追加します。

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