Формирование белого квадрата после преобразования текстуры PyOpenGL с поверхности Pygame – проблемы с вершинами? [дубликPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Формирование белого квадрата после преобразования текстуры PyOpenGL с поверхности Pygame – проблемы с вершинами? [дублик

Сообщение Anonymous »

Изображение белого квадрата
В частности, я пытался использовать 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как рассчитывается угол между вершинами в трехмерном пространстве — между вершинами или от начала координат?
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • CSS `фильтр`: затемнение изображения до белого цвета путем наложения белого цвета
    Anonymous » » в форуме CSS
    0 Ответы
    92 Просмотры
    Последнее сообщение Anonymous
  • CSS `фильтр`: затемнение изображения до белого цвета путем наложения белого цвета
    Anonymous » » в форуме CSS
    0 Ответы
    84 Просмотры
    Последнее сообщение Anonymous
  • Ошибка прозрачности PyGame, Pywin32 API и PyOpenGL
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Ошибка прозрачности PyGame, Pywin32 API и PyOpenGL
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»