안녕하세요. 임이지입니다.
오늘의 포스팅은 파이선에서 OpenGL 을
사용할 수 있도록 PyOpenGL
설치 포스팅입니다.
바로 설치하러 가시죠 고고
먼저 커맨드 창으로 이동합니다.
pip 명령을 이용하여 두개를 설치 합니다.
PyOpenGL_acceleate는
하드웨어 가속을 한다고합니다.
pip install PyOpenGL
pip install PyOpenGL_accelerate
설치가 완료되면은 pip list 명령으로
정상 설치됐는지 아래 명령을 입력합니다
pip list
정상 설치가 되었다면 아래와 같이
설치된 버전을 확인할 수 있습니다.
PyCharm으로 이동하여 아래 코드를
적었으나 빌드 에러가 발생하였습니다.
import OpenGL
import glew
일단 필자의 컴퓨터의 python 버전이
2.7과 3.8 이 두가지가 설치되어 있어서
생긴 문제로 Project Interpreter: 에서
개발 환경을 3.8 버전으로 변경했어요.
계속 빌드 에러가 발생 하였습니다.
PyCharm IDE - FILE - Setting 으로
이동하여 설정을 확인하였습니다.
하단에 Project Interpeter를 확인해 보니
이전에 설치했던 pip 와 setuptools가
포함되어 있지 않았어요.
상단의 + 버튼을 누르고
Available Packages 대화 상자로 이동하고
이전에 추가하려고 했던
OpenGL 패키지를 추가하였습니다.
근대 또 안된다. 환장하겠네ㅡ,.ㅡ
마음을 추수리고 다시 시작한다는 생각으로
PyCharm 하단에 Terminal 창으로 이동
pip install glfw 수동 설치하였습니다.
pip install glfw
ㅠㅠ 오오 드디어 다 설치가 되었어요.
OpenGL 이 잘동작 하는지 확인 하기 위해서
아래 코드를 복사하여 코드를 입력하고
PyCharm 에서 실행하였습니다.
import glfw
from OpenGL.GL import *
import OpenGL.GL.shaders
import numpy
def main():
# initialize glfw
if not glfw.init():
return
window = glfw.create_window(800, 600, "My OpenGL window", None, None)
if not window:
glfw.terminate()
return
glfw.make_context_current(window)
# positions colors
triangle = [-0.5, -0.5, 0.0, 1.0, 0.0, 0.0,
0.5, -0.5, 0.0, 0.0, 1.0, 0.0,
0.0, 0.5, 0.0, 0.0, 0.0, 1.0]
triangle = numpy.array(triangle, dtype = numpy.float32)
vertex_shader = """
#version 330
in vec3 position;
in vec3 color;
out vec3 newColor;
void main()
{
gl_Position = vec4(position, 1.0f);
newColor = color;
}
"""
fragment_shader = """
#version 330
in vec3 newColor;
out vec4 outColor;
void main()
{
outColor = vec4(newColor, 1.0f);
}
"""
shader = OpenGL.GL.shaders.compileProgram(OpenGL.GL.shaders.compileShader(vertex_shader, GL_VERTEX_SHADER),
OpenGL.GL.shaders.compileShader(fragment_shader, GL_FRAGMENT_SHADER))
VBO = glGenBuffers(1)
glBindBuffer(GL_ARRAY_BUFFER, VBO)
glBufferData(GL_ARRAY_BUFFER, 72, triangle, GL_STATIC_DRAW)
position = glGetAttribLocation(shader, "position")
glVertexAttribPointer(position, 3, GL_FLOAT, GL_FALSE, 24, ctypes.c_void_p(0))
glEnableVertexAttribArray(position)
color = glGetAttribLocation(shader, "color")
glVertexAttribPointer(color, 3, GL_FLOAT, GL_FALSE, 24, ctypes.c_void_p(12))
glEnableVertexAttribArray(color)
glUseProgram(shader)
glClearColor(0.2, 0.3, 0.2, 1.0)
while not glfw.window_should_close(window):
glfw.poll_events()
glClear(GL_COLOR_BUFFER_BIT)
glDrawArrays(GL_TRIANGLES, 0, 3)
glfw.swap_buffers(window)
glfw.terminate()
if __name__ == "__main__":
main()
짜잔! 드디어 OpenGL 실행 성공!
No module name 'neuralgym' (0) | 2021.05.06 |
---|---|
jupyter notebook 동작 안함 kernelRestarter: restart failed (0) | 2021.05.04 |
No module named 'cv2' 해결 (0) | 2021.04.27 |
Python 3.8.1 & PyCharm 설치 (0) | 2019.12.31 |
Phython 3.6.5 (32-bit) 설치 (0) | 2018.09.04 |
댓글 영역