問題タブ [opengl-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - OpenGL: 非推奨との関係は?
OpenGL 3.0 と 3.1 では、私が不可欠だと思うかなりの数の機能が廃止されました。特に、シェーダーでの固定機能の使用。
誰かがそれと実際に何が起こっているのか説明できますか?
誰もが使っていることは明らかであり、正気なハードウェア会社がサポートを削除しようとしないような便利な機能を廃止する必要があるのはなぜでしょうか?
python - OpenGL の新機能と非推奨
PyOpenGL 3.0.1b を使用して、Python で OpenGL をいじり始めました。
私はいくつかのサンプル コードを見て、それを実行したり変更したりし始めました。
http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtmlには、OpenGL 関数がリストされており、非推奨かどうかも示されています。だから私は、この廃止されたがらくたをすべて使用しない最新のチュートリアルを見つける必要があると思いました。
数時間後、そんな運はありません!非推奨のサンプル コードに続く非推奨のサンプル コード... 非推奨でないチュートリアルを参照できる場所はありますか?
c++ - gluPerspectiveはOpenGL3.1で削除されましたが、置き換えはありますか?
ネット上でいくつかのOpenGLチュートリアルを読み込もうとしています。問題は、を使用する古いものをいくつか見つけたことgluPerspective()
です。gluPerspectiveはOpenGL3.0で非推奨になり、3.1で削除されました。
代わりにどの機能を使用できますか?
最新のFreeGlutがインストールされたC++を使用しています。
opengl - GPUで高速化されていないOpenGL関数はどれですか?
これを読んだとき、私はショックを受けました(OpenGL wikiから):
glTranslate、glRotate、glScale
これらのハードウェアは高速化されていますか?
いいえ、これを実行する既知のGPUはありません。ドライバーはCPUでマトリックスを計算し、それをGPUにアップロードします。
他のすべてのマトリックス操作もCPUで実行されます:glPushMatrix、glPopMatrix、glLoadIdentity、glFrustum、glOrtho。
これが、これらの機能がGL3.0で非推奨と見なされる理由です。独自の数学ライブラリを用意し、独自のマトリックスを作成し、マトリックスをシェーダーにアップロードする必要があります。
非常に長い間、私はほとんどのOpenGL関数がGPUを使用して計算を行うと思っていました。これが一般的な誤解であるかどうかはわかりませんが、しばらく考えてみると、これは理にかなっています。古いOpenGL関数(2.x以前)は、状態スイッチが多すぎるため、実際のアプリケーションには実際には適していません。
これにより、おそらく、多くのOpenGL関数がGPUをまったく使用していないことに気付きます。
したがって、問題は次のとおりです。
GPUを使用しないOpenGL関数呼び出しはどれですか?
上記の質問に対する答えを知っていると、OpenGLでより優れたプログラマーになるのに役立つと思います。あなたの洞察のいくつかを共有してください。
編集:
この質問は簡単に最適化レベルにつながることを私は知っています。それは良いことですが、それはこの質問の意図ではありません。
GPUを使用しない特定の一般的な実装(AshleysBrainが提案したように、nVidia / ATI、および場合によってはOSに依存する)のGL関数のセットを誰かが知っているなら、それが私が求めているものです!
もっともらしい最適化ガイドは後で来ます。このトピックでは、関数に焦点を当てましょう。
Edit2:
c++ - プロジェクトを OpenGL3 に移植する
私は C++ クロスプラットフォームの OpenGL アプリケーション (Windows、Linux、および MacOS) に取り組んでおり、大規模なアプリケーションを OpenGL 3 に移植するためのアドバイスを共有できる人がいるかどうか疑問に思っています。私が OpenGL 3 を検討している理由は、新しい「同期オブジェクト」を使用すると、多くのメリットが得られると思います。Nvidia は Geforce 256 日 (gl_nv_fences) からこのような拡張機能をサポートしていますが、OpenGL 3.0+ より前の ATI ハードウェアには同等の機能がないようです...
私たちのコードは、glut/freeglut、glu 関数、OpenGL 2 拡張機能、および CUDA (サポートされているハードウェア上) をかなり多用しています。私が今直面している問題は、「gl3.h」と「gl.h」が相互に互換性がないことです (gl3.h に記載されています)。GL3 glutに相当するものがあるかどうか知っていますか? また、CUDA ツールキット ヘッダー ファイルを見ると、GL-CUDA の相互運用性は、OpenGL の古いバージョンを使用している場合にのみ利用できるようです... (cuda_gl_interop.h には gl.h が含まれています...)。何か不足していますか?
どうもありがとうございました。
opengl - OpenGL 3.x を使用するソフトウェアを実行できるユーザーは何人ですか?
ユーザーが OpenGL 3.x を使用するソフトウェアを実行できると期待できますか?
オープンソースのグラフィック ドライバを使用している Linux ユーザーは、OpenGL 3.x を実行できますか? Mesa3D 7.8 が OpenGL 2.1 のみをサポートしていることは知っています。
また、OS X Snow Leopard が一部の OpenGL 3.0 機能をサポートしているわけではないことも知っています。Leopardの状況はわかりません。
XP、Vista、Windows 7 での状況はわかりません。
私は OpenGL の学習を開始したいと考えています。私の関心は、ゲームよりも科学および工学のアプリケーションにあります。OpenGL 1.x を使用するコードを読むことになることはわかっていますが、ユーザーのシステムがサポートすると期待できる最新の仕様を使用してコードを書きたいと考えています。2.1 と 3.3 のどちらを学習し始めるべきか迷っています。OpenGL Superbible の第 4 版で 2.1 を学習するか、7 月 30 日にリリースされる第 5 版で 3.3 を学習することを考えていました。(私は物理学の学士号を持っているので、数学のバックグラウンドはかなり良いです。)
Edit: I found this related question with answers that are relevant to my question.
opengl - OpenGL 4.x 学習リソース
OpenGLの学習についていくつか質問があることは知っています。これが私が知っていることです:
- 3D の数学
- 三次元理論
私が知りたいことは次のとおりです: - OpenGL 4.0コア プロファイル(またはそれ以降) - Shader Language 400 (またはそれ以降) - 上記のすべての部分 (ベンダー間で機能しない場合でも、私は気にしません)
これが私が知りたくないことです - 修正された関数パイプライン (これまで使用しません!) - 古い OpenGL - 互換性プロファイル
チュートリアル、一連の記事、書籍など、より多くの情報のほうが好きです。
PS opengl 3.xコアプロファイルに関するリソースを知っている場合は、それらも投稿してください
opengl - このOpenGLHelloWorldが黒いウィンドウを描画する理由を誰かが解読できますか?
長さ(および幅。IDEでわかりやすくするため)を許してください。ただし、目的は最新のVBOおよびGLSLの単純なHello Worldであるため、コードの全長を表示することを考えました。
当初はhttp://people.freedesktop.org/~idr/OpenGL_tutorials/02-GLSL-hello-world.pdfに基づいていました
重要な点は、単一のエラーメッセージや警告が出力されないことです。printfsがたくさんあることがわかります(実際には、ほとんどすべてのコードがエラーを検出しようとしています)。
コンパイルは-std=c99 -pedantic -O0 -g -Wall(警告なし)で実行されるため、コンパイラエラーの余地もあまりありません。
私はピンポイントで注意を向けました
と
(後者は私がまだ完全に理解していないコードの唯一の部分です;最もあいまいな機能'これまで')
情報ログは何も出力せず、シェーダーが意図的に無効にされた場合、通常どおり正常なテキストを印刷します。したがって、シェーダーの文字列の割り当てでもコンパイルでもありません。
空白の画面を印刷する可能性のあるものを見ることができますか?
glDrawArraysがGL_POINTSとともに使用されている場合は中央に単一のドットを出力し、glClearの前に適切なglClearColorが付いている場合は色が変わります。
opengl - OpenGL で、OpenGL3+ メソッドのみを使用して透視図を作成する最も簡単な方法は何ですか?
最初は怠惰に聞こえるかもしれませんが、私は 2 日間研究してきました。
プリミティブを描画する SDL+GLEW アプリがあります。さまざまな視点でいくつかのビューポートを作成したかったのです。4 つのビューポートが表示されますが、パースペクティブを変更できません。
あなたが持っていると仮定します
OpenGL3+ 仕様で、パースペクティブ ビューポート (または理想的には複数のもの) を作成する最も簡単な方法は何ですか?
opengl - OpenGL:頂点変換シーケンスの使用を理解するためのリソースを探しています
私は、v.3.0以降のメソッドでのみOpenGLの基本を学ぶことを検討しています。「カメラ」に相当するものを使う必要が出てきました[基本的な目標は、一人称で「マウスで見回す」ことです]。私はそれについて具体的な質問をしましたが、それはおそらく私が何を学ぶべきかについてさらに深くなっています(私はそれを簡単に実装できないため)。このような問題についていくつかのリソースを見つけましたが、それらは理想的ではないか、OpenGL1.x用である可能性があります。メソッド
私が探しているのは:
OpenGLのマトリックスは何を明確に表していますか?それらは異なる文脈で何を表していますか?(画面への投影と最終投影に関連して)
それらはどのように操作できますか?何をするためにどのマトリックスを操作する必要がありますか?いつ操作する必要がありますか?【コーディング方法】
データの伝達に関する明確なヒント。投影パスに関連してデータを通信する方法は?
ほとんどのエンジンは、すでにそれを実行している古いエンジン(変換/単にマウスで見回す)に基づいているか、それらを使用する人々がすでに関連する領域のスペシャリストであり、公開しているため、インターネットリソースが非常に限られている領域のようです。彼らの知識はほとんどありません。