Изображение белого квадрата
В частности, я пытался использовать glDrawArrays(GL_TRIANGLE_FAN, 0, 4) для формирования поверхности экрана после преобразования ее из поверхности pygame в текстуру pyopengl. Но вместо этого образовался белый квадрат. Мне нужно было использовать эту конкретную технику для другой части более крупной игры, и я не просто пытаюсь нарисовать изображение на экране с помощью pyopengl (иначе я бы не спрашивал об этом). Но эту проблему необходимо решить, чтобы я мог продолжить работу над другими частями упомянутого проекта.
Вот код, который я попробовал:
import pygame
import sys
from OpenGL.GL import *
from pygame.locals import *
# set pygame screen
pygame.init()
screen = pygame.display.set_mode((500, 500), OPENGL | DOUBLEBUF)
width = screen.get_width()
height = screen.get_height()
#colours
MIDNIGHT = ( 15, 0, 100 )
BUTTER = ( 255, 245, 100 )
# create pygame clock
clock = pygame.time.Clock()
def draw():
screen.fill('#060C17')
font3 = pygame.font.Font('freesansbold.ttf', int(10))
image = font3.render('Tempora', True, (255, 255, 255), '#060C17')
pos = ((width / 2 ),(height / 2))
rect = image.get_rect(topleft = pos)
screen.blit(image,rect)
done = False
while not done:
# get quit event
for event in pygame.event.get():
if event.type == QUIT:
done = True
draw()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
data = pygame.image.tostring(screen, 'RGBA')
texture_id = glGenTextures(1)
glBindTexture(GL_TEXTURE_2D, texture_id)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data)
vertices = [(0, 0), (width, 0), (0, height), (width, height)]
tex_coords = [(0, 0), (1, 0), (1, 1), (0, 1)]
glEnableVertexAttribArray(0)
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, vertices)
glEnableVertexAttribArray(1)
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, tex_coords)
glEnable(GL_BLEND)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
glEnable(GL_TEXTURE_2D)
glBindTexture(GL_TEXTURE_2D, texture_id)
glDrawArrays(GL_TRIANGLE_FAN, 0, 4)
glDisable(GL_TEXTURE_2D)
glDisableVertexAttribArray(0)
glDisableVertexAttribArray(1)
pygame.display.flip()
clock.tick(120)
pygame.quit()
Подробнее здесь: https://stackoverflow.com/questions/787 ... urface-pro
Формирование белого квадрата после преобразования текстуры PyOpenGL с поверхности Pygame – проблемы с вершинами? [дублик ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
CSS `фильтр`: затемнение изображения до белого цвета путем наложения белого цвета
Anonymous » » в форуме CSS - 0 Ответы
- 92 Просмотры
-
Последнее сообщение Anonymous
-
-
-
CSS `фильтр`: затемнение изображения до белого цвета путем наложения белого цвета
Anonymous » » в форуме CSS - 0 Ответы
- 84 Просмотры
-
Последнее сообщение Anonymous
-