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

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

1
シェーダーをコンパイルされた形式またはプレーンテキストで配布する必要がありますか?
GLSLで記述されたシェーダーを使用するアプリケーションがある場合、現実世界での配布とデスクトップおよびモバイルの最適な戦略は何ですか? 私はこれをバイナリ形式で、またはプレーンなシリアル化されたテキストとして配布することを目指しています。これについての良い提案をお願いします。

4
OpenGLのクリップスペースに4つの次元があるのはなぜですか?
これは一般的なリファレンスとして使用しますが、ブラウザのオンラインドキュメントや書籍が多ければ多いほど、これについてはあまり理解できません。 const float vertexPositions[] = { 0.75f, 0.75f, 0.0f, 1.0f, 0.75f, -0.75f, 0.0f, 1.0f, -0.75f, -0.75f, 0.0f, 1.0f, }; このオンラインブックには、三角形の作成に関するOpenGLの最初の古典的なこんにちは世界を描く方法の例があります。 三角形の頂点構造は、上記のコードで述べられているように宣言されます。 この本は、これに関する他のすべての情報源と同様に、クリップスペースは、ラスタライズされて画面にレンダリングされるものを基本的に決定するために使用される4D構造であるという点を強調します。 ここに私の質問があります: 私は4Dで何かを想像することはできません、私は人間がそれを行うことができるとは思わない、このクリップスペースの4Dは何ですか? 私が読んだ中で最も人間が読めるドキュメントはカメラについて語っていますが、これはクリッピングの概念を単に抽象化したものです。おなじみの3D構造?カメラのコンセプトに関する唯一の問題は、他の方法で見込み客を定義する必要があることです。したがって、基本的に、どのようなカメラを持ちたいかについて別のステートメントを追加する必要があります。 これをどのように読むの0.75f, 0.75f, 0.0f, 1.0fですか?私が得るすべては、それらがすべてfloat値であり、最初の3つの値の意味を得るということですが、最後の値はどういう意味ですか?

1
OpenGL / GLSL:キューブマップにレンダリングしますか?
シーンをキューブマップにレンダリングする方法を見つけようとしています。私はこれに少し立ち往生しており、皆さんに助けを求めると思いました。OpenGLは初めてで、FBOを使用するのは初めてです。 現在、キューブマップbmpファイルの使用例があり、フラグメントシェーダーのsamplerCubeサンプルタイプがGL_TEXTURE1にアタッチされています。シェーダーコードはまったく変更していません。キューブマップbmpファイルをロードしていた関数を呼び出さず、以下のコードを使用してキューブマップにレンダリングしようとしているという事実を変更しているだけです。 以下のように、GL_TEXTURE1にもテクスチャを再度アタッチしています。これは、ユニフォームを設定したときです。 glUniform1i(getUniLoc(myProg, "Cubemap"), 1); フラグメントシェーダーでにアクセスできますuniform samplerCube Cubemap。 私は次のような関数を呼び出しています: cubeMapTexture = renderToCubeMap(150, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); ここで、下の描画ループで、+ x、-x、+ y、-y、+ z、-z軸を見下ろすようにビューの方向を変更していないことに気付きます。私は本当にそれを実装する前に何かが最初に動作するのを見たいだけでした。私は少なくとも、コードが今のようにオブジェクト上に何かを見るべきだと考えました。 私は何も見ていません、ただ真っ黒です。背景を白にしましたが、オブジェクトは黒です。キューブマップテクスチャをサンプリングするために照明と色を削除しましたが、まだ黒です。 GL_RGB8、GL_RGBAのテクスチャを設定するときの問題は、フォーマットのタイプかもしれないと思っていますが、私も試しました: GL_RGBA、GL_RGBA GL_RGB、GL_RGB フレームバッファにアタッチされたテクスチャにレンダリングするので、これは標準だと思いましたが、異なる列挙値を使用する異なる例を見てきました。 また、キューブマップを使用するすべての描画呼び出しでキューブマップテクスチャをバインドしようとしました。 glBindTexture(GL_TEXTURE_CUBE_MAP, cubeMapTexture); また、ほとんどの例で見たFBO用の深度バッファーを作成していません。これは、キューブマップのカラーバッファーのみが必要だからです。実際にそれを追加して、それが問題かどうかを確認しましたが、それでも同じ結果が得られました。試してみたときに、それを少しでもおかしくすることができました。 正しい方向に私を向けることができる助けはありがたいです。 GLuint renderToCubeMap(int size, GLenum InternalFormat, GLenum Format, GLenum Type) { // color cube map GLuint textureObject; int face; GLenum status; …
13 opengl  glsl  cubemap 



1
OpenGLでPSXのグラフィックスをエミュレートする方法は?
OpenGLゲームがPlaystation 1ゲームのように見えるように設定するオプション(またはシェーダー)を知りたい。PSXはテレビを使用し、テレビはそのモニターとは異なる方法でレンダリングするため、おそらく100%達成できないことを知っています。ありがとう。:)
13 opengl  emulation 

7
テクスチャリングに最適な(最も人気のある)画像形式[非公開]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 さて、OpenGLでC ++を使用しています。3Dゲームのテクスチャを読み込むローダーを作成します。(ただし、テクスチャは2Dです)。使用しないことにしたとしても、透明性のオプションが必要です。最高の品質である必要はありませんが、適切な品質が必要です。フォーマットについて何を提案しますか(PNG、TGAなど)。また、ローダーを簡単に作成できるものにすることもできます(作成済みのローダーは使用しません)。また、ローダーを支援するためのリンク/ヒントがあれば、それを歓迎します。
13 c++  opengl  textures 

1
テクスチャを部分的に透明にする方法は?
グッドモーニングStackOverflow、openGLでテクスチャの一部を透過的にレンダリングする方法を見つけることができないように見えるので、私は今少し問題を抱えています。 私の設定は次のとおりです。壁を表すクワッドがあり、このテクスチャで覆われています(アップロードのためにPNGに変換されます)。明らかに、ガラスのペインを除いて、壁を不透明にしたいです。壁の後ろには、風景を表示することになっている別の飛行機があります。窓の後ろから景色を眺めたいです。各テクスチャは、アルファチャネルを持つTGAです。 「風景」が最初にレンダリングされ、次に壁がレンダリングされます。私はこの効果を達成するのに十分だと思ったが、明らかにそうではない。透明であると思われるウィンドウの部分は黒で、壁を通り過ぎると風景が表示されます。 GLBlendFunc()を有効にしてからいじろうとしましたが、うまくいかないようです。 重要なステップを忘れていますか? ありがとうございました :)

12
OpenGLを学ぶのは無駄ですか?
インターネットやさまざまなソースで収集したことは、DirectXがグラフィックスAPIドメインを強固に握っていることです。正直なところ、DirectX10を学ぶ機会を与えましたが、物事がどのように初期化されるのか、我慢できません。実際の3D部分を実際に学習することは非常に困難でした。 一方、OpenGLは「コーディング」の観点からははるかに理にかなっていますが、「持続しない」ものに時間を費やしたいかどうかはわかりません。私は最新のニュースに追いついておらず、OpenGLとDirectXの間で起こっている「戦争」についてもあまり知りません。そうは言っても、OpenGLはすぐになくなるのですか?OpenGLで気に入っているのは、DirectXの場合よりも(書籍/チュートリアル/サンプルを介して)利用可能なリソースが多いため、学習がはるかに簡単なことです。 OpenGLを学ぶのは今がいい時期ですか、それともDirectXがちょうど未来なのでしょうか?今では、100,000のトピックについて話し合っていますが、どちらが良いかについて話しますが、それは私が尋ねているものではありません。OpenGLが定着するかどうかを尋ねているだけです。
13 opengl 

3
OpenGL 1.xと2.xの違いは何ですか?
OpenGL 1. *と2. *の違いを示す良いチュートリアルはありますか? どの関数を呼び出してはならないかを知ることは非常に役立ちます(glBegin()など)。
13 opengl 

4
OpenGLのレンダーバッファからテクスチャを取得しますか?
FBOにレンダーバッファー(DepthStencil)があり、そこからテクスチャを取得する必要があります。FBOにDepthComponentテクスチャとDepthStencilレンダーバッファーの両方を含めることはできないようです。そのため、後で使用するためにレンダーバッファーをDepthComponentテクスチャに変換する方法が必要です。 何週間もレンダーバッファーから深度コンポーネントを取得するために多くのテクニックを試してきましたが、いつも迷惑メールが出ます。最後に欲しいのは、レンダーバッファを使用していなかった場合にFBOから取得するのと同じテクスチャです。この一見単純な操作をカバーする包括的な指示またはコードを誰でも投稿できますか? 編集: コードの抽出バージョンへのリンク http://dl.dropbox.com/u/9279501/fbo.cs 被写界深度エフェクトのスクリーニー+ FBO-深度なし(!) http://i.stack.imgur.com/Hj9Oe.jpg 被写界深度エフェクトなしのスクリーニー+ FBO-正常に機能する深度 http://i.stack.imgur.com/boOm1.jpg
13 opengl 

1
ビューポートの伸縮を防ぐにはどうすればよいですか?
基本的に、ビューポート/ウィンドウのサイズが変更されたときに、レンダリングされたイメージの歪みやストレッチを削除する方法を知りたいです。 次の画像は、私が話している歪み/伸縮の例です。 元の画像(正方形ウィンドウ) 歪んだ/引き伸ばされた画像(長方形のウィンドウ) 理想的には、2番目の画像は水平方向に引き伸ばさずに球体を表示し、より大きなウィンドウサイズを考慮してより多くのシーンをユーザーに公開する必要があります。 これをどのように行うことができますか? 私はOpenGLと連携して画像をレンダリングし、呼び出しを介して透視投影を利用しています。 glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(60, window.width/window.height, 0.01f, 100.0f) アスペクト比width/heightは、私が出くわしたすべての文書/チュートリアルに従っているので、間違っているとは思わない。しかし、私の疑いは、ストレッチングの問題に影響しているということです。 結果論 正直に言って、この問題についてもっと考えてみると、解答には、フォービィ(y方向の視野)角度とアスペクト比との正比例関係が関係していると信じられていました。 上記の画像を参照として使用すると、幅が拡大する場合(水平方向のストレッチが発生する場合)、レンダリングされた画像の比例性を「固定」する垂直方向のストレッチを引き起こすためにfovy角度を大きくする必要がありそうです。 同様に、幅を小さくするには、フォビ角を小さくする必要があります。 更新: したがって、これをさらに調査した後、次のように視錐台の設定方法を変更することにしました。 gluPerspective(60 * (float)window.width/window.height, (float)window.width/window.height, 0.01f, 100.0f) そして、私の期待は正しかったので、比例の問題は解決しました。ただし、希望する結果が得られません。ウィンドウの幅が大きくなると、レンダリングされるイメージは小さくなります(ただし、球体は実際には円形です)。代わりに、球体のサイズをまったく変更しないでください。表示されるシーンの量のみを変更する必要があります。

4
今日、ハードウェアレンダリングではなくソフトウェアレンダリングを使用するのはなぜですか?
CPUやソフトウェアのレンダリングとは対照的に、私は想定していますか? 一般に、現在のレンダリングはすべて、GPUベースではなく、OpenGLまたはDirect Xを使用しているように見えますか? 誰かが私にここでいくつかの情報を教えてもらえますか、適切な答えが見つかりませんか?

3
Openglの光を理解しようとしている、現実的な太陽光をシミュレートする方法は?
何か間違ったことをしているのか、何かを逃しているのかはわかりませんが、晴れた日のように太陽光をシミュレートしたいです。 オブジェクトが指向性ライトに面している場合、オブジェクトは十分に明るく、問題はありません。オブジェクトを回って戻ってきたところを見ると、暗いです。使用しGL_AMBIENTているので暗すぎませんが、晴れた日には暗すぎます。値を大きくしても、オブジェクトの光に面する側が明るすぎるため、見た目が良くなりません。 また、アンビエントライトにはもう1つの厄介な問題があります。オブジェクトの背面を見ると、形が見えず、無地の色しか見えません。説明が難しい、ここにいくつかの写真があります: オブジェクト前面:http : //i.stack.imgur.com/YW53X.png オブジェクト背面:http : //i.stack.imgur.com/Qufha.png 簡単に見ることができるように、正面が見栄えが良く、その赤いものの形を見ることができます。裏面では、それはプレーンで、同じ形を見ることができません。 今、私はオブジェクトの後ろを見ていること、そして光の方向を見ていることを知っています、そしてそれは正面より暗いはずです。しかし、このように単純に見えるべきではありません。それは、あるオブジェクトを見て太陽光に逆らったときに見えるものではなく、オブジェクトが何らかの形を形成していることがわかります。 OpenGLで同じ(または同様の)効果を得るにはどうすればよいですか? 私の光は現在このように定義されています: float posLight0[4] = {-1.0f, 1.0f, 1.0f, 0.0f}; float ambLight0[4] = {0.5f, 0.5f, 0.5f, 0.5f}; glLightfv(GL_LIGHT0, GL_POSITION, posLight0); glLightfv(GL_LIGHT0, GL_AMBIENT, ambLight0);
13 opengl  lighting 

4
OpenGLの「バッファ」と「配列」の違いは?
webGLまたはOpenGLでドキュメントを読むと、関数とオブジェクトの名前の使用方法にいくつかのパターンが見られます。しかし、バッファオブジェクトと配列の違いを理解できません。 「頂点バッファオブジェクト」、「頂点配列オブジェクト」、さらにある種の「バッファ配列」または「配列バッファ」があります。 OpenGLコンテキストでは、何かが「配列」であり、代わりに「バッファ」と呼ばれるべきときは?
12 opengl  webgl 

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