問題タブ [pyopengl]

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.

0 投票する
1 に答える
681 参照

python - 完全に黒いテクスチャのオフスクリーン フレーム バッファで線がレンダリングされない

テクスチャがバインドされたフレーム バッファがあり、それが単に黒で完全なアルファであり、それに線を描画しようとすると、線が完全なアルファを持っていてもレンダリングされません。私はバカではないので、線は絶対に黒ではありません。代わりに、テクスチャが白の場合、その背後のテクスチャの色がダムの線の色に影響を与えるかのように、線が突然正しくレンダリングされます。線が透過性を持っている場合にのみ、線の背後の色が効果を持つべきです。

ラインスムージングを使用しています。どうやら使用するものである次のブレンド関数を使用します。

これを修正するにはどうすればよいですか?

多くのコード:

線を引く場合:

フレームバッファ オブジェクトの設定:

テクスチャの作成:

フレーム バッファ オブジェクトを使用して、画面または Surface オブジェクトのテクスチャに多数の線を描画する関数:

それだけが重要だと思います。おそらく初期化コードを除いて:

0 投票する
3 に答える
1415 参照

python - OpenGL の新機能と非推奨

PyOpenGL 3.0.1b を使用して、Python で OpenGL をいじり始めました。

私はいくつかのサンプル コードを見て、それを実行したり変更したりし始めました。

http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtmlには、OpenGL 関数がリストされおり、非推奨かどうかも示されています。だから私は、この廃止されたがらくたをすべて使用しない最新のチュートリアルを見つける必要があると思いました。

数時間後、そんな運はありません!非推奨のサンプル コードに続く非推奨のサンプル コード... 非推奨でないチュートリアルを参照できる場所はありますか?

0 投票する
3 に答える
5363 参照

python - OpenGLの透明なFrameBufferの背景

glClearとglClearColorを使用して、フレームバッファをアルファ透明度を含む色で塗りつぶしたいと思います。ただし、フレームバッファは、画面にレンダリングされるテクスチャにバインドされると、常に不透明としてレンダリングされます。

フレームバッファにレンダリングされるすべてのものが透明性を維持するようにしたいです。背景を変えたいだけです。

次のコードを参照してください。

surface.background_alphaは、フレームバッファの背景の透明度である必要があります。これが私の初期化コードです:

私は物事を機能させるために多くの調整を行い、すべてを適切に整理していないため、コードは少し厄介です。

誰かが私を助けてくれるなら、私は大いに感謝します。

0 投票する
3 に答える
1184 参照

python - pyopengl と numpy 用のインターリーブ バッファの構築

pyOpengl の glInterleavedArrays/glDrawArrays に送信する前に、多数の頂点とテクスチャ座標をインターリーブ配列にまとめようとしています。唯一の問題は、numpy 配列にデータを追加するのに十分な速度で適切な方法を見つけることができないことです。

これを行うより良い方法はありますか?配列を事前に割り当ててからデータを入力する方が速いと思っていましたが、代わりにpythonリストを生成してnumpy配列に変換する方が「高速」です。4096クワッドの15msは遅いようですが。

いくつかのサンプル コードとそのタイミングを含めました。

乱数を使用したタイミング:

編集メモ: オブジェクトの再利用を減らし、毎回異なる頂点をシミュレートするために、レンダリングごとに乱数を生成するようにコードを変更しました。

編集注 2: 静的バッファーを追加し、すべての numpy.empty() で dtype=float32 を使用するように強制します

注 2010 年 4 月 1 日: まだ進展がなく、どの回答でもまだ問題が解決したとは思えません。

0 投票する
5 に答える
10308 参照

python - pyopengl: C++ を置き換えることができますか?

コンピュータ グラフィックスのコースを開始する予定で、言語を選択する必要があります。

選択肢は C++ と Python の間です。私は C++ に問題はありません。python は進行中の作業です。だから私は、グラフィック部分に pyopengl を使用して、Python の道を進むことを考えていました。

聞いたことがありますが、パフォーマンスが問題です。

Python / pyopengl は C++ のパフォーマンスに挑戦できるほど成熟していますか?

私はそれが遠いショットであることを理解していますが、pyopenglの使用に関するあなたの考えや経験を聞きたいです.

0 投票する
1 に答える
1326 参照

python - pyglet を実装すると、かつて動作していたフレームバッファ OpenGL コードが壊れる

この質問は私の以前のものを繰り返しますが、重要な情報を正しくコピーしなかったために以前のものは失敗だったので、やり直さなければなりません。

OpenGL 関数の呼び出しでエラーが発生します。pyglet が OpenGL を正しく初期化していない可能性がありますか? エラーは、以前は機能していた単純な関数で発生します。

エラーは次のとおりです。

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, surface.frame_buffer) ctypes.ArgumentError: 引数 2:: 間違った型

型違い?それでは、 glGenFramebuffersEXT(1) は間違ったタイプを与えていますか? なぜでしょうか?

その関数が呼び出される前に、ゲームを管理するクラス インスタンスを初期化します。初期化方法は次のとおりです。

Surface は私が作成したクラスで、pygame.Surface クラスと少し似ていますが、OpenGL テクスチャを使用します。

そのメソッドは Window と OpenGL をセットアップし (おそらくどちらが問題なのか?)、それを呼び出した後、テクスチャへのレンダリングに setup_framebuffer 関数を使用するゲーム用にいくつかの設定を行いました。次に、pyglet.app.run() が呼び出され、self.window.set_handler('on_draw,self.game_loop) を実行したため、できれば game_loop メソッドを実行する必要がありますが、そこに到達する前にゲームがクラッシュします。

ピグレットを使うのはこれが初めてです。ドキュメントは、私が間違っていることを説明していません。誰でも助けることができますか?

ありがとうございました。

0 投票する
0 に答える
801 参照

wxpython - 存在するモジュールのOpenGLおよびImportErrorのアクセラレーションなし

私はwxPythonとOpenGLを使用してプログラムを書いています。プログラムは動作しますが、アンチエイリアスがなく、次のエラーメッセージが表示されます:(私はArchLinuxを使用しています)

ただし、site-packagesフォルダーを調べると、そこにモジュールが存在することがわかります。GLCanvasを使用するwxPythonデモプログラムがあり、エラーなしで正常に動作します。

私のプログラムはGLCanvasのデモと非常によく似ており、平行移動、回転、大腿四頭筋の描画、およびいくつかの基本的な照明が含まれています。

私はここで何が間違っているのですか?(コードは200行を超えています。必要に応じて、これを編集してここに配置します)

0 投票する
4 に答える
2185 参照

opengl - PyOpenGL: glVertexPointer() オフセットの問題

私の頂点は、次のようなnumpy配列(dtype = float32)にインターリーブされています:... tu、tv、nx、ny、nz、vx、vy、vz、...

レンダリングするとき、私は gl*Pointer() を次のように呼び出しています (以前に配列を有効にしました):

その結果、何もレンダリングされません。ただし、頂点の位置が最初の要素 (... vx、vy、vz、tu、tv、nx、ny、nz、...) になるように配列を編成すると、レンダリング中に頂点の正しい位置が得られますが、テクスチャ座標と法線が正しくレンダリングされません。

これにより、ポインターのオフセットを正しく設定していないと思います。どのように設定すればよいですか?私は C++ の他のアプリでほぼ同じコードを使用していますが、動作します。

0 投票する
2 に答える
8173 参照

python - Pyglet OpenGL 描画アンチエイリアス

私は OpenGL で行をアンチエイリアスする方法を探していましたが、どれも機能していないようです...ここにいくつかのサンプルコードがあります:

誰かが私が間違っていることを見ることができますか?

0 投票する
2 に答える
3496 参照

python - PyOpenGLは、openglプログラミングの学習を開始するのに適した場所ですか?

OpenGLを学び始めたいのですが、それを行うために他の言語を学ぶ必要はありません。私はすでにPythonにかなり精通しており、言語を楽しんでいます。通常のAPIにどれだけ近いか知りたいだけですか?チュートリアルや本をそれほど問題なく簡単にフォローできるでしょうか?

C ++の方がパフォーマンスが優れていることは知っていますが、学習のためだけにPyOpenGLで問題が発生する可能性はありますか?