2012-02-20 2 views
1

내 컴퓨터가 분명히 pyglet에 정점 목록을 그리지 않습니다. 다음 코드는 두 개의 동일한 모양을 창의 다른 위치에 렌더링합니다. 하나는 정점 목록을 사용하고 다른 하나는 직선을 사용하여 draw()을 사용합니다. 정점 목록이 전혀 렌더링되지 않는 반면, 직접 그려진 것은 훌륭하게 렌더링됩니다.pyglet 버텍스 목록이 렌더링되지 않음 (AMD 드라이버?)

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() 

이것은 최신 카탈리스트 12.1 드라이버는 AMD 라데온 HD 6450 카드를 사용하여 우분투 맑은에 pyglet 1.1.2입니다. 이 코드는 3 년 전에 여러 NVIDIA 카드에서 작동했기 때문에 드라이버 등으로해야 할 일이라고 생각합니다. 거의 pyglet 문서에서 직접 볼 수 있습니다. 아무도 내가 futz, 또는 특정 드라이버 버전이 올바르게 작동 해야하는 경우 필요한 설정을 알고 계십니까?

+0

내가 게시 한 코드와 동일한 문제가 있습니다. Radeon HD 4870을 탑재 한 Windows 7에서 Catalyst 12.2를 실행했습니다. 이전의 Geforce 8800 GTX, 특히 fps_counter에서이 카드로 옮긴 후 이전의 일부 코드는 부분적으로 작동을 멈추었습니다. . 이제 Catalyst 11.5를 사용해 보겠습니다. – Eric

답변

1

Windows 7에서 Radeon HD 4870을 사용하여 Catalyst 12.2를 실행하는 것과 같은 문제가있는 것 같습니다. 이전의 Geforce 8800 GTX, 특히 fps_counter에서이 카드로 이동 한 후 일부 이전 코드가 부분적으로 작동하지 않았습니다. 라벨 도면이 여전히 작동했지만 배치를 그리지 않았습니다.

비디오 드라이버를 Catalyst 11.5로 다운 그레이드 한 후 위의 코드와 이전 코드를 사용하여 문제가 해결되었습니다.

최신 버전의 Catalyst가 작동 할 수 있습니다. 나는 그것이 다소 제대로 overhere 작업으로 언급되어 있기 때문에 먼저이 일을 시도 : http://groups.google.com/group/pyglet-users/msg/ae317c37ce54c107

업데이트 : 테스트 카탈리스트 11.12과 문제가 돌아왔다 (11.x의 자료, 비디오 드라이버 버전 8.920.0.0000 최신).

업데이트 2 : 나중에 더 많은 테스트를하면 Catalyst 11.9 (비디오 드라이버 8.892.0.0000)에서이 문제가 발생하기 시작한 것으로 보입니다. Catalyst 11.8 (비디오 드라이버 8.881.0.0000)은 예상대로 작동했습니다.

해결 방법 피그 렛 문제 추적기에서 this comment에 따라 v2i 대신 v2f을 사용하는 것이 좋습니다.

마지막 업데이트 :이 문제는 Catalyst 12.4 (비디오 드라이버 8.961.0.0)에서 수정 된 것 같습니다.

관련 문제