파이썬 강의/openGL

파이썬 openGL 0. openGL이란?

마리사라 2021. 4. 15. 14:31
반응형

안녕하세요. 이번 시간부터는 파이썬을 이용한 openGL에 대해서 글을 써보자 합니다.

 

우선 openGL에 대한 기본 설명과 파이썬에서 openGL을 사용하는 방법에 대해서 알려드리고자 합니다.


1. openGL

openGL 로고(출처 : openGL)

openGL(Open Graphics Library)은 실리콘 그래픽스사에서 만든 2차원/3차원 표준 그래픽 API입니다. 비슷한 예시로는 마이크로소프트사의 Direct3D가 있으며, 이 두 API가 대부분의 그래픽을 담당한다고 할 수 있습니다.

 

openGL은 저수준 API로, Direct3D에 비해서 해야 하는 작업의 양은 많지만, 윈도우에서만 작동하는 Direct3D와는 달리 크로스 플랫폼을 지원하며, openGL을 지원하는 대부분의 프로그래밍 언어에서 문법이 거의 비슷하기 때문에 어디에서나 사용이 가능하다는 장점이 있습니다.


2. 파이썬에서의 openGL

원래 openGL은 리눅스 운영체제에서, C(++)언어로 사용하는 것이 일반적입니다. 하지만 openGL은 크로스 플랫폼을 지원하는 언어이기 때문에 윈도우에서 사용이 가능하도록 컨버전이 되었으며, C에서 사용이 되는 대부분의 코드가 파이썬에서 지원이 되듯이 openGL도 파이썬용으로 나와있습니다.


3. 파이썬에서 openGL 사용하기

파이썬에서 openGL을 사용하기 위해서는 pip의 명령으로 2가지의 라이브러리를 등록해 주어야 합니다.

>pip install pyopengl
>pip install pyopengl-accelerate

PyOpenGL이 파이썬에서 openGL을 사용 가능하게 해주며, accelerate는 openGL을 하드웨어 가속으로 사용 가능하게 만들어 줍니다. 하드웨어 가속이 무엇인지 모르시는 분도 일단은 받아 주시는 게 좋습니다.

 

또한 최초 사용시에 GLUT 초기화 오류가 발생하시는 분들이나, 나는 오류가 발생할 것 같으니 미리 준비하고 싶으신 분들을 위한 방법이 있습니다.

 

www.transmissionzero.co.uk/software/freeglut-devel/

 

freeglut Windows Development Libraries

Introduction Whilst at the University of Essex, I took a module called “Interactive Computer Graphics” (or EE222 as we referred to it). Half of the course consisted of using POV-Ray to create images, and then putting them together to make a high qualit

www.transmissionzero.co.uk

위의 사이트에 접속하시면 아래와 같은 화면이 나타납니다

freeglut 사이트 회면

여기서 freeglut 3.0.0 MSVC Package 부분의 Download를 클릭하셔서 압축 파일을 다운받습니다.

freeglut 압축 파일

해당 압축 파일을 실행하게 되면 여러 파일이 있는데, 그중에서 파이썬에서 필요한 파일은 bin 폴더에 있는 freeglut.dll 파일입니다. 여기서 32bit 운영체제일 경우 bin 폴더에 있는 freeglut.dll을, 64bit 운영체제일 경우에는 x64에 있는 freeglut.dll파일을 시스템 폴더(32bit - system32 / 64bit - sysWOW64)에 붙여 넣어 줍니다.

 

추가적으로 Anaconda로 파이썬을 사용하시는 분들은 conda의 명령어를 통해서도 freeglut를 다운로드하실 수 있습니다.

명령프롬프트의 conda 명령어

>conda install freeglut

이렇게 하면 위처럼 번거롭게 사이트를 접속할 필요 없이 freeglut가 다운로드 가능하며, 대부분의 오류가 해결됩니다.


4. 마무리

이제부터 파이썬에서 openGL을 사용할 준비가 되었습니다.

 

다음부터는 openGL을 이용하여 여러 가지 그래픽 작업을 하는 방법에 대해서 알려드리겠습니다.

반응형