PythonにOpenGLをインストールする
この記事と同様の内容はネット検索をすれば、沢山でてきますが、
それでもテストプログラムを動作させるのに
2時間近く格闘してしまったので、メモとして残して残しておきます。
●動作環境
Windows 10 (64bit)
Python 3.7.7 (Anaconda)
●インストール手順
AnacondaのCMD.exeからコマンドプロンプトを開き、
>pip install PyOpenGL PyOpenGL_accelerate
でPyOpenGLをインストール。
続いて、freeglutをインストール。
https://www.transmissionzero.co.uk/software/freeglut-devel/
からビルド済みのzipファイルを入手
ダウンロードした、freeglut-MSVC-3.0.0-2.mp.zipファイルを解凍し、
freeglut\bin\x64\freeglut.dllをC:\Windows\System32フォルダにコピーする。
(他のファイルは使用しません)
●テストコードの実行
ウィンドウにティーポットを表示する(下記コード参照)
テストコードを実行してみると…
エラーになってしまいました。😥
これを解決するのに時間が掛かりました。
ネットを彷徨い、解決方法の記事をみつけました。
C:\Users\xxx\Anaconda3\envs\openCV\Lib\site-packages\OpenGL\platform\win32.py
を開き、
上記キーワードを追加して、実行しなおすと…
無事動作するようになりました!🎊
以上です!
●ティーポット表示サンプルコード
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import sys
def main():
glutInit(sys.argv)
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH)
glutInitWindowSize(300, 300) # window size
glutInitWindowPosition(100, 100) # window position
glutCreateWindow(b"teapot") # show window
glutDisplayFunc(display) # draw callback function
glutReshapeFunc(reshape) # resize callback function
init(300, 300)
glutMainLoop()
def init(width, height):
""" initialize """
glClearColor(0.0, 0.0, 0.0, 1.0)
glEnable(GL_DEPTH_TEST) # enable shading
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
##set perspective
gluPerspective(45.0, float(width)/float(height), 0.1, 100.0)
def display():
""" display """
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
##set camera
gluLookAt(0.0, 1.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
##draw a teapot
glColor3f(1.0, 0.0, 0.0)
glutWireTeapot(1.0) # wireframe
# glutSolidTeapot(1.0) # solid
glFlush() # enforce OpenGL command
def reshape(width, height):
"""callback function resize window"""
glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(45.0, float(width)/float(height), 0.1, 100.0)
if __name__ == "__main__":
main()