タグ付けされた質問 「opengl」

OpenGLは、デスクトップおよびワークステーション市場を対象とするグラフィック標準およびAPIです。専用のコンピューターハードウェアで簡単に加速できるように設計されているため、ほとんどの実装では、従来のソフトウェアレンダリングよりもパフォーマンスが大幅に向上しています。現在、OpenGLはCADソフトウェアやコンピューターゲームなどのアプリケーションに使用されています。また、クロスプラットフォームです。OpenGL標準は、OpenGL ESも制御するKhronosグループによって制御されています。

1
このジオメトリシェーダーがプログラムをそれほど遅くするのはなぜですか?
OpenGLプログラムを使用しており、地形メッシュをレンダリングしています。頂点バッファーで頂点を移動しますが、フラグメントシェーダーではまだ実際に色付けしていません。ジオメトリシェーダーを1つずつ追加します。 ジオメトリシェーダーを追加する前に、パイプラインのフラグメントと頂点のシェーディングステップをプログラミングしていたとき、約30+のフレームレートを取得していました。ちょっぴり気付かないくらいでした。ジオメトリシェーダーを追加すると、1秒あたり約5フレームになります。どうして?これは、ジオメトリシェーダー全体です。 #version 420 layout (triangles) in; layout (triangle_strip, max_vertices = 3) out; void main() { for (int i = 0; i < gl_in.length(); i++) { gl_Position = gl_in[i].gl_Position; EmitVertex(); } EndPrimitive(); } これは、ジオメトリシェーダーなしでOpenGLが行っていたこととまったく同じではありませんか?
27 opengl  glsl 

1
フリーグルトvs SDL vs GLFW
ゲームプロジェクトをAndroid(C、OpenGL ES 2.0、NDKのおかげで記述)からWindowsおよびLinuxプラットフォームに移植する必要があります。もちろん、プラットフォームに依存するコードを書き直す必要がありますが、今ではOpenGLを作成するためのライブラリと入力ハンドルを使用するためのライブラリに疑問が残ります。 グーグルで簡単に3つの候補を取得します。 1)Freeglut-書き換えられた、古き良きGLUTを解放します。 2)SDL-多くのゲームで使用される1つのライブラリを最もよく知っています。 3)GLFW-何らかの新しいが、シンプルで機能的。 私は、PC開発を始めたばかりで、それらの間に大きな違いは見られません。どちらを選択するのを手伝ってもらえますか?明らかにコアマウス/キーボード入力とOpenGLコンテキストの作成だけが必要です。また、GLEWを使用して簡単に最新のOpenGLに到達します。
26 opengl  windows  linux 

3
チームはソースファイルの上書きをどのように防止しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 たとえば、ゲームエンジンなどが複数の人によって同時に処理されているときに、上書きをどのように防ぐことができるのか、ということが起こりました。 開発者1が作業してAudio.cppおり、開発者2も作業をしているとしましょう。Audio.cppこれは、一般的に大規模なチームで上書きに対処するためにどのように管理されていますか?(つまり、開発者2がファイルを開くのを停止して、開発者1が終了するまで)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

3
ボクセルレンダリングの場合、より効率的なものは何ですか:既製のVBOまたはジオメトリシェーダーですか?
かなり静的なボクセル配列を考えると、より効率的です:CPUを使用してVBOを事前に生成し、ボクセルフェイスをレンダリングします(現時点では、マーチングキューブのような高度なレンダリング形式は無視します)。その場で顔? 変化するボクセルを更新することについてはそれほど心配していませんが、もちろんVBOを再構築する必要がないため、GPUバージョンの利点です。また、GSアプローチはもう少しモダンだと感じています:) 一方、最新のGPUでGSがラスタライズパイプラインと実際にどのように機能するかについては詳しく見ていない。頂点を一種のストリームキャッシュに出力しますか、それとも頂点が通常のGPUメモリに書き込まれますか?後者の場合、オンザフライで生成すると、利用可能な帯域幅と処理能力が残りのGPUタスクから減少する可能性があり、CPUで実行する方が有益です。

9
OpenGL最適化のヒント[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 OpenGLをより効率的にするためのヒントやコツを教えてください。

5
Unity3Dのようなエンジンが、初心者向けのOpenGLのようなネイティブライブラリよりも強調されているのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は3Dゲームの初心者です。私の好みのプラットフォームはAndroidです。「使用するもの:OpenGLまたはUnity3d?」に関する質問を他のフォーラムに投稿しました。彼らは全員Unity3Dを強調し、その組み込みの機能とツールを使用しました。OpenGLを使用する場合は、自分でコーディングする必要があります。しかし、その後、誰かが複雑なゲームのほとんどがカスタムエンジンを必要とすると言います。OpenGLではなくUnity3Dのようなエンジンを使用するのはなぜですか?
25 opengl  android  unity 

3
OpenGL Vertex Array Object(VAO)にはどの状態が保存されますか?また、VAOを正しく使用するにはどうすればよいですか?
OpenGL VAOにはどの状態が保存されているのかと思っていました。VAOには、バッファリングされた頂点の頂点仕様に関連する状態(バッファ内の属性、バインドされているバッファなど)が含まれていることがわかりました。VAOの正しい使用法をよりよく理解するために、VAOがどの状態を保持しているかを正確に知りたいです。 VAOの使用をどのように想定するか 簡単な例から、VAOの正しい使用法は次のとおりであることがわかりました。 セットアップ Generate VAO BindVAO ---- Specify vertex attributes ---- Generate VBO's ---- BindVBO's -------- Buffer vertex data in VBO's ---- Unbind VBO's Unbind VAO レンダリング Bind VAO ---- Draw Unbind VAO このことから、少なくとも頂点バッファーバインディングと頂点属性の仕様がVAOに格納されていると想定しています。ただし、この使用パターンが(複数の)テクスチャと(複数の)シェーダープログラムが作用する状況にどのように拡張されるかはわかりません。あるアクティブなシェーダプログラム VAOに保存されますか?また、テクスチャバインド(サンプリング/ラッピング設定)もVAOに保存されますか?ユニフォームにも同じ? したがって、私の質問は次のとおりです。 OpenGL VAOにはどのような正確な状態が保存されていますか?(VBOバインディング、属性仕様、アクティブシェーダープログラム、テクスチャバインディング、テクスチャサンプリング/ラッピング設定、ユニフォーム...?) 関連するサンプリング/ラッピング設定を持つ(複数の)テクスチャ、(複数の)シェーダープログラム、ユニフォームが関係する、より複雑なレンダリング設定でVAOを正しく使用するにはどうすればよいですか?
25 opengl  vao 

8
OpenGL、SFML、SDLには、ソフトウェアレンダリングと比べてどのような利点がありますか?
フレームワークなどを使用せずにCasey Muratoriがゲームエンジンを作成するHandmade Heroストリームを見始めました。昨日、私は彼が画面に画像が描かれる方法を示した部分に着きました。私が理解した限り、彼は描画したい画面のサイズと同じ大きさのメモリを割り当てました。そして、彼はビットマップを作成し、それを割り当てたバッファメモリに渡し、OS固有の関数を使用して画面に描画しました。 これは非常に簡単です。GameMakerを使用し、Love2Dに変更し、Sprite Kitで少し作業しましたが、この時々混乱するレイヤーの下で実際に何が起こっているのか常に疑問に思っていました。 それを考えると、単にバッファを割り当て、ビットマップを渡して画面に描画するだけでよいのに、なぜグラフィックライブラリ(OpenGL、SFML、SDLなど)を使用する必要があるのでしょうか。 その後、画面に明確なものを描画したい場合は、ビットマップに書き込むだけで、バッファに渡されます。私はプログラミングを始めたばかりですが、これは非常に簡単に思えます。私が間違っている場合は修正してください。

1
私のゲームは録音ソフトウェアと互換性がないようです。これは何が原因ですか?
大学向けの小さなGame-Devプロジェクトを終えたばかりで、提出に伴うビデオを録画する必要があります(ソースが機能しない場合に備えて)。基本的に、FRAPSまたはBandicamがアタッチしようとすると、ゲームがまったく機能しません。エラー報告コードから黒い画面とGL INVALID OPERATIONメッセージのストリームが表示されます。Dxtoryはまったく正しくフックできないようで、FPSカウンターなどは表示されません。私のゲームロジックはデバッグトレースから正しく実行されているように見えますが、glライブラリの呼び出しがすべて壊れているようです。 私はこれらのプログラムがどのように動作するかについて膨大な量を知らないので、これを引き起こすために私が何をすることができるかを本当に知りません。OpenGLフレームバッファーから読み取ると聞いたので、何か間違っているのでしょうか。GLFWとGLEWにすべての低レベル初期化を行わせていますが、同じセットアップおよび記録ソフトウェアでプロジェクトを正常に記録しました。 本質的に、これまでにこのような何かに遭遇したことはありますか、またはこれらのプログラムがどのように機能し、問題の原因についての手がかりを得ることができるかについて何か知っていますか?

7
開発キットにアクセスせずにPS3 / Xbox 360を体験するにはどうすればよいですか?
私は、PS3、Xbox 360の業界プログラミングを始めようとしている新進気鋭のゲームプログラマです。主な問題は、潜在的な雇用者に自分のスキルを実証する必要があることですが、PS3またはXbox 360の開発キットにアクセスせずに、これは直接不可能です。 私の質問は、コンソール開発者に私のスキルを示す最良の代替方法は何ですか? DirectX for WindowsのC ++プログラミングはXbox 360のプログラミングスキルに近いように見え、OpenGLのC ++プログラミングはPS3プログラミングスキルに比較的近いようです。残念なことに、Xbox 360とPS3の両方が独自の独自のライブラリを実際に持っているかのようにWeb調査から、したがって、これは100%の実りある努力ではないようです。このアプローチは最も近いように見えますが、最も時間がかかります。さらに、実際にコンソール上で何かを実行しているわけではありません。 一方、XNAでのプログラミングには、ゲームが実際にコンソール上にあるという利点がありますが、これはDirectXの単なるラッパーであり、C# C ++。 潜在的な雇用主にどのようなゲームデモが最も役立つかを知るために、業界内から知識や経験を持っている人はいますか?DirectX、OpenGL、XNA、Unreal Engine、Unity3d、FlashなどのC ++など?1日は非常に多くの時間しかないので、自分の努力をどのように導くかを知りたいです。 私の直感では、Xbox 360で使用されているものに近いように思えるので、DirectXが最良の選択であると思いますが、別の言語/エンジンで優れたデモを行うことが同様に優れている場合、明らかに時間がかかりません別のルート。 あなたの助けとアドバイスを事前に感謝します!


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

1
独自のシーングラフのローリング
こんにちは、Game Development SE! 私は、シンプルで非常に軽量なゲームエンジンを作成することを期待して、OpenGLを駆け巡っています。私はこのプロジェクトを、最終的には少しお金を稼ぐかもしれないが、どちらにしても楽しい学習体験だと思っています。 これまで、GLFWを使用して、基本的なI / O、ウィンドウ(非常に派手なF11フルスクリーンキー)、そしてもちろんOpenGLコンテキストを取得しました。また、GLEWを使用して、残りのOpenGL拡張機能を公開しました。これは、Windowsを使用しており、OpenGL 3.0+をすべて使用するためです。 これでシーングラフが表示されます。要するに、私は自分で転がしたいと思います。この決定は、OSGを見て、シーングラフの概念がどのようにねじれ、曲がり、壊れたのかに関するいくつかの記事を読んだ後に決定されました。そのような記事の 1 つでは、シーングラフがどのように開発されているかを説明しています... 次に、クリスマスツリーに飾りを吊るすなど、これらすべての余分なものを追加しました。ただし、飾りの一部はジューシーなステーキで、一部は生きた牛全体です。 類推に続いて、余分なコードの山や牛全体を縛る必要なしに、ステーキ、シーングラフがどうあるべきかの肉が欲しいです。 それで、それを念頭に置いて、私はシーングラフがどうあるべきか、単純なシーングラフをどのように実装すべきかを正確に疑問に思っていますか?ここに私が持っているものがあります... 1つの親、n子ツリーまたはDAG ... ゲームオブジェクトの変換(位置、回転、スケール)を追跡する必要があります 最適化のためにレンダリング状態を保持する必要があります ビュー錐台内にないオブジェクトを選別する手段を提供する必要があります 次のプロパティで... すべてのノードはレンダリング可能として扱われる必要があります(レンダリングしない場合でも)これは、... すべてにcull()、state()、draw()メソッドが必要です(非表示の場合は0を返します) cull()は、すべての子に対して再帰的にcull()を呼び出し、ノード全体およびすべての子に対して完全なカリングメッシュを生成します。もう1つのメソッドhasChanged()を使用すると、いわゆる静的メッシュでカリングジオメトリを各フレームで計算する必要がなくなります。これは、サブツリー内のノードが変更された場合、ルートまでのすべてのジオメトリが再構築されるように機能します。 レンダリング状態は単純な列挙で保持され、各ノードはこの列挙から必要なOpenGL状態セットを選択し、そのノードでdraw()が呼び出される前に状態がセットアップされます。これにより、バッチ処理が可能になり、指定された状態セットのすべてのノードが一緒にレンダリングされ、次の状態セットがセットアップなどになります。 ジオメトリ/シェーダー/テクスチャデータを直接保持するノードはありません。代わりに、ノードは共有オブジェクト(リソースマネージャーなどのシングルトンオブジェクトによって管理される可能性があります)を指す必要があります。 シーングラフのような状況可能にするために(多分プロキシノードを使用して)他のシーングラフを参照することができる必要があり、これをこのように複雑なマルチメッシュモデルを可能にする、/データのトンを追加することなく、シーングラフの周りにコピーするオブジェクト。 現在の設計について貴重なフィードバックを得たいと思っています。機能がありませんか?非常に優れた方法/デザインパターンはありますか?ややシンプルな3Dゲームのために、このデザインに含める必要のあるより大きなコンセプトがありませんか?等。 ありがとう、コーディ
23 opengl  3d  scene-graph 

2
通常、一度にいくつのテクスチャをバインドできますか?
私はゲームエンジンを開発していますが、最新の(Shaderモデル4+)ハードウェアでのみ動作します。私はそれを使い終えるまでに、それはそのような不合理な要件ではないだろうと考えています。 私の質問は、最新のグラフィックカードに一度にいくつのテクスチャをバインドできるかということです。16で十分でしょう。ほとんどの最新のグラフィックスカードがその数のテクスチャをサポートすると期待できますか? 私のGTX 460は32をサポートしているように見えますが、それが最新のビデオカードの代表かどうかはわかりません。

1
色収差をどのように実装しますか?
シェーダーで色収差の影響をどのように実装しますか? 色ごとに異なる焦点距離を使用して世界をレンダリングすると、問題は解決しますか(1つの深度レンダリングパスのみを使用する場合)。
22 opengl 

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