2015-01-31 9 views
0

pygame과 함께 pyopengl을 사용하고 있으며 쿼드에 이미지를 표시하고 싶습니다. glGenTextures(1,img)을 사용할 때마다 0을 반환합니다. 문맥에서이 함수를 호출해야한다는 내용을 읽었지만 설정하는 방법을 모르겠습니다. 난은 glGenTextures 1을 반환받을 수 있나요 어떻게PyOpenGL glGenTextures가 0을 반환합니다.

import pygame, OpenGL, math, numpy 
from pygame.locals import * 
from OpenGL.GL import * 
from OpenGL.GLU import * 
from PIL import Image #have Pillow instead of PIL 

img = Image.open('myPixelArt2.bmp') 
glGenTextures(1,img) 

print glGenTextures(1,img) 
print img 

0 
<PIL.BmpImagePlugin.BmpImageFile image mode=RGB size=64x64 at 0x3A4E9B8> 

를 출력 : 여기에

내 코드는 최대 전까지 사용 glGenTexures입니까? glGenTexures (1)을 호출 해 보았습니다. jpg 이미지를 시도했지만 아무 것도 변경하지 않았습니다.

답변

0

문맥에서이 함수를 호출해야한다는 내용을 읽었지만 은 설정 방법을 모릅니다.

그러나 여기에 핵심 내용이 있습니다. OpenGL 컨텍스트 없이는 OepnGL을 사용할 수 없습니다. 일반적으로, GL 컨텍스트를 생성하고 관리하고이를 창에 "연결"하여 실제로 GL로 화면에 보이는 것을 얻을 수있는 플랫폼 별 API가 있습니다.

자주 이러한 낮은 수준의 플랫폼 별 API는 사용하지 않지만 모든 플랫폼 별 세부 사항을 내부적으로 처리하는 일부 높은 수준의 추상화를 사용합니다. Python과 PyGame을 사용하기 때문에 PyOpenGL을 사용하여 컨텍스트를 만들 수 있습니다. 그러나 OpenGL은 복잡한 주제이며, 많은 노력을 기울일 것임을 알게됩니다.

+0

감사합니다, 지금 OpenGLContext, (그리고 PyVRML97 및 PyDispatcher) 설치하지만 어떻게 내가 컨텍스트를 활성화합니까? glGenTextures 전에 스크립트에서 특별히 호출해야합니까? 내 스크립트 상단에 OpenGLContext.textures를 가져 왔습니다. -이 기능으로 컨텍스트가 활성화됩니까? –

+0

@MattMaich : 음, 그 이름은 불행합니다. PyOpenGL의 OpenGLContext는 OpenGL 컨텍스트와 직접적인 관련이 없습니다. 그러나 그것은 단순한 장면 그래프 라이브러리입니다. 그 전에는 그 사실을 알지 못했습니다 ...하지만 OpenGLContext는 다른 GL 컨텍스트 생성 메커니즘을 제공합니다 : glut, wxwindows 및 pygame을 통해 – derhass

0

OpenGL 엔진을 시작하는 컨텍스트를 만드는 것을 생각하면 PyOpenGL을 모른다. 현재 상황에 맞는 만드는 방법에 대한 볼 수 있습니다

http://pyopengl.sourceforge.net/context/tutorials/shader_1.html

glGenTextures 텍스처 ID로 사용할 수 있습니다 정수를 반환하는 시스템을 요구 (pyopengl의 OpenGLContext 사용). 첫 번째 매개 변수는 원하는 텍스처 ID 정수의 개수이며 많은 ID를 반환합니다.

텍스처 여기에 매핑에 대한 NeHe 튜토리얼의 pyopengl 번역있다 : http://pyopengl.sourceforge.net/context/tutorials/nehe6.html