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

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

2
Haloは発射体をどのように描画しますか?
発射物を描いてビルボードをしようとしています。発射体は、ビルボードの「パーティクル」と「トレーサー」で構成されています。発射物を広告するとき、プレイヤーの視線方向が発射物の軸に平行であるとき、それは見えません。 Haloまたは他のゲームはこの問題をどのように解決し、発射物が背後から見えるようにしますか。

2
OpenGLの最も一般的な3Dモデル形式
私は、AndroidデバイスでOpenGL ESを使用し始めたばかりの初心者です。OpenGLを練習するために、私は小さなゲームエンジンを作成したかったので、最高の3Dモデルファイル形式はどうなるかと考えていました。 同じ形式の無料モデルにも興味があります。 何を指示してるんですか?
12 opengl  3d  models 

4
GLM:四元数に対するオイラー角
私が問題を抱えているので、GL数学(GLM)を知っていることを望みます、私は破ることができません: オイラー角のセットがあり、それらの間のスムーズな補間を実行する必要があります。最良の方法は、それらをクォータニオンに変換し、SLERPアルゴリズムを適用することです。 私が抱えている問題は、オイラー角でglm :: quaternion を初期化する方法です。 GLMドキュメンテーションを何度も読みましたが、適切なが見つからずQuaternion constructor signature、3つのオイラー角が必要です。私が見つけた最も近いものは 、角度の値とその角度の軸をとるangleAxis()関数です。注意してください、私が探しているのは、方法、解析方法RotX, RotY, RotZです。 参考までに、これは上記のangleAxis() 関数のシグネチャです。 detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)

5
エッジのスカイボックステクスチャアーティファクト
Macでのスカイボックステクスチャの描画に奇妙な問題があります。iPhoneでは、すべてがうまくいきます。私は、成功せずに近くと遠い飛行機の値を変更しようとしました。 これは6つのテクスチャのスカイボックスであり、テクスチャごとにこれを設定しました。 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 何が問題なのでしょうか? スクリーンショット: 編集: 私は背景色を赤に設定して、テクスチャを貫通しているかどうかを確認しようとしました また、テクスチャの座標をこれに変更しようとしました: float err_corr = 0.5 / TEXTURE_SIZE; GLfloat vertices[24] = { -1.0f - err_corr, -1.0f - err_corr, 1.0f + err_corr, 1.0f + err_corr, -1.0f - err_corr, 1.0f + err_corr, -1.0f - err_corr, …
12 opengl  textures  macos  sky 

8
2D Game Dev(C ++)の使用開始:DirectXまたはOpenGL?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 だから、私はゲーム開発の扉に足を踏み入れようとしている学生で、2Dの何か、おそらくテトリス/スペースインベーダー/小さなマウスインタラクションクローンのようなものを探しています。 私はC ++と2dの方向に検索を向け、最終的にDirectX / OpenGLにつながりました 今、私が理解しているように、これらのパッケージはすべて、画面上に描画するだけです。そして、この時点で私が本当に気にすることはそれだけです。音は必要ありません。入力はおそらくstdlibで処理できます。 C ++で基本的なゲームを作成しようとする初心者にとって、DirectXまたはOpenGLをお勧めしますか?どうして?2つの機能の主な違いは何ですか?どちらがより使いやすいですか?
12 c++  opengl  directx 

7
シンプルなパーティクルエフェクトを作成する最速の方法
ゲームで地獄のようにスパムされる本当にシンプルなパーティクル効果を作成する最速の方法を探しています... 基本的に、私のゲームはほとんどが線でできているvectrexゲームのように見えます。 いくつかのポイントを移動してGL_Pointでレンダリングするよりも高速なものがありますか?

5
APIに依存しないブリッジ(OpenGL / D3D / Whateverなど)。それらをどのように使用しますか。賛否両論[非公開]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた2年前。 あなたは3Dエンジンを作っています。最高のマルチプラットフォームの世界が必要です。突然、WindowsマシンでDirect3Dを使用し、OSX / LinuxでOpenGLを使用する場合、両方のサポートされている機能を最小公分母に犠牲にする必要があることに気づきます。 3つのOSでOpenGLを使用する人もいます。すべてが良いです。次に、グラフィックスAPIバックエンドを任天堂のGXに移植する必要があります。また、PS3とXbox360のパスを作成する必要があります。 職業はなんですか?それ自体で最も一般的な分母ではない独自のAPIを設計し、各プラットフォーム用にバックエンド実装を記述しますか、それとも独自のブランチである各プラットフォーム用に記述しますか? 独自のAPIを設計することを選択した場合、ブリッジパターンまたは独自のブードゥー教を使用しますか?あなたがすべてを理解し、キッチンシンクアプローチが停止する必要があることに気づいたとき、狂気はどこで止まり、基本的にはブランチとして各プラットフォームに個別のエンジンがあります。または、すべてにこだわってキッチンシンクを行い、各プラットフォームのバックエンドモジュール専門分野でプラットフォーム固有の仕様を保持します。

1
glDrawArraysとglDrawElementsの違い
OpenGL ESの上で私の心をリフレッシュしている間、私は出くわしたglDrawArraysとglDrawElements。 私はそれらがどのように使用されるかを理解し、なぜそれらが異なるのかを理解しています。 私が理解していないように見えるのは、glDrawElements描画呼び出しを保存する方法がわからないということです(描画呼び出しの保存は、私が読んだほとんどの本で言及されている説明なので、ここで言及します)。 2つの三角形を使用して正方形を描こうとした単純なシナリオを想像してみてください。 を使用するglDrawArraysときに使用する6つの頂点のセットglDrawElementsが必要です。6つの要素を持つインデックス配列に加えて、4つだけ必要です。 上記を踏まえて、ここに私が理解していないものがあります: glDrawElementsインデックス配列(正方形の場合は6つのインデックス)を使用して、4つの要素(6回)を持つ頂点配列にインデックスを付ける必要がある場合、どのように描画呼び出しを保存できますか?言い換えれば、glDrawElementsそれでも合計6回の描画呼び出しが必要になるということglDrawArraysですか? glDrawElementsそれでも2つの配列、つまり頂点とインデックスの2つの配列が必要な場合、どのように保存スペースを使用しますか? 2つの三角形から正方形を描画する場合、簡単にするために、glDrawElements(頂点配列に4項目、インデックス配列にglDrawArrays6項目)および(頂点配列にのみ6項目)の描画呼び出しを個別に何回行う必要がありますか? ありがとう。

1
画面スペースの派生物とは何ですか、いつ使用しますか?
私が見るddxとddyGLSLの機能をし、HLSL同等物は、すべての今してシェーダコードに出てきます。私は現在それらを使用して、接線または接線なしでバンプマッピングを行っていますが、基本的にコードをコピーして貼り付けました。これらの関数が実際に何であるか、それらが何をするのか、いつ使用するのかを理解できません。 だから質問: スクリーンスペース微分関数とは何ですか? これらの関数は何をしますか?入力値と出力値 最も一般的に使用される効果は何ですか? これらの機能に目を向けるには、どのような効果が必要ですか?

2
自然に見えるボクセルを作る方法
ボクセルゲームを開発していますが、間違ったテクニックを使用しているようです。私は現在、ブロックを作成するためにフラットタイルを使用しています。 自然に地形が見えるボクセルゲームを見ました。つまり、非ブロック性です。ゲームは1立方メートルあたり4 * 4 * 4のブロックがあり、土、砂、石などのブロックは丸いエッジを持ち、一種の溶け合いを持っています(通常のゲームのように)。こちらがスクリーンショットです これはどのように達成されますか?

2
OpenGLのダイレクトステートアクセスメカニズムの利点は何ですか?
私はopengl.orgで OpenGL 4.5ダイレクトステートアクセス(DSA)について読んでいますが、正しく機能しているかどうかはわかりません。 古い方法は効率が悪いことを暗示しているようです: glBind(something) glSetA(..) glSetB(..) glSetC(..) 新しい方法より: glSetA(something, ..) glSetB(something, ..) glSetC(something, ..) その見た目から、それぞれglSetがglBind(something)その内部に含まれている必要があり、OpenGLがまだ状態マシンである場合、単一のに適用されたストリーム化された変更を利用できませんsomething。 新しいDSAの背後にある理由と利点を説明してください。
11 opengl 

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

1
頂点シェーダーとフラグメントシェーダーの速度を個別にプロファイルするにはどうすればよいですか?
頂点またはフラグメントシェーダーがレンダリングパイプラインのボトルネックになっているかどうかを確認する方法を知りたいのですが。 OpenGLコマンド間のクロックチェックポイントを取得するためにターゲットを使用glQueryCounterすることについて読みましたGL_TIMESTAMPが、これらは異なるタイプのシェーダーを区別しません。 たとえば、GPUの1つのフレームのレンダリングに8ミリ秒かかった場合、頂点シェーダーに7ミリ秒かかり、フラグメントシェーダーに1ミリ秒かかったと言えますか?

3
画面の一部のみを詳細にレンダリングする
グラフィックスが大きな視野角でレンダリングされる場合(非常に大きなテレビやVRヘッドセットなど)、ビューアは実際には画像全体に焦点を合わせることができず、その一部だけに焦点を合わせることができません。(実際、これは通常サイズの画面にも当てはまります。) 視聴者の目を追跡する方法(ほとんどの場合VRで実行可能です)と組み合わせると、理論的にこれを活用して、グラフィックスを視聴者の焦点から遠ざけ、徐々に細部と解像度を下げて、知覚される品質を失うことなくパフォーマンスを得ることができます。 これを利用できる、または現在開発中のテクニックはありますか?

3
3Dレンダリングでのインデックスの目的は何ですか?
OpenGLで3Dキューブを作成するとします。オブジェクト(キューブ)に必要な頂点データを実装します。インデックスを使用する意味は何ですか? void CreateCube() { const Vertex VERTICES[8] = { { { -.5f, -.5f, .5f, 1 }, { 0, 0, 1, 1 } }, { { -.5f, .5f, .5f, 1 }, { 1, 0, 0, 1 } }, { { .5f, .5f, .5f, 1 }, { 0, 1, 0, 1 } …
11 opengl 

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