Essayez OpenGL avec Python sur Windows moderne.
J'ai travaillé sur Windows 10 (64 bits).
Python est
https://www.continuum.io/downloads
Sélectionnez Python 3.5 (64 bits) dans la distribution Anaconda distribuée dans. Dans Anaconda, numpy etc. sont inclus depuis le début, donc c'est bon pour Windows.
Au début, j'ai sifflé comme ci-dessous,
> C:\Anaconda3\Scripts\pip.exe install PyOpenGL PyOpenGL-Demo
La distribution Anaconda semble faire cela.
> C:\Anaconda3\Scripts\conda.exe install pyopengl
Téléchargez l'archive et décompressez-la.
> cd PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo> dir
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2016/03/19 2:27 da
d----- 2016/03/19 2:27 dek
d----- 2016/03/19 2:27 GLE
d----- 2016/03/19 2:27 GLUT
d----- 2016/03/19 2:27 NeHe
d----- 2016/03/19 2:27 proesch
d----- 2016/03/19 2:27 redbook
d----- 2016/03/19 2:27 tom
-a---- 2008/12/08 12:25 0 readme.txt
-a---- 2008/12/08 12:25 0 __init__.py
Allons à NeHe.
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo> cd NeHe
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
File ".\lesson1.py", line 141
print "Hit ESC key to quit."
^
SyntaxError: Missing parentheses in call to 'print'
Oh, spécifications python2. Mais,
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\Scripts\2to3.exe -w .
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
Traceback (most recent call last):
File ".\lesson1.py", line 8, in <module>
__version__ = string.split('$Revision: 1.1.1.1 $')[1]
AttributeError: module 'string' has no attribute 'split'
Commenter
#__version__ = string.split('$Revision: 1.1.1.1 $')[1]
#__date__ = string.join(string.split('$Date: 2007/02/15 19:25:19 $')[1:3], ' ')
#__author__ = 'Tarn Weisner Burton <[email protected]>'
encore.
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
Hit ESC key to quit.
Traceback (most recent call last):
File ".\lesson1.py", line 142, in <module>
main()
File ".\lesson1.py", line 97, in main
glutInit(sys.argv)
File "C:\Anaconda3\lib\site-packages\OpenGL\GLUT\special.py", line 333, in glutInit
_base_glutInit( ctypes.byref(count), holder )
File "C:\Anaconda3\lib\site-packages\OpenGL\platform\baseplatform.py", line 407, in __call__
self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling
Il n'y a pas de surabondance.
https://charmie11.wordpress.com/2015/09/28/pyopengl-installation-using-anaconda/
Je vois.
http://ktm11.eng.shizuoka.ac.jp/lesson/modeling.html J'ai obtenu glut32.dll (64 bits) et l'ai copié dans C: \ Windows \ System32.
L'erreur reste la même. J'ai suivi le code.
# C:\Anaconda3\Lib\site-packages\OpenGL\platform\win32.py
def GLUT( self ):
for possible in ('freeglut%s'%(size,),'freeglut', 'glut%s'%(size,)):
# Prefer FreeGLUT if the user has installed it, fallback to the included
# GLUT if it is installed
try:
return ctypesloader.loadLibrary(
ctypes.windll, possible, mode = ctypes.RTLD_GLOBAL
)
except WindowsError as err:
pass
return None
Je cherche une dll, mais je cherche glut64. Je l'ai mis dans C: \ Windows \ System32 \ glut64.dll. encore.
PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\Nehe> C:\Anaconda3\python.exe .\lesson1.py
Hit ESC key to quit.
Traceback (most recent call last):
File ".\lesson1.py", line 142, in <module>
main()
File ".\lesson1.py", line 115, in main
window = glutCreateWindow("Jeff Molofee's GL Code Tutorial ... NeHe '99")
File "C:\Anaconda3\lib\site-packages\OpenGL\GLUT\special.py", line 73, in glutCreateWindow
return __glutCreateWindowWithExit(title, _exitfunc)
ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
L'erreur a changé.
115
window = glutCreateWindow(b"Jeff Molofee's GL Code Tutorial ... NeHe '99")
Ajoutez b pour créer une chaîne d'octets. J'ai réussi. Une fenêtre noire est sortie.
Il y avait un échantillon de théière, donc ss.
La retouche est la même que NeHe. Cette méthode est également possible.
glutCreateWindow(sys.argv[0].encode('ascii'))
C'était PyOpenGL après une longue période, mais l'environnement a été créé pour le moment. La prochaine fois, je maintiendrai mon glglue (hostile et je ne sais pas comment l'utiliser) pour python3, puis la procédure pour Shader et VertexBuffer. J'ai l'intention de vérifier.
Recommended Posts