着色器问题

发布于 2025-02-08 14:05:15 字数 668 浏览 2 评论 0原文

所以。此时,我一直在使用Pyglet持续一周,并且一直在制作节奏游戏。我决定使用pyglet的阴暗库来测试一些着色器。着色器应用和作品,但所有精灵和图像都显示为黑色矩形。我正在使用image.load()绘制图像。我已经尝试研究这个主题到现在运气,我不太习惯开放式着色器和纹理。尽管我确实读到,一旦着色器被粘合,所有的渲染都将传递给它,但是我找不到更多的信息可以提供帮助。

import pyglet
from pyglet.gl import *
import shaderpy

# image
image = pyglet.image.load('image.png')

# window
window = pyglet.window.Window(1280,720)
pyglet.gl.glClearColor(0.5,0,0,1)

# shader
shader = shaderpy.Shader([('shader.vs', GL_VERTEX_SHADER), 
('shader.fs', GL_FRAGMENT_SHADER)])

@window.event
def on_draw():
    shader.bind()
    window.clear()
    image.blit(0,0)
    shader.unbind()

pyglet.app.run()

此代码为我产生了一个黑色的正方形,图像应该是图像。

So. I have been using Pyglet for up to a week at this point and have been making a Rhythm Game. I decided to test some shaders using the ShaderPy library for pyglet. The shader applies and works, but all sprites and images appear as black rectangles. I am drawing images using image.load(). I have tried researching the topic to now luck, I am not very used to OpenGl shaders and textures. Though I did read that once a shader is binded, all rendering is passed to it, but I couldn't find any more information to help.

import pyglet
from pyglet.gl import *
import shaderpy

# image
image = pyglet.image.load('image.png')

# window
window = pyglet.window.Window(1280,720)
pyglet.gl.glClearColor(0.5,0,0,1)

# shader
shader = shaderpy.Shader([('shader.vs', GL_VERTEX_SHADER), 
('shader.fs', GL_FRAGMENT_SHADER)])

@window.event
def on_draw():
    shader.bind()
    window.clear()
    image.blit(0,0)
    shader.unbind()

pyglet.app.run()

This code produces a black square for me where the image is supposed to be.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文