2014-12-16 4 views
-3

"2D 이미지를 그려 넣기 위해"유지 모드 "를 사용하려고합니다 (OpenGL 컨텍스트에서 파이 게임 내부에 texztures로로드 됨). 그리고 내가 찾은 방법은 VBO, 하지만 VBO를 사용하여 원시 이외의 것을 그리는 OpenGL 튜토리얼을 찾을 수 없습니다. 그것을 할 거리가 있습니까?2D 텍스처 이미지를 그릴 때의 유지 모드

+1

그럼, 프리미티브 이외에 다른 무엇을 그립니까? 좀 더 복잡한 모델을 만들기 위해 프리미티브 (대부분 삼각형)를 사용합니다. 2D 이미지를 그리려면 두 개의 삼각형을 사용하여 사각형을 렌더링하면됩니다. –

+0

.png 또는 .jpg 파일을 렌더링하려고합니다. 원시와 다른 점이 있습니까? –

+1

아닙니다. 그렇게하려면 이미지 파일을 읽고 압축을 풀어서 텍스처로 업로드 한 다음 이미지를 넣을 위치에 텍스쳐 사각형을 그려야합니다. –

답변

2

예, 2D 그래픽을 그리려면 VBO를 사용할 수 있습니까? 주로 2D 렌더링에서 사용하는 것은 다음과 같습니다.

버텍스 좌표 (VBO), UV 좌표 (VBO), 텍스처 맵 및 ModelView 행렬을 사용하는 셰이더가 있습니다. 저는 UV 좌표 (0, 0) - (1, 1)을 가진 2x 삼각형으로 만든 직사각형의 ("-0.5, -0.5"에서 "0.50.5"까지의) 간단한 1x1 "단위 상자"를 중심에두고 있습니다. 이 두 개의 동일한 VBO를 사용하여 모든 2D 비트 맵을 그립니다. ModelView 행렬에서 위치 & 크기 조절을 보내고 그려지는 다른 비트 맵을 변경합니다.

GUI의 경우 왼쪽 위 모서리에 참조 점, 즉 (0, 0)에서 (1, 1)까지의 직사각형을 사용하는 것이 더 쉽습니다.이 경우 UV 좌표 버퍼를 사용할 수 있습니다. 셰이더는 vec2 좌표를받습니다. 또한 창 좌표를 사용할 수 있도록 원근감을 설정하면 도움이 될 수 있습니다.

다음 자습서는 C++ 용으로 작성되지만, OpenGL을 호출도 ​​파이썬에서 동일합니다

만들기 VAO & VBOs : http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/

텍스쳐링 : http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/

텍스트 (2D 비트 맵 그리기) : http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-11-2d-text/

호프 이것은 약간의 도움이되었는데, 미안 OpenGL 프로젝트가 D로 작성되었으므로 소스 코드를 제공 할 수 없다 ... googl을 사용해보세요. e "pygame pyopengl 2d"는 트릭을 수행하는 소스 코드를 찾는다.