問題タブ [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.
python - PyOpenGL TypeError:'NoneType'オブジェクトは呼び出せません
私はゲームプログラミングの基本を学ぼうとしていますが、そのためにインストールpygame
しpyopengl
ました。
MyCode:
コマンドプロンプトで上記のコードを実行すると、
次のエラーが発生します。
このエラーが発生する理由がわかりません。私glutinit
は間違った方法で電話をかけていますか?
Python2.7.2を使用しています。
python - PyOpenGLプログラムでFreeGLUTglutMouseWheelFuncを使用する方法は?
ここから、64ビットのPython3.xおよびWindows7用にPyOpenGLをインストールしました。glutMouseFuncを使用してマウスボタンのクリックをリッスンするPyOpenGLプログラムを作成して実行できます。
さて、マウスのスクロールホイールも読みたいです。私は以前、C ++でFreeGLUTを使用してこれを実行しました。これにより、glutMouseWheelFuncが公開されます。チェックしたところ、 freeglut32.vc9.dllとfreeglut64.vc9.dllがに表示されていC:\Program Files\Python32\Lib\site-packages\OpenGL\DLLS
ます。
上記のコードを次のように変更しました。
これは次のエラーで失敗します:
では、PyOpenGLでFreeGLUT呼び出しを使用するにはどうすればよいですか?私が間違っていることは何ですか?
opengl - PyOpenGLでテクスチャをpboにコピーするには?
しばらくの間 PyOpenGL を楽しく使用した後、私は真剣に立ち往生しています。私は、GLSL シェーダーと OpenCL プログラムを画像処理に使用できるようにする Python パッケージに取り組んでおり、GLSL シェーダーと OpenCL プログラムにデータを出し入れするための標準化された方法としてテクスチャを使用しています。
テクスチャを pbo (ピクセル バッファ オブジェクト) にコピーできないことを除いて、すべてが機能します。私は pbo を使用してテクスチャ データを OpenCL に出し入れしていますが、PyOpenCL ではうまく高速に動作します。OpenCL 出力を pbo からテクスチャにコピーして表示できます。また、データを CPU からpbo。しかし、GPU に既にあるテクスチャ データで pbo を埋めようとして絶望的に立ち往生しています。これは、GLSL シェーダーによって生成された画像をさらに処理するために OpenCL にロードするために必要なことです。
これを行う 2 つの方法について読みました: バリアント 1 は、pbo をバインドし、テクスチャをバインドし、glGetTexImage() を使用します バリアント 2 は、テクスチャをフレーム バッファ オブジェクトにアタッチし、fbo と pbo をバインドし、glReadPixels() を使用します
また、glReadPixels() と glGetTexImage() の両方の PyOpenGL バージョンには、バインドされた pbo があるときに使用する必要がある「Null」ポインターに問題があることも読みました。そのため、OpenGL.raw.GL バリアントを使用しています。
しかし、どちらの場合も「無効な操作」エラーが発生し、何が間違っているのかわかりません。私の pixelbuffer Python クラスの load_texture() メソッドの 2 つのバージョンの下に、それらを削除しすぎていないことを願っています...
バリアント 1:
バリアント 2:
EDIT(私のpboのエラーと初期化に関するいくつかの情報を追加):
バリアント 1 で得られるエラーは次のとおりです。
そして、私は次のように私のpboを初期化しています:
'self.arraytype' は GL_ARRAY_BUFFER, self.usage 念のためすべての可能性を試しましたが、GL_STREAM_READ が私のタイプの使用には最も論理的であると思われました。私が通常使用しているサイズは 1024 x 1024、4 プレーン、プレーンあたり 1 バイトです。これは unsigned int であるためです。これは、ホストからピクセル データを転送するときに問題なく動作します。
また、GPU に 3Gb のメモリを搭載した NVIDIA GeForce GTX 580 を使用し、独自のドライバー、バージョン 295.33 を使用して、Kubuntu 11.10 を使用しています。
私は何が欠けていますか?
opengl - PyOpenGL キューブ マッピング テクスチャ
キューブにテクスチャをプッシュするために texture_2D を試しました。それは問題ありません。
しかし、TEXTURE_CUBE_MAP を使用すると、テクスチャが表示されません。ただの黒い立方体。
誰でも私を助けることができますか?
python - Python2.764ビットおよびPyOpenGL-3.0.1.win32のインストール
私はPythonを初めて使用します。Win764ビットマシンにPython2.764ビットをインストールしました。PyOpenGLをインストールしたいのですが、win32バージョンしかありません。PyOpenGLをインストールしようとすると、「レジストリにPythonのインストールが見つかりません」と表示されます。
ここでフォームを進めるにはどうすればよいですか?
python - PyInstallerで作成されたpyOpenGL exeはattributeerrorを与えます
私はpyOpenGLの例からlesson18.pyをexeにしようとしていますが、コンパイルすると次のエラーが発生します:
これは、pyOpenGL を使用するすべてのプログラム (自分のプログラムを含む) で発生します。エラーは同じです。
pyInstallerで動作する実行可能ファイルを作成するための追加のトリック(インポートなど)はありますか(py2exeがあることは知っていますが、pyInstallerを好みます)?
私のpythonバージョンは2.7です pyOpenGLバージョン:3.0.2a5 pyinstallerバージョン:1.5.1
python - PyOpenGLでglBufferData()を使用するには?
OpenGLへのPyOpenGL pythonバインディングでglBufferData()をどのように使用しますか?
次のコードを実行すると
glBufferData() を呼び出すと、エラー メッセージが表示されます。
このコードは、緑の背景に赤い四角形を描画することになっています。
python - How to specify buffer offset with PyOpenGL
What is the PyOpenGL equivalent of
If the offset is 0, then
works, but I can not figure out how to specify a non-zero offset into a buffer object.
python - numpy配列からのpyopenglバッファ動的読み取り
色データ(rgb)のnumpy配列を画面に描画するモジュールをPythonで作成しようとしています。現時点では、次のような 3 次元カラー配列を使用しています。
それをバッファにバインドし、 を使用しglVertexAttribArray
てデータをタイル (ポイント スプライト) の配列 (この場合は 10x10 配列) にブロードキャストします。これは静的な画像に対してはうまく機能します。
しかし、配列内のデータを変更し、バッファを最初から再構築することなく、この変更を反映できるようにしたいと考えています。
現在、私はバッファを次のように構築しました:
ここで、buffer_data は numpy 配列です。代わりに何を渡すことができますか (おそらくメモリへのポインタですか?)
python - GLSLシェーダーを使用したPyOpenGLのマルチテクスチャリング
GLSLフラグメントシェーダーで2つのテクスチャを組み合わせることができるようにしたいと思います。私は現在PyOpenGLを使用しており、シェーダーを使用してこれまでに行ったことはすべて正常に機能しています。
フラグメントシェーダーから複数のテクスチャにアクセスしようとすると、問題が発生します。たとえば、次のシェーダーは、青いピクセルを除いた正しいテクスチャを表示します。
しかし
空白の画面になります。
問題は、テクスチャユニフォームをシェーダーに渡す方法にあるのではないかと感じていますが、最初のテクスチャが機能するのに2番目のテクスチャが機能しない理由を一生理解できません。以下は完全なプログラムです。