2014年7月26日土曜日

OpenGL VBO


前のビューワーは、OpenGLといってもGPUパワーを使ってなかったので遅いのは当然だった。

なので、Vertex Buffer Objectを使うように書き直すと、OpenGLになった。1.4でも行けるのはありがたい、Pythonでできるのも嬉しい。




3Dは難しいな、マウスで思い通りに移動しないな、LinuxCNCのAXIS風にできたらいいな。

2014年7月20日日曜日

G Code Viewer using Cairo、OpenGL


Matplotlibはほんとに素晴らしいんだけど、今や非力な所有ノートPC(T5600)ではファイルが大きくなるほど移動、拡大などが遅い。OpenGLのバックエンドが使えるようになれば良いが、i945GMのバージョン1.4はサポートされるはずがない。

で、必要とする機能は限られているので、Cairoを使ったものと、OpenGLを使ったもので表示部を作ってみたが、マウスポインタを中心に拡大するのは結構大変で、上手く行くまで相当な手間がかかり、つぎはぎだらけのコードとなってしまった。

こんな感じ、


データは、pcb-gcodeで作った、約28000行のG Code。

PythonのpyOpenGLを使ってGtk+3と共存できたのでこちらもやってみた。


Cairo版で悩みに悩んだのと、当然きちんと作られているOpenGLのおかげもあって比較的簡単に。

しかし、OpenGLと言っても図形の描画以外はアクセラレーションの恩恵を受けていないはずで、ちょっと早い(システムモニターで見てCPU負荷が軽い)程度、pyOpenGL自体も遅いとのことだしほとんどの影響はPythonの速度だろうか。

高速じゃないけど遅くはない・・・くらいかな。

(アップロードした動画が荒いのはなぜ?)