Pyglet Vertexリストはレンダリングされていません(AMDドライバー?)
-
28-10-2019 - |
質問
私のマシンは、明らかにPygletで頂点リストを描画しません。次のコードは、ウィンドウ内の異なる位置で2つの同一の形状をレンダリングします。1つは頂点リストを使用し、もう1つはストレートを使用します draw()
. 。頂点に直接描かれたものは正常にレンダリングされますが、頂点リストはまったくレンダリングされません。
import pyglet
window = pyglet.window.Window()
w, h = window.get_size()
vl = pyglet.graphics.vertex_list( 4,
('v2i', (100,0, 100,h, 200,h, 200,0)),
('c3B', (255,255,255, 255,0,0,
0,255,0, 0,0,255)) )
@window.event
def on_draw():
window.clear()
vl.draw( pyglet.gl.GL_QUADS )
pyglet.graphics.draw( 4, pyglet.gl.GL_QUADS,
('v2i', (300,0, 300,h, 400,h, 400,0)),
('c3B', (255,255,255, 255,0,0,
0,255,0, 0,0,255)) )
pyglet.app.run()
これは、Ubuntu LucidのPyglet 1.1.2で、最新のCatalyst 12.1ドライバーを備えたAMD Radeon HD 6450カードを使用しています。このコードは3年前にいくつかのNvidiaカードで機能し、Pygletのドキュメントからほぼ直接的なものであるため、ドライバーなどと関係があるに違いないと思います。誰かが私がfutzで必要な設定を知っている人、または特定のドライバーバージョンが正しく機能するかどうかを知っていますか?
解決
Radeon HD 4870を使用してWindows 7で触媒12.2を実行しているのと同じ問題があるようです。古いGeforce 8800 GTX、特にFPS_Counterとラベルの描画がまだ機能していたこのカードに移動した後、私の以前のコードも部分的に動作しなくなりました。 、バッチを描くことはありませんでした。
ビデオドライバーをCatalyst 11.5に格下げした後、問題は消えました(スニペットの上に、以前のコードを使用して)。
後のバージョンの触媒が機能する可能性があります。私はこれを最初に試しました。 http://groups.google.com/group/pyglet-users/msg/ae317c37ce54c107
アップデート: テスト済み触媒11.12(最新の11.xリリース、ビデオドライバーバージョン8.920.0.0000)と問題が返されました。
更新2: さらにテストすると、この問題は触媒11.9(ビデオドライバー8.892.0.0000)で発生し始めたようです。 Catalyst 11.8(ビデオドライバー8.881.0.0000)は、予想どおりに機能しました。
ワークアラウンドは使用することです v2f
それ以外の v2i
に従って このコメント Pyglet Issue Trackerで。
最後の更新: この問題は、触媒12.4(ビデオドライバー8.961.0.0)で修正されているようです。